@aident-ai/cli
Agent-friendly access to Aident Loadout by default, with Playbook and Intern available as packages.
aident login
aident capabilities search --query "send email"
aident packages add playbook
aident playbooks list --json
The CLI is the only npm CLI package Aident ships. It is a thin wrapper around the public OpenAPI package APIs under
/api/openapi/..., so CLI behavior stays aligned with API and MCP behavior.
Install
npx -y @aident-ai/cli <command>
npm install -g @aident-ai/cli
Get Started
aident setup
aident doctor
aident update --check
aident --help
aident setup installs or updates the verified Aident Skill globally, migrates recognized clean project copies that
could shadow it, reuses or opens Aident authentication, verifies Loadout access, and records completion. Add
--client-name <name> to record the agent client and --json for a single machine-readable report; a configured
AIDENT_TOKEN makes the flow non-interactive.
Use --oob for browserless auth environments:
aident login --oob
To revoke the stored OAuth token and remove ~/.aident/credentials.json:
aident logout
When using AIDENT_TOKEN, unset it in your shell after running aident logout.
DeepSeek Harness Plugin
Install the same package as a native DSH plugin:
dsh plugin --profile web add @aident-ai/cli
dsh --profile web
The package bundle activates @aident-ai/cli/dsh. It registers an auth tool and the server-owned Loadout tool
catalog directly with DSH, while keeping CLI-only lifecycle commands private to the terminal interface. The plugin
shares ~/.aident/credentials.json and AIDENT_TOKEN with the CLI. Run aident login before starting DSH, or ask the
agent to call the auth tool with action: "login"; newly authenticated tools are loaded without a restart.
Updates
Check without changing the machine, or explicitly update both the CLI and static skill:
aident update --check
aident update
aident update --project
The CLI uses the package manager that owns the active persistent installation and verifies the exact resulting
version. The skill updater verifies a digest-addressed Aident artifact, installs one canonical global copy, and
preserves project copies unless --project is passed. Recommendations never apply an update automatically.
Packages
Loadout is always enabled by default. Add Playbook only when an agent needs to create, execute, or manage playbooks.
Intern is admin-gated and should be used only by authenticated admin users.
aident --help
aident packages add playbook
aident packages list
aident --package playbook playbooks list --json
aident --packages playbook playbooks execute --playbookId pb_123 --json
Common Loadout Commands
aident capabilities search --query "send email"
aident capabilities get --name "composio:gmail_tools:gmail_send_email"
aident capabilities execute --name "composio:gmail_tools:gmail_send_email" --input '{"to":"user@example.com"}'
aident capabilities execute --name "composio:gmail_tools:gmail_send_email" --input-file ./input.json
aident skills search --query "review a technical plan"
aident skills read --name "skill:550e8400-e29b-41d4-a716-446655440000"
aident skills favorite --name "skill:550e8400-e29b-41d4-a716-446655440000"
aident skills sync
aident vault status --integrationId composio:github_tools
aident integrations migrate-local --json
aident integrations migrate-local --apply --integrationIds github_tools,slack_tools --json
aident billing balance --json
aident audit recent --limit 20
aident audit recent --scope team --json
integrations migrate-local scans known local MCP/agent config files, redacts secret-like values, maps supported
providers to Loadout integrations, and starts selected Vault/OAuth connect flows only when --apply is passed.
skills favorite saves the account preference and immediately synchronizes all current favorites. skills sync
reconciles each current public revision into ~/.agents/skills and links it into supported harness-global Skill
directories, where the deterministic loadout-<slug>-<id> name is available as a slash command. Its discovery
description uses the reviewed display name and summary for the CLI's system language, with English fallback. The CLI
tracks its owned paths in ~/.aident/favorite-skills.json and never overwrites or removes unmanaged paths. During
normal authenticated commands, the server compares the manifest state with the user's current favorites. When they
differ, the CLI tells the agent to finish the current task and ask the user before running aident skills sync; it
never synchronizes favorite Skills automatically.
billing balance keeps balance and returns currentCreditSource for the currently selected wallet. The legacy
creditSource alias remains available for compatibility. The response also returns wallets.personal plus
wallets.team when the team owner has enabled credit sharing. The Team wallet includes its team and owner names;
wallets.team is null while sharing is unavailable.
audit recent returns creditSource on newly charged action rows so callers can distinguish Personal and Team usage;
uncharged and historical rows return null. Team owners can pass --scope team to see shared-wallet usage across all
active members instead of just their own: each entry adds actingUserId/actingUserEmail/actingUserName, and the
summary adds a byActingUser breakdown. --scope team is rejected for anyone who isn't the owner of a team with
credit sharing enabled; the default --scope mine behavior is unchanged.
When aident setup --client-name <name> has registered the current agent installation, audit rows use that verified
agent name as agentName. audit summary groups those names under bySource and reports CLI/MCP separately under
byTransport; recent rows retain requestSource, mcpClientId, and mcpClientName for transport-level diagnosis.
Successful self-owned rows can include resultFiles with a direct downloadUrl and nullable expiresAt, allowing a
caller to recover persisted output after an interrupted response. Audit output does not expose internal asset IDs, and
team scope does not expose another member's result files.
Configuration
Settings live in ~/.aident/config.json; OAuth credentials live in ~/.aident/credentials.json.
| Key | Default | Purpose |
|---|
baseUrl | https://loadout.aident.ai | API host used for logins and command execution. |
packages | ["loadout"] | Enabled packages. Loadout is always included locally. |
aident config show
aident config set baseUrl https://loadout.aident.ai
aident config set packages playbook
aident config unset packages
Environment overrides:
| Variable | Purpose |
|---|
AIDENT_TOKEN | Use this Bearer token directly; skips the credentials file. |
AIDENT_BASE_URL | Override the API host for one invocation. |
AIDENT_PACKAGE | Focus one package for one invocation. |
AIDENT_PACKAGES | Enable add-on packages for one invocation, e.g. playbook. |
OAuth credentials are shared across HTTPS Aident hosts under aident.ai, so changing baseUrl or AIDENT_BASE_URL
between production, RC, staging, or preview hosts does not require another login. Custom hosts remain isolated.
Remote commands, catalog discovery, and help also accept --base-url <url> for one invocation. The flag takes
precedence over AIDENT_BASE_URL and saved configuration without changing either. Stored credentials remain subject
to the same origin checks.
How It Works
Discovery fetches /api/openapi/{package}.json and reads the package command catalog embedded in the OpenAPI document.
Execution calls /api/openapi/{package}/{operationId} with the command arguments as JSON.
When multiple packages are enabled, the CLI fetches each package schema, merges the catalogs locally, and routes each
command back to the package operation that contributed it. Unknown commands are not guessed across packages.
License
MIT