The AIDD CLI (@ai-driven-dev/cli) installs AI tool runtime configs, IDE integrations, and plugins from the AIDD marketplace across AI coding assistants. Runtime configs are bundled in the CLI binary; memory and context files are provided by the aidd-context plugin, not the binary. Plugins are fetched from the marketplace on demand. Every installed file is hash-tracked in a manifest for drift detection.
Supported tools: Claude Code · Cursor · GitHub Copilot · OpenCode · Codex · VS Code (IDE integration)
| Prerequisite | Version | Notes |
|---|---|---|
| Node.js | >= 22.12 | nodejs.org |
| git | — | Required for marketplace plugin fetching |
| gh CLI (optional) | — | Can be used as an authentication method via aidd auth login --gh |
Windows: works natively on Windows 10 1803+ (PowerShell or cmd) and on WSL. If you encounter permission issues with
npm install -g, use an administrator terminal or WSL.
Available on npmjs.org.
Run any aidd command directly via npx — no global install needed:
npx @ai-driven-dev/cli@latest setup
npx @ai-driven-dev/cli@latest --versionFirst call fetches the package (~3 s cold start, then cached by npm). Use this when you want a one-shot run or want to pin a specific version per project (@4.2.1).
For repeated use across many projects:
npm install -g @ai-driven-dev/cli@latest
# or
pnpm add -g @ai-driven-dev/cli@latest
aidd --versionRun
which aiddto identify the active binary and use the matching package manager (npm,pnpm,yarn,bun).
Authentication is not required for the default public marketplace (github.com/ai-driven-dev/framework). Authentication is only needed for private marketplaces.
To authenticate for a private marketplace:
aidd auth login --token <YOUR_TOKEN> --level usergh auth login
aidd auth login --gh --level userexport AIDD_TOKEN=<YOUR_TOKEN>AIDD_TOKEN env → project .aidd/auth.json → user ~/.config/aidd/auth.json → gh auth token (only if stored config uses method: "gh")
| Level | File | Use case |
|---|---|---|
user |
~/.config/aidd/auth.json |
Shared across all projects (default) |
project |
.aidd/auth.json |
Per-project credential (add to .gitignore) |
aidd auth login --token <TOKEN> --level user # store a PAT
aidd auth login --gh --level user # use gh CLI token
aidd auth status # check current auth (exit 1 if not authenticated)
aidd auth logout # remove stored credential# 1. Interactive setup: init manifest + register default marketplace + install runtime config
aidd setup
# 2. Non-interactive scriptable setup (CI / onboarding scripts)
aidd setup --source remote --ai claude --ide vscode --plugins recommended --yes
# 3. Install an AI tool or IDE integration (noun-first surface)
aidd ai install claude
aidd ide install vscode
# 4. Install a plugin from the marketplace
aidd plugin install aidd-context
# 5. Check installation status
aidd ai status# Remote marketplace (default) — optionally pin a specific tag
aidd setup --source remote --release v4.1.0 --ai claude --yes
# Local framework checkout
aidd setup --source local --path /path/to/aidd-framework --ai claude --yes
# All tools, no prompts
aidd setup --ai all --ide all --yes--source remote|local selects the marketplace source.
--release <tag> pins the marketplace version fetched during setup (default: latest tag).
--yes accepts all defaults.
A manifest from an older CLI version is upgraded to the latest schema automatically the
first time it is loaded — no manual migration command. Just run any aidd command:
aidd statusaidd status # see what changed (drift + available update)
aidd update # re-install all tool configs, update plugins, refresh marketplaces
aidd update --force # overwrite modified files without prompting (CI-safe)aidd update takes no scope flags — it refreshes every installed tool. To re-install a single tool, use aidd ai update <tool> / aidd ide update <tool>.
Conflict behavior: unmodified files (disk hash matches manifest hash) are always updated silently. Modified files prompt keep / overwrite / overwrite-all / skip-all in an interactive terminal; in non-interactive mode (no TTY, CI), the command exits 1 unless --force is passed. --force overwrites all modified files without prompting. Plugin and marketplace updates are never gated by this guard.
aidd status # identify modified (~) files
aidd restore # restore all tracked files (all tools), prompts first
aidd restore --force # skip confirmation prompts (CI-safe)
aidd ai restore --tool claude # restore a specific AI tool's files
aidd ai restore rules/naming.md # restore specific filesRestore uses the version pinned in the manifest. It does not touch untracked files. Top-level aidd restore covers all tools; per-tool/per-file restore lives under aidd ai restore / aidd ide restore.
# Register a marketplace and install plugins
aidd marketplace add acme owner/aidd-plugins
aidd plugin install # no arg → interactive browse + install
# One-shot non-interactive install
aidd plugin install my-plugin --yes
# Keep plugins up to date
aidd plugin update
# Check for stale catalogs or upstream-removed plugins
aidd marketplace checkaidd ai uninstall cursor # remove cursor files and clean up the manifest
aidd ide uninstall vscode # remove VS Code integration onlyaidd ai uninstall / aidd ide uninstall take a tool argument; run once per tool to remove several.
| Command | Description | Key options |
|---|---|---|
aidd auth |
Manage authentication (login, logout, status) | --token, --gh, --level |
aidd setup |
Bootstrap a project: init manifest + register marketplace + install runtime config | --source, --path, --release, --ai, --ide, --plugins, --yes |
aidd ai install <tool> |
Install an AI tool runtime configuration from bundled assets | --force |
aidd ai uninstall <tool> |
Remove an AI tool's generated configuration files | — |
aidd ai list |
List installed AI tools | — |
aidd ai status |
Show drift for AI tools | — |
aidd ai update [tool] |
Re-install AI tool configs from bundled CLI assets; prompts on conflicts in TTY, exits 1 in non-TTY | --force |
aidd ai restore [files...] |
Restore AI tool tracked files to their installed version | --force, --tool |
aidd ai doctor |
Check AI tool installation health and detect issues | — |
aidd ide install <tool> |
Install an IDE integration from bundled assets | --force |
aidd ide uninstall <tool> |
Remove an IDE integration from the manifest | — |
aidd ide list |
List installed IDE tools | — |
aidd ide status |
Show drift for IDE tools | — |
aidd ide update [tool] |
Re-install IDE tool configs from bundled CLI assets; prompts on conflicts in TTY, exits 1 in non-TTY | --force |
aidd ide doctor |
Check IDE tool installation health and detect issues | — |
aidd status |
Show drift across all tools (AI + IDE) | — |
aidd doctor |
Structural integrity check — exits 1 on errors or warnings | — |
aidd restore [files...] |
Revert modified/deleted files to the manifest-pinned version | --force, --tool |
aidd plugin |
Manage plugins for AI tools | create, remove, list, install, search, update, doctor |
aidd marketplace |
Manage plugin marketplaces | add, list, remove, refresh, check |
aidd framework build |
Build a Claude-format framework into a tool-native plugin marketplace tree or flat workspace | --source, --target, --out, --flat, --force |
aidd clean |
Remove all AIDD files — dry-run without --force |
--force |
aidd self-update |
Update the CLI itself to the latest version | --check, --dry-run, --force |
Manages stored GitHub credentials used to download the framework.
aidd auth login --token <TOKEN> --level user # store a PAT at user level
aidd auth login --token <TOKEN> --level project # store a PAT at project level
aidd auth login --gh --level user # use gh CLI as token source
aidd auth status # show current auth (exit 1 if not authenticated)
aidd auth logout # remove the active credentialCredentials are stored in JSON files with 600 permissions. The project level stores in .aidd/auth.json — add it to .gitignore to avoid committing secrets.
Bootstraps a new project: initializes the manifest, registers the default marketplace, and writes the runtime config for the selected tools. Interactive by default; scriptable with flags.
aidd setup # interactive guided setup
aidd setup --source remote --ai claude --yes # non-interactive: remote marketplace, claude
aidd setup --source remote --release v4.1.0 --ai claude --yes # pin a specific marketplace tag
aidd setup --source local --path /path/to/framework \
--ai claude --ide vscode --plugins recommended --yes # local framework source
aidd setup --ai all --ide all --yes # all tools, no prompts
aidd setup --ai claude,cursor --ide vscode # mix AI and IDE tools| Flag | Description |
|---|---|
--source remote|local |
Marketplace source. remote fetches from GitHub; local uses a local checkout. |
--release <tag> |
Marketplace version to fetch (e.g. v4.1.0). Defaults to latest tag. Remote only. |
--path <dir> |
Path to local framework checkout. Required with --source local. |
--ai <ids> |
Comma-separated AI tool IDs, or all (e.g. claude,cursor or all). |
--ide <ids> |
Comma-separated IDE tool IDs, or all (e.g. vscode or all). |
--plugins <mode> |
Plugin install mode: none | all | recommended | comma-separated names. |
--no-default-marketplace |
Skip auto-registering aidd-framework (no source prompt, no plugin install). |
--yes |
Accept all defaults; disables interactive prompts. |
--ai, --ide, --plugins, or --source each disable interactive prompts.
Manages AI tools (install, uninstall, list, status, update, restore, doctor).
aidd ai install claude # install Claude Code runtime config
aidd ai install cursor --force # overwrite existing files
aidd ai uninstall claude # remove Claude Code files
aidd ai list # list installed AI tools
aidd ai status # show drift for all AI tools
aidd ai update # re-install all AI tool configs (prompts on conflicts)
aidd ai update claude # re-install a specific AI tool
aidd ai update --force # overwrite modified files without prompting
aidd ai restore --tool claude # restore modified Claude files
aidd ai doctor # check AI tool installation healthManages IDE integrations (install, uninstall, list, status, update, doctor).
aidd ide install vscode # install VS Code integration
aidd ide uninstall vscode # remove VS Code integration
aidd ide list # list installed IDE tools
aidd ide status # show drift for IDE tools
aidd ide update # re-install all IDE tool configs (prompts on conflicts)
aidd ide update --force # overwrite modified files without prompting
aidd ide doctor # check IDE tool installation healthCompares files on disk with the manifest. Shows drift and available framework updates.
aidd status # drift across all tools (AI + IDE)
aidd ai status # AI tools only
aidd ide status # IDE tools onlyLegend: ~ modified · - deleted · + untracked (on disk, not in manifest)
Checks structural integrity. Exits 1 if errors or warnings are found; exits 0 with a warning message if only the auth credential is missing (non-blocking in CI).
aidd doctor # check all tools and plugins
aidd ai doctor # AI tools only
aidd ide doctor # IDE tools onlyDetects: missing or corrupted manifest, orphaned tool directories, broken @path includes and markdown links in tracked files.
Drift (modified/deleted files) is not a structural issue — use
aidd statusfor that.
Re-applies bundled configs and fetches updated plugin content. See Updating the framework for examples.
aidd updaterefreshes every installed tool. To re-install one tool, useaidd ai update <tool>/aidd ide update <tool>(these only touch tools already in the manifest). Useaidd ai install <tool>to add a new tool.
Per-file conflict guard: unmodified files are always updated silently. Modified files prompt in TTY or exit 1 in non-TTY. Use --force to overwrite all modified files without prompting. Plugin and marketplace branches are always ungated.
Reverts modified or deleted files to the version pinned in the manifest. See Restoring modified files for examples.
Manages plugins for AI tools. Plugins extend the framework with additional agents, rules, hooks, and commands distributed independently of the core framework.
aidd plugin install ./path/to/plugin # install a local plugin into all installed tools
aidd plugin install ./path/to/plugin --tool claude # install into a specific tool only
aidd plugin install my-plugin # install a plugin from a registered marketplace
aidd plugin install my-plugin@1.2.0 # pin to a specific version
aidd plugin install my-plugin --from acme # resolve from a specific marketplace
aidd plugin install my-plugin --yes # auto-resolve prompts (CI mode)
aidd plugin list # list installed plugins (all tools)
aidd plugin list --tool claude # list for a specific tool
aidd plugin search hooks # search marketplaces by keyword
aidd plugin search hooks --recommended # show only recommended results
aidd plugin search hooks --marketplace acme # limit search to one marketplace
aidd plugin install # no arg → interactively browse and install from a marketplace
aidd plugin doctor # check plugin installation health
aidd plugin update # update all installed plugins
aidd plugin update my-plugin # update a specific plugin
aidd plugin remove my-plugin # remove a plugin from all tools
aidd plugin remove my-plugin --tool claude # remove from a specific toolRegisters and manages plugin marketplaces — sources that publish plugin catalogs.
aidd marketplace add acme owner/aidd-plugins # register a marketplace (project scope)
aidd marketplace add acme owner/aidd-plugins --user # register at user scope
aidd marketplace add acme owner/aidd-plugins --yes # skip trust + cleanup prompts
aidd marketplace add acme owner/aidd-plugins --overwrite # replace existing entry
aidd marketplace list # list registered marketplaces
aidd marketplace list --plugins # also fetch + print every marketplace's plugin catalog
aidd marketplace refresh # refresh all marketplace catalogs
aidd marketplace refresh acme # refresh a specific marketplace
aidd marketplace refresh --force # clear cache before re-fetching
aidd marketplace remove acme # remove a registered marketplace
aidd marketplace remove acme --yes # skip orphan-cleanup prompt
aidd marketplace check # report stale marketplaces and removed pluginsMarketplace sources accept a GitHub shorthand (owner/repo) or a full path to a local catalog file. Use --token on marketplace add or plugin install when the source requires authentication.
The CLI can ingest plugin catalogs in five native formats and normalizes them into a common schema for installation:
| Format | Catalog probe path (how it's detected) |
|---|---|
| AIDD / Claude native | .claude-plugin/marketplace.json |
| Cursor | .cursor-plugin/marketplace.json |
| GitHub Copilot | .github/plugin/plugin.json |
| Codex | .agents/plugins/marketplace.json |
| OpenCode | opencode.json |
Marketplace registration and plugin enable state are written to per-tool settings files:
| Tool | Settings file |
|---|---|
| Claude Code | .claude/settings.json |
| Cursor | .cursor/settings.json |
| GitHub Copilot | .github/copilot/settings.json |
| Codex | .codex/config.json |
| OpenCode | opencode.json (project root) |
GitHub Copilot — workspace recommendations only. Per VS Code docs,
.github/copilot/settings.jsonregisters marketplaces as team recommendations, not auto-activated. On first chat in the workspace VS Code shows a notification — the user must accept it (or filter Extensions by@agentPlugins @recommendedand enable manually) before plugins load. To skip the per-project click, add the marketplace to the user-level settingchat.plugins.marketplaces(application-scoped, not writable from workspace). See End-to-end: distribute a framework to Copilot for the full flow.
Translates a Claude-format framework source into a target-native distribution — one build per tool, in one of two modes. Used by framework authors to produce the dist trees consumers install. Not a CI step; run it manually (or in your own release script) against a framework checkout, typically a tagged framework release.
aidd framework build \
--source <framework-path> \
--target <tool> \
--out <dir> \
[--flat] [--force]| Flag | Required | Description |
|---|---|---|
--source |
yes | Path to a framework root with plugins/<name>/.claude-plugin/plugin.json entries |
--target |
yes | claude, cursor, copilot, codex, or opencode |
--out |
yes | Output directory. Marketplace mode: dist root (auto-wiped + recreated). Flat mode: the project root to materialize into |
--flat |
no | Materialize directly into a project workspace, bypassing the marketplace layer |
--force |
no | Overwrite existing files at canonical paths. Flat mode only (rejected without --flat) |
- Marketplace (default) — emits a self-contained marketplace tree (
marketplace.json+plugins/<name>/...). The consumer registers it withaidd marketplace addand installs plugins through the tool's native marketplace flow. Paths are rewritten to the tool's plugin-root token; no${CLAUDE_PLUGIN_ROOT}survives unless that token is the tool's own. - Flat (
--flat) — materializes plugin content directly under the tool's workspace config directory (e.g..claude/,.cursor/), with no marketplace indirection. For tools without native marketplace support, or when you want files on disk in the project.
opencode is flat-only (no native marketplace). The other four support both modes.
| Target | Marketplace layout (<out>/) |
Plugin-root token | Flat layout (<project>/) |
|---|---|---|---|
claude |
.claude-plugin/marketplace.json · plugins/<n>/.claude-plugin/plugin.json · agents/*.md |
${CLAUDE_PLUGIN_ROOT} |
.claude/ (+ .mcp.json); hooks merged into .claude/settings.json |
cursor |
.cursor-plugin/marketplace.json · plugins/<n>/.cursor-plugin/plugin.json · agents/*.md |
${CURSOR_PLUGIN_ROOT} |
.cursor/ |
copilot |
.plugin/marketplace.json · plugins/<n>/.plugin/plugin.json (OpenPlugin spec) · agents/*.md |
${PLUGIN_ROOT} |
.github/ (+ .vscode/) |
codex |
.claude-plugin/marketplace.json · plugins/<n>/.codex-plugin/plugin.json · codex-agents/*.toml |
${PLUGIN_ROOT} |
.codex/ |
opencode |
— (flat-only) | — | .opencode/ (+ opencode.json for MCP) |
Copilot uses the OpenPlugin spec (.plugin/plugin.json, ${PLUGIN_ROOT}) — the only layout where Copilot's editor + CLI resolve the plugin-root token at runtime. Codex requires the manifest skills field as a string ("./skills"), and project subagents (.codex/agents/*.toml) load only when the project is trusted.
# 1. (author, per release) — produce the dist tree
aidd framework build --source ./framework --target copilot --out ./dist/aidd-framework-copilot
# 2. (consumer) — register and install
aidd ai install copilot
aidd marketplace add aidd-fw ./dist/aidd-framework-copilot --yes
aidd plugin install aidd-dev --tool copilot --yesAfter step 2 the CLI writes .github/copilot/settings.json with extraKnownMarketplaces + enabledPlugins. VS Code shows a workspace recommendation notification on first chat; the consumer accepts it once for plugins to surface in the slash menu.
To skip the per-project notification, add the dist path to the user-level chat.plugins.marketplaces setting via VS Code Settings UI (search "chat plugins marketplaces"):
The CLI cannot write this setting programmatically (VS Code enforces application scope on it).
# Materialize the framework straight into a project workspace
aidd framework build --source ./framework --target opencode --out ./my-project --flat
# Re-run after source changes, overwriting canonical paths:
aidd framework build --source ./framework --target opencode --out ./my-project --flat --forceFlat mode writes directly under the project's tool directory — no aidd marketplace add / aidd plugin install step. opencode hooks are skipped (its runtime is JS modules, not declarative hooks.json).
for t in claude cursor copilot codex; do
aidd framework build --source ./framework --target "$t" --out "./dist/aidd-framework-$t"
done
aidd framework build --source ./framework --target opencode --out ./dist/aidd-framework-opencode-flat --flatThere is no aidd migrate command. A manifest written by an older CLI version is upgraded to the current schema (v6) automatically when it is loaded — the version-to-version migrations live in manifest.ts and run on Manifest.deserialize. The upgraded shape is persisted the next time the manifest is written (e.g. on the next install or update). The migration chain is idempotent.
Removes all AIDD-generated files and the manifest.
aidd clean # dry-run: shows what will be removed
aidd clean --force # actual removalUpdates the CLI itself to the latest published version.
aidd self-update # install latest version
aidd self-update --check # check availability without installing
aidd self-update --dry-run # preview without installing
aidd self-update --force # reinstall even if already up to dateaidd update --verbose # detailed logsEnvironment variables:
| Variable | Description |
|---|---|
AIDD_TOKEN |
GitHub token — takes precedence over stored credentials (needed for private marketplaces only) |
AIDD_VERBOSE |
Verbose mode (true/false) |
The following commands and flags were removed in v4.1.0. Do not use them in new scripts.
| Removed | Replacement |
|---|---|
aidd install ai <tool> |
aidd ai install <tool> |
aidd install ide <tool> |
aidd ide install <tool> |
aidd uninstall ai <tool> |
aidd ai uninstall <tool> |
aidd uninstall ide <tool> |
aidd ide uninstall <tool> |
aidd cache list |
removed — caches are internal; inspect via aidd marketplace list |
aidd cache clear |
aidd marketplace refresh --force (clears cache before re-fetch) |
aidd config list|get|set |
removed — manifest fields docsDir/repo dropped |
aidd sync / aidd ai sync |
removed — install rebuilds each tool from the marketplace; re-install to refresh |
aidd restore <tool> [file] (tool/file args) |
aidd ai restore [files...] --tool <tool> (top-level aidd restore still exists, force-only, all tools) |
--repo global flag |
aidd marketplace add |
--mode on setup/install |
--source local|remote on aidd setup |
--path on install |
aidd setup --source local --path <dir> |
--release, --from, --switch-mode on install |
removed — tarball download eliminated |
--docs-dir on setup |
removed — docsDir field dropped from manifest v5 |
See MIGRATION.md for the full migration guide from v4.0.x to v4.1.0.
See CONTRIBUTING.md for the full contribution guide.
Code contributions are open to certified Obsidian+ members.
Private repository — all AIDD team members.