Get started
nd is an asset manager for AI coding agents. It organizes reusable agent components — skills, agents, commands, rules, context files, output styles, hooks, and plugins — into source directories and deploys them as symlinks into your agent’s config directory. Use nd when you want to version, share, or switch between sets of agent assets without copying files around.
This guide takes you from zero to your first deployed asset in about 5 minutes.
1. Install nd
Choose your preferred method:
# Homebrew (macOS/Linux)
brew install --cask armstrongl/tap/nd
# Go install
go install github.com/armstrongl/nd@latest
# Or build from source
git clone https://github.com/armstrongl/nd.git && cd nd && go build -o nd .Verify the installation:
nd versionUpdate nd
If you installed nd via Homebrew, update it with:
brew update && brew upgrade ndIf brew upgrade nd installs an older version, your local tap index may be stale. Run brew update first to refresh it, then upgrade again.
nd also notifies you when a newer version is available — the message appears after a command completes, once per day.
2. Initialize
Create the nd configuration directory and default config:
nd initThis creates ~/.config/nd/config.yaml with sensible defaults and sets up directories for profiles, snapshots, and state.
nd init then prompts you to deploy nd’s built-in assets (skills, commands, and an agent). Answer y to deploy them immediately so you have something to work with, or n to skip — you can deploy them later with nd deploy --source builtin. Pass --yes to skip the prompt entirely and deploy automatically.
If nd cannot detect your coding agent (e.g., Claude Code is not installed or not in $PATH), it skips the built-in deploy with a warning and continues. Install your agent and run nd deploy --source builtin afterward.
If a config file already exists, nd init exits with an error. Use nd settings edit to modify an existing configuration.
Browse the built-in assets:
nd list3. Add your first source
nd ships with a builtin source containing nd-specific assets. To add your own assets, register a source: a local directory or git repository containing agent assets organized by type.
# Local directory
nd source add ~/my-coding-assets
# Git repository (GitHub shorthand)
nd source add owner/repo
# Git repository (full URL)
nd source add https://github.com/owner/repo.gitnd scans the source for assets organized in convention-based directories (skills/, agents/, commands/, and others). See Creating sources for how to structure your own.
4. Browse available assets
List all assets discovered from your sources:
nd listFilter by type:
nd list --type skillsAssets marked with * are already deployed.
5. Deploy an asset
Deploy an asset by creating a symlink in your agent’s config directory:
nd deploy skills/greetingDeploy multiple assets at once:
nd deploy skills/greeting commands/hello agents/researcherOr run nd deploy with no arguments to get an interactive picker. Many nd commands support this interactive mode — nd remove, nd profile switch, nd snapshot restore, and others present a picker when run without arguments. nd disables interactive mode in non-TTY environments (pipes, scripts) and when --json is set.
nd creates a symlink from your agent’s config directory (~/.claude/skills/greeting) back to the source. The source stays where it is: edit it and the change shows up immediately. See How nd works for the full picture of what happens on disk.
Deploy by type:
nd deploy --type skills greetingScopes:
- Global (
--scope global, default): Deploys to your agent’s global config directory (~/.claude/) - Project (
--scope project): Deploys to the project-level config directory (.claude/in the project root)
nd deploy skills/greeting --scope projectSymlink strategy:
- Absolute (default): Symlinks use absolute paths
- Relative (
--relative): Symlinks use relative paths (better for portable setups)
nd deploy skills/greeting --relativeChange the default strategy in your config file (symlink_strategy: relative).
6. Verify
Check that everything is healthy:
nd statusThe output shows your deployed assets with health indicators (checkmarks for healthy symlinks).
For a full health check:
nd doctor7. Optional setup
Shell completions
Enable tab-completion for your shell:
# Print completion script
nd completion bash
nd completion zsh
nd completion fish
# Auto-install to standard location
nd completion bash --install
nd completion zsh --install
nd completion fish --install
# Install to custom directory
nd completion zsh --install-dir ~/.my-completionsFor zsh, add this to your ~/.zshrc if not already present:
fpath+=~/.zfunc
autoload -Uz compinit && compinitEdit configuration
Open your config file in your default editor:
nd settings editUninstall
To remove all nd-managed symlinks from your agent’s config directory:
nd uninstallThis does not delete your sources, config, profiles, or snapshots — it only removes the deployed symlinks. Pass --yes to skip the confirmation prompt.
Next steps
- How nd works: What happens on disk when you deploy
- Profiles & snapshots: Group assets into profiles and switch between them
- Configuration: Customize nd behavior
- Creating sources: Build and share your own asset libraries
- Glossary: Definitions for nd terms like asset, source, scope, and profile