Skip to content

CLI Commands

Terminal window
allagents update [--offline] [--dry-run] [--client <client>] [--scope <scope>]
allagents status

Updates plugins in the workspace using non-destructive sync. By default, remote plugins are updated to their latest version. Also available as allagents workspace update or allagents workspace sync.

FlagDescription
--offlineUse cached plugins without fetching latest from remote
--dry-runPreview changes without applying them
-c, --client <client>Sync only the specified client (e.g., opencode, claude)
-s, --scope <scope>Sync scope: project (default) or user

When --scope user is used, sync targets the user-level workspace at ~/.allagents/workspace.yaml and installs plugins to user directories (~/.claude/, ~/.codex/, etc.) instead of the project.

Non-destructive behavior:

  • First sync overlays files without deleting existing user files
  • Subsequent syncs only remove files previously synced by AllAgents
  • User files (not from plugins) are never deleted

Sync state is tracked in .allagents/sync-state.json.

When vscode is in the clients list, sync also generates a .code-workspace file with repository paths resolved to absolute paths. See the Workspaces guide for details.

Show the sync status of all configured plugins and skills.

Terminal window
allagents status

Lists every configured entry with its availability, type, and configured clients. Each entry includes a Type label of either plugin or skill:

  • plugin — standard plugin repository (has a skills/ directory or no SKILL.md at the root)
  • skill — standalone skill repository (root-level SKILL.md, no skills/ subdirectory)

With --json, each entry in the plugins array includes a kind field ("plugin" or "skill"):

{
"plugins": [
{ "source": "owner/repo", "type": "github", "kind": "skill", "available": true }
],
"clients": ["claude"]
}

allagents workspace status is accepted as a backwards-compatible alias.

Terminal window
allagents workspace init <path> [--from <source>]
allagents workspace status # alias for `allagents status`
allagents workspace plugin install <plugin@marketplace> [--scope <scope>]
allagents workspace plugin remove <plugin> [--scope <scope>]

Initialize a new workspace from a template:

FlagDescription
--from <source>Copy workspace.yaml from local path or GitHub URL

Source formats:

  • Local path: ./path/to/template or /absolute/path
  • GitHub URL: https://github.com/owner/repo/tree/branch/path
  • GitHub shorthand: owner/repo/path or owner/repo

When using a GitHub source, AllAgents fetches workspace.yaml from .allagents/workspace.yaml or workspace.yaml in the target path.

FlagDescription
-s, --scope <scope>Installation scope: project (default) or user

When --scope user is used, the plugin is added to the user-level config at ~/.allagents/workspace.yaml instead of the project workspace. User-scoped plugins sync to user directories (~/.claude/, ~/.codex/, etc.) and are available across all projects.

Terminal window
allagents self update [--npm] [--bun]

Update AllAgents to the latest published version.

FlagDescription
--npmForce update using npm
--bunForce update using bun

If neither flag is provided, AllAgents auto-detects the package manager used during installation.

When running the interactive TUI (allagents with no arguments), AllAgents checks the npm registry for newer versions in the background. If an update is available, a notice is shown on the next startup:

allagents v0.13.4
ℹ Update available: 0.13.4 → 0.14.0
Run `allagents self update` to upgrade.

The check runs at most once every 24 hours and never blocks startup. Results are cached at ~/.allagents/version-check.json.

Terminal window
allagents plugin list [marketplace]
allagents plugin validate <path>
allagents plugin install <plugin> [--skill <name>] [--scope <scope>]
allagents plugin uninstall <plugin> [--scope <scope>]
allagents plugin marketplace add <source> [--name <name>] [--branch <branch>]
allagents plugin marketplace list
allagents plugin marketplace remove <name>
allagents plugin marketplace update [name]
allagents skill list [--scope <scope>]
allagents skill remove <skill> [--plugin <plugin>] [--scope <scope>]
allagents skill add <skill> [--from <source>] [--plugin <plugin>] [--scope <scope>]
allagents skill update [skill...] [--scope <scope>] [--yes]

List all installed plugins and skills.

Terminal window
allagents plugin list
allagents plugin list [marketplace] # filter by marketplace name

Each entry shows a Type label of either plugin or skill (see status for the classification rule). With --json, each entry includes a kind field:

{
"plugins": [
{ "spec": "owner/repo", "scope": "user", "kind": "skill", "fileClients": ["claude"] }
]
}

Install a plugin into the workspace.

FlagDescription
-s, --scope <scope>Installation scope: project (default) or user
--skill <name>Only enable specific skills from the plugin (can be repeated)

Only enable specific skills from the plugin. Can be specified multiple times:

Terminal window
allagents plugin install superpowers@marketplace --skill brainstorming --skill tdd

When used, all other skills from the plugin are implicitly disabled. Skills can be added later with skill add.

List all skills from installed plugins with their enabled/disabled status.

FlagDescription
-s, --scope <scope>Scope: project (default) or user

Disable a skill, preventing it from being synced to the workspace.

FlagDescription
-p, --plugin <plugin>Plugin name (required if skill exists in multiple plugins)
-s, --scope <scope>Scope: project (default) or user

After disabling, the skill is added to disabledSkills in workspace.yaml and sync is run to remove it.

Add skills from a GitHub repo, re-enable a previously disabled skill, or add a skill from a specific plugin. The positional argument is interpreted by context:

FlagDescription
-f, --from <source>Plugin source (GitHub URL, owner/repo, or plugin@marketplace) to install if the skill is not already available
--skill <names>Comma-separated skill names to install when the positional is a plugin source
--allInstall every skill from the source
--listList available skills at the source without installing
-p, --plugin <plugin>Plugin name (required if skill exists in multiple plugins)
-s, --scope <scope>Scope: project (default) or user

Skill-first: install all skills from a repo

Section titled “Skill-first: install all skills from a repo”

Pass owner/repo directly with no flags — all skills in that repo are installed automatically. This mirrors how npx skills add treats a package as a transport for its skills, not a named entity:

Terminal window
# Install all skills from a repo (standalone skill or multi-skill bundle)
allagents skill add ReScienceLab/opc-skills
allagents skill add https://github.com/owner/repo
allagents skill add gh:owner/repo

This works for:

  • Standalone skill repos — a single SKILL.md at the root (no skills/ subdirectory)
  • Multi-skill bundles — repos with a skills/ directory containing multiple skill files

Use --list first to preview what’s available before installing:

Terminal window
allagents skill add ReScienceLab/opc-skills --list

To install only one skill from a multi-skill repo:

Terminal window
allagents skill add reddit --from ReScienceLab/opc-skills
allagents skill add ReScienceLab/opc-skills --skill reddit

To install multiple by name:

Terminal window
allagents skill add ReScienceLab/opc-skills --skill reddit,terraform

To install a skill from a specific file URL:

Terminal window
allagents skill add https://github.com/owner/repo/tree/main/skills/my-skill
Terminal window
allagents skill add brainstorming
allagents skill add brainstorming --plugin superpowers

After enabling, the skill is removed from disabledSkills and sync is run to restore it.

Check installed remote skills for upstream changes, update surviving skills, and safely reconcile skills that were deleted upstream.

Terminal window
allagents skill update
allagents skill update code-review glow-api
allagents skill update --scope user
allagents skill update --scope all
allagents skill update --yes
allagents --json skill update --scope project
Argument or flagDescription
[skill...]Update only the physical sources containing the named enabled skills. Names, qualified paths, and plugin:path selectors are accepted. All enabled siblings sharing a selected source are still checked for deletion safety.
-s, --scope <scope>Scope: project (default when a project config exists), user, or all.
-y, --yesRun without prompts. This does not authorize deletion: a source with upstream deletions is retained and skipped.

AllAgents performs a read-only preflight against disposable checkouts before changing a config or plugin cache. When an installed skill has disappeared upstream, interactive terminals list the affected skill copies and ask once for the shared physical source:

  • Yes removes the deleted skill selectors or standalone skill entries, advances that source to the inspected revision, and updates its surviving skills.
  • No keeps the local copies and skips every update from that physical source, including survivor updates.
  • Cancelling any confirmation stops the whole operation before the first mutation.

Non-interactive runs—including --yes, redirected input/output, CI, and --json—behave like No for sources with deletions. This makes unattended updates safe by default. Sources without deletion candidates can still update normally.

Plugin subpaths, marketplace entries, and project/user installs can share one physical cache. A decision therefore applies to the complete connected cache unit rather than only the config spelling that selected it. If an update in one scope would affect a deleted skill in an unselected scope, AllAgents keeps the cache unchanged and asks you to rerun with --scope all. A failed or declined unit does not prevent independent physical sources from updating.

After accepted caches advance, AllAgents syncs affected clients from those exact cached revisions in offline mode. Declined caches are not refreshed indirectly by the final sync.

With --json, each physical source result has one of these statuses:

StatusMeaning
updatedThe source advanced and surviving skills were synced; no deletion was required.
removedConfirmed deleted skills were removed and surviving skills were updated.
retainedDeleted local copies were kept, so the complete shared source was left unchanged.
skippedA physical update unit was intentionally skipped without an operational failure.
failedPreflight, transaction, or offline sync failed for this source. Independent sources may still succeed.
cancelledConfirmation was cancelled before any changes were made.

Local plugin sources are listed separately in data.skippedLocalSources. The JSON summary reports per-skill updated, removed, and retained counts plus physical-source skipped, failed, and cancelled counts. Usage errors exit with status 2, operational failures with status 1, and safe retained/skipped results with status 0.

Terminal window
allagents mcp add <name> <commandOrUrl> [options]
allagents mcp proxy <serverUrl> [--header KEY=VALUE...]
allagents mcp remove <name>
allagents mcp list
allagents mcp get <name>
allagents mcp update [--offline]

Manage MCP servers at the workspace level. Servers are persisted in a top-level mcpServers: field in workspace.yaml (parallel to mcpProxy:) and synced to all configured clients that support project-scoped MCP (claude, codex, vscode, copilot).

Add a new MCP server to workspace.yaml and immediately sync it to all configured clients.

FlagDescription
--transport <type>Transport type: http or stdio (auto-detected from URL by default)
--arg <value>Argument for the stdio command (repeatable)
-e, --env <KEY=VALUE>Environment variable for stdio transport (repeatable)
--header <KEY=VALUE>HTTP header for http transport (repeatable)
--client <csv>Comma-separated list of clients that should receive this server (default: all project-scoped clients)
-f, --forceReplace an existing server with the same name

Transport auto-detection: if <commandOrUrl> starts with http:// or https://, http transport is selected; otherwise stdio is selected. Passing --transport stdio with a URL, or --transport http with a non-URL command, is rejected.

Terminal window
# HTTP server
allagents mcp add deepwiki https://mcp.deepwiki.com/mcp
# HTTP server with headers and client filter
allagents mcp add internal https://mcp.internal.corp --header Authorization=Bearer-token --client claude,copilot
# stdio server with args and env vars
allagents mcp add gh-server npx --arg=-y --arg=@modelcontextprotocol/server-github -e GH_TOKEN=ghp_xxx
# Replace an existing server (update workflow)
allagents mcp add deepwiki https://new.example.com --force

Expose a remote HTTP MCP server locally over stdio. This is the helper command AllAgents writes into proxied client configs when mcpProxy rewrites an HTTP server for clients that only support stdio transport.

FlagDescription
--header <KEY=VALUE>HTTP header forwarded to the upstream MCP server (repeatable)
Terminal window
allagents mcp proxy https://mcp.deepwiki.com/mcp
allagents mcp proxy https://mcp.internal.corp --header Authorization=Bearer-token

proxy is the only supported public command shown in help and generated configs.

Remove a server from workspace.yaml and unsync it from all clients. Only servers AllAgents added are removed; pre-existing user-managed servers in client MCP configs are preserved.

Terminal window
allagents mcp remove deepwiki

List all MCP servers defined in workspace.yaml.

Terminal window
allagents mcp list

Print the workspace.yaml definition for a specific server as YAML.

Terminal window
allagents mcp get deepwiki

Exits with status 1 if the server is not defined in workspace.yaml.

Re-sync MCP servers only, without touching skills, agents, hooks, or other plugin artifacts. Useful when you’ve edited workspace.yaml’s mcpServers: block manually and want to push the changes to clients without running a full workspace sync.

FlagDescription
--offlineUse cached plugins without fetching from remote marketplaces
Terminal window
allagents mcp update
allagents mcp update --offline

To modify a server definition, use allagents mcp add <name> ... --force.

AllAgents only tracks MCP servers it added. This means:

  • mcp add marks the server as AllAgents-owned in .allagents/sync-state.json.
  • mcp remove only removes servers from client MCP configs that AllAgents originally added. User-managed servers (added manually to .mcp.json, .vscode/mcp.json, etc.) are never touched.
  • If you manually add a server to a client config first, and then run mcp add with the same name, the existing user-managed entry is left alone (AllAgents will skip it with a warning).

See CLAUDE.md — MCP Server Sync for the full ownership rule.