AgentDBDocs

CLI commands

The agentdb command line tool. It prints JSON on stdout and is a client of the same API.

Install it, then run agentdb login once: your browser asks you to approve, and the key goes to your system keychain. See Connect your AI.

Global options: -V, --version output the version number; -w, --workspace <id-or-slug> workspace id, slug or name (default: project .agentdb.json, then workspace use, then your default).

Command groups

#agentdb workspace

List, create, select and rename workspaces (projects)

#agentdb workspace list [options]

Workspaces this login can use; * marks the one commands use here

#agentdb workspace create [options] [name]

Create a workspace in your account, e.g. agentdb workspace create "My Application" (needs an account login)

Arguments: [name]

OptionDescription
--slug <slug>handle used by workspace use (default: derived from the name)
--useselect the new workspace afterwards

#agentdb workspace use [options] <workspace>

Select a workspace (id, slug or name) for later commands and for agentdb mcp proxy

Arguments: <workspace>

OptionDescription
--projectsave in ./.agentdb.json (this project only) instead of your user settings

#agentdb workspace current [options]

Show which workspace commands use here, and why

#agentdb workspace rename [options] <workspace> <name>

Rename a workspace, e.g. agentdb workspace rename my-application "New Name" (id and data stay the same)

Arguments: <workspace>; <name>

OptionDescription
--slug <slug>also change the slug

#agentdb workspace info [options]

Show the current workspace with its quotas

#agentdb workspace delete [options] <workspace>

Not available from the CLI (explorer only since rc.8): the owner deletes a workspace in /app, Settings tab

Arguments: <workspace>

OptionDescription
--confirm-name <name>the workspace name, typed exactly (case-sensitive)

#agentdb workspace restore [options] <workspace>

Not available from the CLI (explorer only since rc.8): the owner restores a workspace in /app, Settings tab

Arguments: <workspace>

#agentdb workspace import [options] <bundle>

Re-import a data-export bundle (.tar.gz from data-export --bundle, or .ndjson) into a NEW workspace of your account (needs an account login)

Arguments: <bundle>

OptionDescription
--name <name>name of the new workspace
--slug <slug>slug of the new workspace
--dry-runcheck the bundle and report counts, problems and quota impact; create nothing
--include-automationsalso import flows, jobs, webhooks (paused, new secret) and approval policies (disabled)
--useselect the new workspace afterwards
-k, --idempotency-key <key>retry key (default: derived from the bundle's sha256 and options, so a re-run returns the same workspace)

#agentdb schema

Inspect and change the logical schema (objects, fields, relationships, unique keys)

#agentdb schema inspect [options]

List objects, fields and relationships

#agentdb schema object-create [options] <name>

Arguments: <name>

OptionDescription
--description <text>
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb schema field-add [options] <object> <name>

Arguments: <object>; <name>

OptionDescription
--type <type> requiredtext | integer | boolean | date | datetime | enum | number | decimal | currency | time | timezone | duration | multi_select | list | json | email | url | phone | address | geo | rich_text | formula | status | user_ref | agent_ref | file (docs/FIELD-TYPES.md)
--multiplefile fields: hold a list of files (same as --options '{"multiple":true}')
--requiredfield must be present (only on objects without records)
--uniquereject duplicate values; usable as an upsert match key (text, integer, date, datetime, decimal, time, email, url, phone)
--enum-values <list>comma-separated values for enum, status and multi_select fields
--options <json>type settings as JSON, e.g. '{"scale":2}', '{"item_type":"text"}', '{"expression":"price * quantity"}'
--description <text>
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb schema relationship-add [options] <source_object> <name> <target_object>

Arguments: <source_object>; <name>; <target_object>

OptionDescription
--cardinality <c>one | many (default many)
--description <text>
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb schema field-update [options] <object> <field>

Rename, retype or change a field. Every record is validated first; nothing changes on failure. Use --dry-run to preview.

Arguments: <object>; <field>

OptionDescription
--rename-to <name>
--type <type>text | integer | boolean | date | datetime | enum | number | decimal | currency | time | timezone | duration | multi_select | list | json | email | url | phone | address | geo | rich_text | formula | status (docs/FIELD-TYPES.md)
--enum-values <list>comma-separated values (enum, status, multi_select)
--options <json>replace the type settings (JSON), e.g. a new decimal scale or status transitions
--requiredmake required (all records need a value)
--not-required
--uniquemake unique (no duplicate values allowed)
--not-unique
--description <text>
--dry-runreport the effect, change nothing
--confirmallow lossy conversions (e.g. datetime -> date)
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb schema field-remove [options] <object> <field>

Remove a field and its value from every record (needs --confirm; --dry-run previews)

Arguments: <object>; <field>

OptionDescription
--dry-run
--confirm
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb schema unique-key-add [options] <object> <fields>

Declare fields that together identify a record (comma-separated, 2-5), usable as --match-on a,b,c

Arguments: <object>; <fields>

OptionDescription
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb schema unique-key-remove [options] <object> <fields>

Arguments: <object>; <fields>

OptionDescription
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb schema history [options]

Schema changes, newest first, with the definition before and after (find a change id to undo)

OptionDescription
--object <name>only this object
--field <name>only this field (needs --object)
--limit <n>page size (max 200)
--before <change_id>next page: next_before from the previous page

#agentdb schema undo [options] <change_id>

Reverse one schema change and restore archived values (--dry-run previews; --confirm when values are removed or can't all be restored)

Arguments: <change_id>

OptionDescription
--dry-run
--confirm
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb records

Create, read, update, upsert, delete, count and link records

#agentdb records create [options] <object>

Arguments: <object>

OptionDescription
--data <json>record fields as a JSON object
--file <path>read the JSON object from a file ('-' for stdin)
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb records list [options] <object>

List records of one object type (oldest first unless --sort); use query for filters

Arguments: <object>

OptionDescription
--limit <n>1-200 (default 50)
--sort <field>sort by this field (prefix with - for descending)
--cursor <cursor>next_cursor from the previous page

#agentdb records delete [options] <id>

Delete one record (and its links and attachments; files are kept)

Arguments: <id>

OptionDescription
--expected-version <n>delete only if the record still has this version
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb records delete-many [options] <object>

Delete up to 1000 records by --ids or by --where (needs --expected-count; try --dry-run first)

Arguments: <object>

OptionDescription
--ids <list>comma-separated record ids
--where <json>filter as in query, e.g. '{"all":[{"field":"status","op":"eq","value":"old"}]}'
--expected-count <n>with --where: the number of records you expect to delete
--non-atomicwith --ids: delete the ids that exist and list the missing ones
--dry-runreport what would be deleted; delete nothing
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb records count [options] <object>

Count records, optionally filtered and grouped (server-side; use aggregate for sums and averages)

Arguments: <object>

OptionDescription
--where <json>filter as in query
--by <fields>comma-separated fields to group by
--limit <n>max groups (default 100)

#agentdb records get [options] <id>

Arguments: <id>

#agentdb records update [options] <id>

Arguments: <id>

OptionDescription
--expected-version <n> requiredversion you last read (optimistic concurrency)
--data <json>fields to change; null removes a field
--file <path>
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb records upsert [options] <object>

Bulk create-or-update from a JSONL file (one {"data":{...},"id"?,"version"?} per line) or a JSON array of such items. Sent in batches; each batch is one server transaction.

Arguments: <object>

OptionDescription
--match-on <field> required"id", a unique field, or comma-separated fields of a composite unique key
--file <path> requiredJSONL or JSON array file ('-' for stdin)
--batch-size <n>items per request (1-500) (default 100)
--non-atomiccommit valid items of a batch and report failed ones (default: all-or-nothing per batch)
--skip-missing-keyreport items without a match_on value as skipped instead of failing them
--match-fold <mode>compare match_on values ignoring spacing (trim) or spacing and case (case); stored values are kept
--dry-runvalidate every item and report what would happen; nothing is written
-k, --idempotency-key <key>key prefix; batch i is sent with '<key>:<i>' so re-running the same import is retry-safe

#agentdb records upsert-one [options] <object>

Create-or-update one record by its match key, e.g. --match-on first_name,last_name,company --data '{"first_name":"Ann",...}'

Arguments: <object>

OptionDescription
--match-on <fields> required"id", a unique field, or comma-separated fields of a composite unique key
--data <json>
--file <path>
--expected-version <n>
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb records archive [options] <ids...>

Archive records (left out of queries unless --archived / include_archived)

Arguments: <ids...>

#agentdb records unarchive [options] <ids...>

Bring archived records back into queries

Arguments: <ids...>

#agentdb records recycle-bin [options]

Deleted records that can still be restored

OptionDescription
--object <name>
--limit <n>
--after <record_id>next_after of the previous page

#agentdb records restore [options] <ids...>

Restore deleted records with their links and attachments

Arguments: <ids...>

OptionDescription
--dry-run
--allow-dropped-valuesrestore even if some values no longer fit the schema (they are listed)

#agentdb records purge [options] <ids...>

Delete records in the recycle bin for good (cannot be undone)

Arguments: <ids...>

#agentdb records duplicates [options]

Duplicate suggestions, e.g. --json '{"object":"contact","fields":["name"],"mode":"normalized"}'

OptionDescription
--json <json>request as JSON
--file <path>request JSON file ('-' for stdin)

#agentdb records merge-preview [options] <survivor_id> <merged_ids...>

What a merge would do: values, conflicts, links and files that move

Arguments: <survivor_id>; <merged_ids...>

#agentdb records merge [options]

Merge with explicit field_choices and versions from merge-preview

OptionDescription
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change
--json <json>merge as JSON
--file <path>merge JSON file ('-' for stdin)

#agentdb records merge-undo [options] <merge_id>

Undo a merge while the merged records are in the recycle bin

Arguments: <merge_id>

#agentdb records merges [options]

Merge history

OptionDescription
--record <id>survivor id

#agentdb files

Upload, download, attach and delete files (AgentFiles)

#agentdb files upload [options] <path>

Upload a file (streamed, checksum-verified) and optionally attach it to a record

Arguments: <path>

OptionDescription
--content-type <type>MIME type (default: guessed from the extension, else application/octet-stream)
--name <filename>stored file name (default: the local file name)
--record <id>attach to this record after upload
--role <role>attachment role (default attachment)
--folder <folder>folder label, e.g. contracts/2026
--tags <list>comma-separated tags
--resumablesend in resumable parts (default for files of 64 MiB and more)
-k, --idempotency-key <key>retry key; re-running with the same key resumes instead of creating a second file

#agentdb files get [options] <file_id>

Arguments: <file_id>

#agentdb files list [options]

OptionDescription
--record <id>only files attached to this record
--status <status>pending | ready
--folder <folder>only this folder
--recursivewith --folder: include subfolders
--tag <tag>only files with this tag
--kind <kind>image | audio | video | text | document | archive | other
--limit <n>
--after <id>

#agentdb files update [options] <file_id>

Rename a file or change its folder and tags (content is not changed)

Arguments: <file_id>

OptionDescription
--name <filename>
--folder <folder>folder label; pass an empty string to remove it
--tags <list>comma-separated tags (replaces the tags; empty string removes all)
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb files replace [options] <file_id> <path>

Upload new content for a file as a new version; attachments and file fields keep pointing at it

Arguments: <file_id>; <path>

OptionDescription
--content-type <type>MIME type of the new content (default: the current one)
--name <filename>new stored file name (default: the current one)
--resumablesend in resumable parts
-k, --idempotency-key <key>retry key; re-running with the same key continues the same version

#agentdb files versions [options] <file_id>

Version history of a file

Arguments: <file_id>

#agentdb files delete-version [options] <file_id> <version>

Delete an earlier version or cancel a pending replacement

Arguments: <file_id>; <version>

OptionDescription
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb files download [options] <file_id>

Arguments: <file_id>

OptionDescription
--output <path> required
--forceoverwrite an existing file

#agentdb files attach [options] <file_id> <record_id>

Arguments: <file_id>; <record_id>

OptionDescription
--role <role>attachment role (default attachment)
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb files detach [options] <attachment_id>

Arguments: <attachment_id>

OptionDescription
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb files delete [options] <file_id>

Arguments: <file_id>

OptionDescription
--forcealso detach it from every record
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb aggregate

Server-side count/sum/avg/min/max with optional group_by, e.g. --json '{"object":"invoice","group_by":[{"field":"issued_on","bucket":"month"}],"metrics":[{"op":"sum","field":"amount"}]}'

#agentdb aggregate [options]

Server-side count/sum/avg/min/max with optional group_by, e.g. --json '{"object":"invoice","group_by":[{"field":"issued_on","bucket":"month"}],"metrics":[{"op":"sum","field":"amount"}]}'

OptionDescription
--json <spec>aggregation as JSON
--file <path>aggregation JSON file ('-' for stdin)

#agentdb query

Run a typed query (see docs/QUICKSTART.md for the DSL)

#agentdb query [options]

Run a typed query (see docs/QUICKSTART.md for the DSL)

OptionDescription
--json <query>query as JSON
--file <path>query JSON file ('-' for stdin)

#agentdb dashboards

Live data links for dashboards the agent designs (read-only panels, optional password, expiry, allowed origins)

#agentdb dashboards create [options]

Create a data link; prints data_url and a ready fetch loop (usage.js)

OptionDescription
--title <title> required
--panels <json>panels, e.g. '[{"title":"Open","aggregate":{"object":"ticket","group_by":["status"]}}]'
--file <path>panels JSON file ('-' for stdin)
--access <mode>link (default), password or key
--password-stdinread the dashboard password from stdin (10-200 characters)
--expires-in-hours <n>link stops working after n hours
--expires-at <iso>link stops working at this time
--allowed-origins <list>comma-separated website origins allowed to read it, e.g. https://app.example.com
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb dashboards list [options]

List dashboards (never shows links, keys or password hashes)

#agentdb dashboards update [options] <dashboard_id>

Change sharing settings; the link stays the same

Arguments: <dashboard_id>

OptionDescription
--access <mode>link (default), password or key
--password-stdinread the dashboard password from stdin (10-200 characters)
--expires-in-hours <n>link stops working after n hours
--expires-at <iso>link stops working at this time
--allowed-origins <list>comma-separated website origins allowed to read it, e.g. https://app.example.com
--clear-expiryremove the expiry
--clear-allowed-originsallow every origin again

#agentdb dashboards revoke [options] <dashboard_id>

Stop the link at once (also for viewers that are watching)

Arguments: <dashboard_id>

#agentdb dashboard-sites

Custom dashboards: host your own dashboard website (HTML, CSS, JS) with live read-only data; share it with only you, a link, a link + password, or invited people

#agentdb dashboard-sites create [options]

Create a custom dashboard (nothing is live until deploy --publish)

OptionDescription
--title <title> required
--mode <mode>only_me (default), link, link_password or people
--password-stdinread the shared password from stdin (mode link_password, 10-200 characters)
--expires-in-days <n>the dashboard stops after n days (1-365)
--no-expiryno expiry

#agentdb dashboard-sites list [options]

List custom dashboards with URL, mode and status

#agentdb dashboard-sites get [options] <site_id>

Versions, files, validation problems, sharing and recent events

Arguments: <site_id>

#agentdb dashboard-sites deploy [options] <site_id> <dir>

Upload a folder as a new version (index.html required; manifest.json for data sources); --publish makes it live

Arguments: <site_id>; <dir>

OptionDescription
--publishpublish the new version when it is ready

#agentdb dashboard-sites publish [options] <site_id>

Make a ready version live (an older version rolls back)

Arguments: <site_id>

OptionDescription
--version <n> required

#agentdb dashboard-sites share [options] <site_id>

Show sharing, or change it with --mode/--password-stdin/--expires-in-days

Arguments: <site_id>

OptionDescription
--mode <mode>only_me (default), link, link_password or people
--password-stdinread the shared password from stdin (mode link_password, 10-200 characters)
--expires-in-days <n>the dashboard stops after n days (1-365)
--no-expiryno expiry

#agentdb dashboard-sites invite [options] <site_id> <emails...>

Invite people by email (mode people); each gets a personal single-use link

Arguments: <site_id>; <emails...>

OptionDescription
--valid-days <n>days the link stays valid (1-30, default 7)

#agentdb dashboard-sites revoke-viewer [options] <site_id>

Remove one invited viewer

Arguments: <site_id>

OptionDescription
--email <email> required

#agentdb dashboard-sites unpublish [options] <site_id>

Take it offline; versions are kept

Arguments: <site_id>

#agentdb dashboard-sites revoke [options] <site_id>

Stop it for good, at once (also open pages)

Arguments: <site_id>

#agentdb dashboard-sites delete [options] <site_id>

Delete it and its stored files

Arguments: <site_id>

#agentdb dashboard-sites pause [options] <site_id>

Pause it: a neutral paused page, no data, every session ends

Arguments: <site_id>

#agentdb dashboard-sites resume [options] <site_id>

Resume a paused dashboard

Arguments: <site_id>

#agentdb access

Who you are in the workspace (key, agent or member), your role and per object/field access

#agentdb access [options]

Who you are in the workspace (key, agent or member), your role and per object/field access

#agentdb docs

API and schema docs generated from this workspace (what you may see)

#agentdb docs [options]

API and schema docs generated from this workspace (what you may see)

OptionDescription
--markdownprint markdown instead of JSON
--object <name>only this object type

#agentdb members

People in the workspace: invite by email with a role (viewer, editor, admin)

#agentdb members list [options]

Owner, members and open invitations (owner/admin)

#agentdb members invite [options] <email>

Email a 7-day invitation link

Arguments: <email>

OptionDescription
--role <role> requiredviewer | editor | admin

#agentdb members role [options] <member_id> <role>

Change a member's role

Arguments: <member_id>; <role>

#agentdb members remove [options] <member_id>

Remove a member or withdraw an invitation

Arguments: <member_id>

#agentdb agents

Named agents with their own keys and a role no higher than yours

#agentdb agents list [options]

Agents with role, status and who granted them

#agentdb agents create [options] <name>

Create an agent and print its key once

Arguments: <name>

OptionDescription
--role <role> requiredviewer | editor | admin
--description <text>
--expires-in-hours <n>the agent stops working after n hours

#agentdb agents key [options] <agent_id>

Issue another key for an agent (printed once)

Arguments: <agent_id>

#agentdb agents revoke [options] <agent_id>

Revoke an agent, its keys and the agents it delegated to

Arguments: <agent_id>

#agentdb permissions

Rules that narrow a role per object, field or owned record

#agentdb permissions list [options]

All rules (owner/admin)

#agentdb permissions set [options] <subject> <object> [field]

Create or replace a rule; subject is role:viewer, role:editor, user:<acc_…> or agent:<agt_…>

Arguments: <subject>; <object>; [field]

OptionDescription
--access <access> requirednone | read | write
--owner-field <field>object rules: only records whose user_ref/agent_ref field is the caller

#agentdb permissions remove [options] <rule_id>

Remove a rule

Arguments: <rule_id>

#agentdb webhooks

Signed https webhooks for change events, jobs and flows (docs/WEBHOOKS.md)

#agentdb webhooks create [options] <url>

Register an https endpoint; prints the signing secret ONCE

Arguments: <url>

OptionDescription
--events <list>comma list of record.created, record.updated, record.deleted, relationship.linked, relationship.unlinked, schema.changed, file.changed, webhook.disabled, message.posted, message.edited, message.deleted, channel.changed, inbox.item, conversation.changed, or *
--objects <list>only record events of these objects
--name <name>
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb webhooks list [options]

List webhooks (never shows secrets)

#agentdb webhooks get [options] <webhook_id>

One webhook with delivery counts

Arguments: <webhook_id>

#agentdb webhooks update [options] <webhook_id>

Change url, events, objects or name

Arguments: <webhook_id>

OptionDescription
--url <url>
--events <list>
--objects <list>comma list, or 'all' for every object
--name <name>

#agentdb webhooks pause [options] <webhook_id>

Stop sending (events keep queueing)

Arguments: <webhook_id>

#agentdb webhooks resume [options] <webhook_id>

Send again (also after an automatic disable)

Arguments: <webhook_id>

#agentdb webhooks delete [options] <webhook_id>

Delete; queued deliveries are cancelled

Arguments: <webhook_id>

#agentdb webhooks rotate-secret [options] <webhook_id>

New secret (printed once); the old one also signs during the grace period

Arguments: <webhook_id>

OptionDescription
--grace-seconds <n>default 86400, 0 = stop the old secret now

#agentdb webhooks test [options] <webhook_id>

Queue a signed webhook.test delivery

Arguments: <webhook_id>

#agentdb webhooks deliveries [options]

Delivery log, newest first (status: pending, delivering, succeeded, dead, cancelled)

OptionDescription
--webhook <id>
--status <status>only this status
--limit <n>page size (max 100)
--cursor <cursor>next_cursor of the previous page

#agentdb webhooks redeliver [options] <delivery_id>

Send a finished delivery again (same event id)

Arguments: <delivery_id>

#agentdb jobs

Scheduled jobs: once, cron or RRULE in an IANA time zone (docs/SCHEDULER-AND-FLOWS.md)

#agentdb jobs create [options]

e.g. --json '{"name":"Daily digest","schedule":{"type":"cron","expression":"0 9 * * 1-5","timezone":"Europe/Amsterdam"},"action":{"type":"create_record","object":"agent_task","data":{"title":"Write digest"}}}'

OptionDescription
--json <json>job as JSON
--file <path>job JSON file ('-' for stdin)
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb jobs list [options]

OptionDescription
--status <status>active, paused, cancelled or completed

#agentdb jobs get [options] <job_id>

One job with its next 5 run times

Arguments: <job_id>

#agentdb jobs update [options] <job_id>

Change name, schedule, action, missed or max_attempts

Arguments: <job_id>

OptionDescription
--json <json>changes as JSON
--file <path>changes JSON file ('-' for stdin)

#agentdb jobs pause [options] <job_id>

Run nothing until resumed

Arguments: <job_id>

#agentdb jobs resume [options] <job_id>

Resume from now (missed times are not made up)

Arguments: <job_id>

#agentdb jobs cancel [options] <job_id>

Cancel for good

Arguments: <job_id>

#agentdb jobs run [options] <job_id>

Run once now

Arguments: <job_id>

#agentdb jobs runs [options]

Run history, newest first

OptionDescription
--job <id>
--status <status>only this status
--limit <n>page size (max 100)
--cursor <cursor>next_cursor of the previous page

#agentdb jobs retry [options] <run_id>

Retry a dead run

Arguments: <run_id>

#agentdb jobs preview [options]

Next times of a schedule without creating it (also checks a recurrence field value)

OptionDescription
--cron <expression>
--rrule <rule>
--at <datetime>
--start <local>RRULE start, e.g. 2026-11-02T09:00
--timezone <tz>IANA zone, default UTC
--count <n>default 5, max 50

#agentdb flows

Rules on record changes: trigger, where condition, actions (docs/SCHEDULER-AND-FLOWS.md)

#agentdb flows create [options]

Create a flow (try it first with flows test)

OptionDescription
--json <json>flow as JSON
--file <path>flow JSON file ('-' for stdin)
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb flows list [options]

#agentdb flows get [options] <flow_id>

One flow with versions and run counts

Arguments: <flow_id>

#agentdb flows update [options] <flow_id>

Change a flow (keeps a new version)

Arguments: <flow_id>

OptionDescription
--json <json>changes as JSON
--file <path>changes JSON file ('-' for stdin)

#agentdb flows pause [options] <flow_id>

Arguments: <flow_id>

#agentdb flows resume [options] <flow_id>

Arguments: <flow_id>

#agentdb flows delete [options] <flow_id>

Arguments: <flow_id>

#agentdb flows test [options]

Dry run, e.g. --json '{"flow_id":"flw_…","record_id":"rec_…"}' (nothing is written or sent)

OptionDescription
--json <json>test as JSON
--file <path>test JSON file ('-' for stdin)

#agentdb flows runs [options]

Flow run history (audit)

OptionDescription
--flow <id>
--status <status>only this status
--limit <n>page size (max 100)
--cursor <cursor>next_cursor of the previous page

#agentdb channels

Durable work messages: channels, threads, mentions, receipts (docs/CHANNELS-AND-INBOX.md)

#agentdb channels create [options] <name>

Arguments: <name>

OptionDescription
--privatemembers only (hidden from everyone else)
--topic <text>
--retention-days <n>remove messages older than this
--members <list>comma list of identities (agent:agt_…, user:acc_…, key:key_…)
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb channels list [options]

OptionDescription
--joinedonly channels you are in
--archivedinclude archived channels

#agentdb channels get [options] <channel_id>

Arguments: <channel_id>

#agentdb channels update [options] <channel_id>

e.g. --json '{"topic":"…","retention_days":30,"archived":false}'

Arguments: <channel_id>

OptionDescription
--json <json>changes as JSON
--file <path>changes JSON file ('-' for stdin)

#agentdb channels add-members [options] <channel_id> <identities>

Arguments: <channel_id>; <identities>

OptionDescription
--moderatoras moderators

#agentdb channels members [options] <channel_id>

Members with read receipts and ack offsets

Arguments: <channel_id>

#agentdb channels remove-member [options] <channel_id> <identity>

Remove a member (your own identity = leave)

Arguments: <channel_id>; <identity>

#agentdb channels subscribe [options] <channel_id>

Join a public channel or change your notify level

Arguments: <channel_id>

OptionDescription
--notify <level>all, mentions (default) or none

#agentdb channels direct [options] <identity>

Open the direct channel with an agent or human

Arguments: <identity>

#agentdb channels post [options] <channel_id> [body]

Arguments: <channel_id>; [body]

OptionDescription
--thread <message_id>reply in this thread
--payload <json>structured data, e.g. a task handoff
--priority <p>low, normal, high, urgent
--mention <list>comma list of identities
--link <list>comma list of record ids
--attach <list>comma list of file ids
--dedupe-key <key>posting again with this key returns the first message
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb channels messages [options] <channel_id>

Arguments: <channel_id>

OptionDescription
--after <seq>newer than this seq (next_after of the previous call)
--before <seq>the latest page before this seq
--thread <message_id>
--limit <n>max 200
--waitlong-poll up to 25 s for new messages

#agentdb channels pending [options] <channel_id>

Messages after your ack offset (they come back until acked)

Arguments: <channel_id>

OptionDescription
--waitlong-poll up to 25 s

#agentdb channels ack [options] <channel_id> <seq>

Arguments: <channel_id>; <seq>

OptionDescription
--read-onlyonly a read receipt, not a processing ack

#agentdb channels purge [options] <channel_id>

Apply the retention now (moderators)

Arguments: <channel_id>

#agentdb channels message [options] <message_id>

One message (with history for the author and moderators)

Arguments: <message_id>

#agentdb channels edit [options] <message_id> <body>

Arguments: <message_id>; <body>

#agentdb channels delete-message [options] <message_id>

Arguments: <message_id>

OptionDescription
--purge-historyalso remove the edit history

#agentdb inbox

Your inbox: mentions, direct messages, assignments, notifications

#agentdb inbox list [options]

OptionDescription
--state <state>unread, read, done, open (default) or all
--kind <kind>mention, direct, assignment or notification
--waitlong-poll up to 25 s while empty

#agentdb inbox read [options] <item_id>

Mark an item read

Arguments: <item_id>

#agentdb inbox unread [options] <item_id>

Mark an item unread

Arguments: <item_id>

#agentdb inbox done [options] <item_id>

Mark an item done

Arguments: <item_id>

#agentdb inbox notify [options] <identity> <title>

Arguments: <identity>; <title>

OptionDescription
--text <text>

#agentdb conversations

Shared inbox with handoff: assign, claim, resolve (docs/CHANNELS-AND-INBOX.md)

#agentdb conversations create [options] <subject>

Arguments: <subject>

OptionDescription
--provider <p>internal (default), email or api
--contact <address>
--assignee <identity>
--note <text>

#agentdb conversations list [options]

OptionDescription
--status <status>open, pending, resolved, unresolved (default) or all
--assignee <who>me, none (the queue) or an identity
--cursor <cursor>

#agentdb conversations get [options] <conversation_id>

The conversation with every entry

Arguments: <conversation_id>

#agentdb conversations reply [options] <conversation_id> <body>

Arguments: <conversation_id>; <body>

OptionDescription
--noteinternal note (never sent)

#agentdb conversations assign [options] <conversation_id> <identity>

Hand over to an agent or human ('none' = back to the queue)

Arguments: <conversation_id>; <identity>

OptionDescription
--note <text>

#agentdb conversations claim [options] <conversation_id>

Arguments: <conversation_id>

#agentdb conversations resolve [options] <conversation_id>

Arguments: <conversation_id>

OptionDescription
--note <text>

#agentdb approvals

Propose writes for human approval, decide, and manage approval policies (docs/APPROVALS-AND-HUB.md)

#agentdb approvals submit [options]

Propose a write, e.g. --json '{"operation":"records.update","params":{"record":"rec_…"},"input":{"version":3,"data":{"amount":5000}},"justification":"…"}'

OptionDescription
--json <json>proposal as JSON
--file <path>proposal JSON file ('-' for stdin)
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb approvals list [options]

Proposals, newest first

OptionDescription
--mineonly yours
--decidableonly those you may decide now
--status <status>only this status
--limit <n>page size (max 100)
--cursor <cursor>next_cursor of the previous page

#agentdb approvals get [options] <approval_id>

One proposal: input, preview, decisions, result

Arguments: <approval_id>

#agentdb approvals approve [options] <approval_id>

Arguments: <approval_id>

OptionDescription
--comment <text>
--confirm <approval_id>high-risk policies: repeat the approval id

#agentdb approvals reject [options] <approval_id>

Arguments: <approval_id>

OptionDescription
--comment <text>
--confirm <approval_id>high-risk policies: repeat the approval id

#agentdb approvals request-changes [options] <approval_id>

Arguments: <approval_id>

OptionDescription
--comment <text>
--confirm <approval_id>high-risk policies: repeat the approval id

#agentdb approvals cancel [options] <approval_id>

Withdraw a pending proposal

Arguments: <approval_id>

OptionDescription
--comment <text>

#agentdb approvals policies [options] [command]

Which writes need approval and who decides (owners and admins)

#agentdb approvals policies list [options]

#agentdb approvals policies create [options]

e.g. --json '{"name":"Large amounts","operations":["records.update"],"objects":["invoice"],"condition":{"field":"amount","op":"gt","value":1000}}'

OptionDescription
--json <json>policy as JSON
--file <path>policy JSON file ('-' for stdin)

#agentdb approvals policies update [options] <policy_id>

Change a policy (include its current version)

Arguments: <policy_id>

OptionDescription
--json <json>changes as JSON
--file <path>changes JSON file ('-' for stdin)

#agentdb approvals policies delete [options] <policy_id>

Arguments: <policy_id>

#agentdb calendar

Calendars, events, free-busy, meeting slots and iCalendar (docs/CALENDAR.md)

#agentdb calendar create [options]

Create a calendar: {name, timezone, owner?, writers?}

OptionDescription
--json <json>calendar as JSON
--file <path>calendar JSON file ('-' for stdin)
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb calendar list [options]

#agentdb calendar get [options] <calendar_id>

Arguments: <calendar_id>

#agentdb calendar update [options] <calendar_id>

Arguments: <calendar_id>

OptionDescription
--json <json>changes as JSON
--file <path>changes JSON file ('-' for stdin)

#agentdb calendar delete [options] <calendar_id>

Delete a calendar with its events

Arguments: <calendar_id>

#agentdb calendar event-create [options]

Book an event (see docs/CALENDAR.md for start/end formats, recurrence, participants, reminders)

OptionDescription
--json <json>event as JSON
--file <path>event JSON file ('-' for stdin)
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb calendar event-get [options] <event_id>

Arguments: <event_id>

#agentdb calendar event-update [options] <event_id>

Change an event; add "occurrence" to change one occurrence

Arguments: <event_id>

OptionDescription
--json <json>changes as JSON
--file <path>changes JSON file ('-' for stdin)

#agentdb calendar event-delete [options] <event_id>

Arguments: <event_id>

OptionDescription
--occurrence <start>only this occurrence (its original start)

#agentdb calendar respond [options] <event_id> <response>

accepted, declined, tentative or needs_action (for yourself)

Arguments: <event_id>; <response>

OptionDescription
--participant <key>owners/admins: answer for user:/agent:/resource:/email: participant

#agentdb calendar events [options]

Occurrences between --from and --to (RFC 3339)

OptionDescription
--from <datetime> required
--to <datetime> required
--calendars <ids>comma-separated calendar ids
--participant <key>

#agentdb calendar availability [options]

Free-busy for calendars and participants

OptionDescription
--json <json>query as JSON
--file <path>query JSON file ('-' for stdin)

#agentdb calendar slots [options]

Find free meeting slots

OptionDescription
--json <json>query as JSON
--file <path>query JSON file ('-' for stdin)

#agentdb calendar expand [options]

Expand an RRULE into occurrences

OptionDescription
--json <json>query as JSON
--file <path>query JSON file ('-' for stdin)

#agentdb calendar export [options] <calendar_id>

iCalendar (.ics) export (JSON with an ics field)

Arguments: <calendar_id>

#agentdb calendar import [options] <calendar_id> <ics_file>

Import an .ics file (max 1 MiB)

Arguments: <calendar_id>; <ics_file>

OptionDescription
--skip-existingleave events with a known UID unchanged

#agentdb knowledge

Facts, decisions and documents with sources, versions and review (docs/KNOWLEDGE.md)

#agentdb knowledge create [options]

Store an item with sources

OptionDescription
--json <json>item as JSON
--file <path>item JSON file ('-' for stdin)
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb knowledge get [options] <item_id>

Arguments: <item_id>

#agentdb knowledge list [options]

OptionDescription
--kind <kind>
--status <status>
--tag <tag>
--cites <source>file:<id>, record:<id>, item:<id> or url:<url>
--pending-review

#agentdb knowledge update [options] <item_id>

New version (a proposal on trusted items unless you are an owner/admin)

Arguments: <item_id>

OptionDescription
--json <json>changes as JSON
--file <path>changes JSON file ('-' for stdin)

#agentdb knowledge propose [options] <item_id>

Propose a change or contradiction with a reason

Arguments: <item_id>

OptionDescription
--json <json>proposal as JSON
--file <path>proposal JSON file ('-' for stdin)

#agentdb knowledge review [options] <item_id> <version> <decision>

Owners/admins: accept or reject a proposal

Arguments: <item_id>; <version>; <decision>

OptionDescription
--note <text>
--forceaccept although a later version was accepted meanwhile

#agentdb knowledge versions [options] <item_id>

Arguments: <item_id>

#agentdb knowledge provenance [options] <item_id>

Arguments: <item_id>

OptionDescription
--depth <n>1-5, default 3

#agentdb knowledge delete [options] <item_id>

Archive (default); --purge --confirm removes it for good

Arguments: <item_id>

OptionDescription
--purge
--confirm

#agentdb connectors

Integration connectors: sealed credentials, sync, inbound and outbound (docs/INTEGRATIONS.md)

#agentdb connectors types [options]

Connector types on this server

#agentdb connectors create [options]

Configure a connector (credentials are shown never again)

OptionDescription
--json <json>connector as JSON
--file <path>connector JSON file ('-' for stdin)
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb connectors list [options]

#agentdb connectors get [options] <connector_id>

Arguments: <connector_id>

#agentdb connectors update [options] <connector_id>

Change config, rotate credentials, pause/resume

Arguments: <connector_id>

OptionDescription
--json <json>changes as JSON
--file <path>changes JSON file ('-' for stdin)

#agentdb connectors delete [options] <connector_id>

Arguments: <connector_id>

#agentdb connectors sync [options] <connector_id>

Run a sync now

Arguments: <connector_id>

#agentdb connectors rotate-inbound-secret [options] <connector_id>

Arguments: <connector_id>

#agentdb connectors send [options] <connector_id>

Perform an allowed action, e.g. --json '{"action":"notify","payload":{...}}'

Arguments: <connector_id>

OptionDescription
--json <json>action as JSON
--file <path>action JSON file ('-' for stdin)

#agentdb connectors runs [options]

Sync runs, newest first

OptionDescription
--connector <id>
--status <status>only this status
--limit <n>page size (max 100)
--cursor <cursor>next_cursor of the previous page

#agentdb connectors inbound-events [options]

OptionDescription
--connector <id>

#agentdb import

Import a CSV/JSON/JSONL file on the server. Without --object/--match-on (or with --inspect) it only inspects: columns, types, match keys, spelling variants and suggested normalize rules. Run with --dry-run first; --normalize applies only the rules you give and reports every changed cell.

#agentdb import [options] <file>

Import a CSV/JSON/JSONL file on the server. Without --object/--match-on (or with --inspect) it only inspects: columns, types, match keys, spelling variants and suggested normalize rules. Run with --dry-run first; --normalize applies only the rules you give and reports every changed cell.

Arguments: <file>

OptionDescription
--object <name>object to import into
--match-on <fields>unique field, or comma-separated fields of a composite unique key
--links <json>link columns, e.g. '[{"column":"company","relationship":"works_at","target_field":"name"}]'
--columns <json>column -> field mapping, e.g. '{"E-mail":"email","junk":null}'
--normalize <json>explicit value rules per column, e.g. '{"company":{"ACME, Inc.":"Acme Inc"}}'
--normalize-file <path>the same rules from a JSON file (e.g. suggested_normalize saved from --inspect, after review)
--confirm-uncertain <json>uncertain normalize rules the person approved, [{"column","from","to","confirm_token"}] with the tokens from the refusal (without it such rules are refused)
--match-fold <mode>compare match_on values ignoring spacing (trim) or spacing and case (case); stored values are kept
--inspectonly inspect, even with --object/--match-on
--dry-runreport exactly what would happen, write nothing
--atomicimport nothing if any row fails
--on-unresolved-link <mode>rows whose link target doesn't exist: import_unlinked (default), skip, or reject
--file-id <id>use an already uploaded file instead of uploading <file> again
-k, --idempotency-key <key>retry-safe key: repeating the command with the same key and input never repeats the change

#agentdb capabilities

What the server offers (versions, MCP tools and when each was added, limits). No login needed. Find an operation: --search "attach a file", --category files, --operation files_attach, --index (all categories).

#agentdb capabilities [options]

What the server offers (versions, MCP tools and when each was added, limits). No login needed. Find an operation: --search "attach a file", --category files, --operation files_attach, --index (all categories).

OptionDescription
--search <words>Operations that best match what you want to do, ranked
--category <name>One category's operations with required inputs
--operation <name>One operation's full input schema and an example
--indexThe compact category index

Full-text search (enable per object with search configure) and semantic search (off by default)

#agentdb search query [options] <object> <words...>

Records containing every word (--any: at least one); ranked, with highlights

Arguments: <object>; <words...>

OptionDescription
--fields <names>comma-separated indexed fields to search
--anymatch any word instead of all
--where <json>exact filter as in records query
--limit <n>
--cursor <cursor>next_cursor of the previous page
--archivedinclude archived records

#agentdb search configure [options] <object>

Enable (and build) the full-text index of an object; --disable removes it

Arguments: <object>

OptionDescription
--fields <names>comma-separated text-like fields (default: all)
--disable

#agentdb search config [options]

Objects with a full-text index

#agentdb search semantic [options] <object> <words...>

Semantic ranking (FEATURE_DISABLED unless the operator enabled a provider)

Arguments: <object>; <words...>

OptionDescription
--limit <n>

#agentdb lifecycle

Retention of the recycle bin per object

#agentdb lifecycle info [options] [object]

Arguments: [object]

#agentdb lifecycle retention [options] <object> <days>

Days deleted records stay restorable (0 = permanent deletes, 'default' = 30)

Arguments: <object>; <days>

#agentdb integrity

Dry-run integrity report: required relationships and records missing their link

#agentdb integrity [options]

Dry-run integrity report: required relationships and records missing their link

OptionDescription
--object <name>

#agentdb relationships

Relationship types (required flag)

#agentdb relationships require [options] <object> <relationship>

Make a relationship required (--off: optional again)

Arguments: <object>; <relationship>

OptionDescription
--off
--dry-runlist records that lack the link

#agentdb views

Saved views: named, versioned queries (private or shared in the workspace)

#agentdb views create [options]

e.g. --json '{"name":"open_deals","object":"deal","visibility":"workspace","definition":{"where":{"all":[…]}}}'

OptionDescription
--json <json>view as JSON
--file <path>view JSON file ('-' for stdin)

#agentdb views list [options]

OptionDescription
--object <name>

#agentdb views get [options] <view>

A view with its versions

Arguments: <view>

#agentdb views run [options] <view>

Arguments: <view>

OptionDescription
--limit <n>
--cursor <cursor>
--version <n>run an earlier version

#agentdb views update [options] <view>

Needs the current version, e.g. --json '{"version":1,"name":"x"}'

Arguments: <view>

OptionDescription
--json <json>changes as JSON
--file <path>changes JSON file ('-' for stdin)

#agentdb views delete [options] <view>

Arguments: <view>

#agentdb packages

Versioned schema packages and templates (install is additive and idempotent)

#agentdb packages install [options] [manifest_file]

Install or upgrade a package from a JSON manifest, or --template crm|agent_crm|agent_todos|agent_kanban|agent_projects|support|recruit|property|inventory|assets

Arguments: [manifest_file]

OptionDescription
--template <name>
--version <version>install this version of the template (default: the current one)
--dry-runshow the diff, change nothing
--automationsalso create the package's flows and approval policies (owners and admins)
--sample-dataalso add the package's synthetic demo dataset (once)

#agentdb packages list [options]

Installed packages and built-in templates

#agentdb packages get [options] <name>

A package's or template's manifest

Arguments: <name>

#agentdb packages uninstall [options] <name>

Forget a package (and its views, flows and approval policies); objects, fields and records stay

Arguments: <name>

OptionDescription
--keep-views
--keep-automationskeep the package's flows and approval policies

#agentdb cms

AgentCMS: content types, publishing, revisions and delivery tokens (packages install --template cms first)

#agentdb cms configure [options]

Make an object a content type, e.g. --json '{"object":"cms_post","public_fields":["title","slug","body"]}'

OptionDescription
--json <json>settings as JSON
--file <path>settings JSON file ('-' for stdin)

#agentdb cms types [options]

Content types and their delivery settings

#agentdb cms unconfigure [options] <object>

Stop delivering an object (records and revisions stay)

Arguments: <object>

#agentdb cms publish [options] <record>

Publish (or re-publish) an item that is in review

Arguments: <record>

OptionDescription
--version <n>expected current version

#agentdb cms unpublish [options] <record>

Arguments: <record>

OptionDescription
--status <status>status to move to (default archived)

#agentdb cms schedule [options] <record> <at>

Publish at an RFC 3339 time (a scheduler job)

Arguments: <record>; <at>

#agentdb cms revisions [options] <record>

Arguments: <record>

#agentdb cms revision [options] <record> <version>

Arguments: <record>; <version>

#agentdb cms diff [options] <record> <from> [to]

Arguments: <record>; <from>; [to]

#agentdb cms restore [options] <record> <revision>

Arguments: <record>; <revision>

OptionDescription
--version <n> requiredthe record's current version

#agentdb cms token-create [options] <label>

A read-only delivery token for a website (shown once)

Arguments: <label>

OptionDescription
--types <objects>comma-separated content types
--expires-in-days <n>

#agentdb cms tokens [options]

#agentdb cms token-revoke [options] <id>

Arguments: <id>

#agentdb forms

AgentForms: public forms that create records (packages install --template forms for an inquiry object)

#agentdb forms create [options]

Create a form from a JSON definition (the token is shown once)

OptionDescription
--json <json>form as JSON
--file <path>form JSON file ('-' for stdin)

#agentdb forms list [options]

#agentdb forms get [options] <form>

Arguments: <form>

#agentdb forms update [options] <form>

Needs the current version, e.g. --json '{"version":1,"status":"closed"}'

Arguments: <form>

OptionDescription
--json <json>changes as JSON
--file <path>changes JSON file ('-' for stdin)

#agentdb forms rotate-token [options] <form>

Arguments: <form>

#agentdb forms delete [options] <form>

Arguments: <form>

#agentdb forms submissions [options]

OptionDescription
--form <form>
--status <status>accepted, quarantined, released or discarded

#agentdb forms release [options] <submission>

Arguments: <submission>

#agentdb forms discard [options] <submission>

Arguments: <submission>

#agentdb content

AgentContent: posts, campaigns and metrics are records (packages install --template content)

#agentdb content dispatch [options] <record>

Hand a post to the operator's outbound publisher (off by default)

Arguments: <record>

#agentdb indexes

Named indexes on often-filtered fields (max 5 per object, 20 per workspace)

#agentdb indexes create [options] <name> <object> <field>

Arguments: <name>; <object>; <field>

#agentdb indexes list [options]

OptionDescription
--recommendationsalso list index recommendations from recent queries
--object <name>only recommendations for this object

#agentdb indexes drop [options] <name>

Arguments: <name>

#agentdb data-export

Download your data: records, links, schema and file metadata (ndjson), or --bundle (.tar.gz with file bytes). Owners and admins.

#agentdb data-export [options]

Download your data: records, links, schema and file metadata (ndjson), or --bundle (.tar.gz with file bytes). Owners and admins.

OptionDescription
--output <path> required
--bundlea .tar.gz with file bytes
--no-filesbundle without file bytes
--objects <names>comma-separated objects (default all)
--forceoverwrite an existing file

#agentdb login

Log in through the browser (or --api-key) and save the key in the OS credential store

#agentdb login [options]

Log in through the browser (or --api-key) and save the key in the OS credential store

OptionDescription
--api-url <url>AgentDB server (default: AGENTDB_API_URL, the current login, or https://app.agentdb.link)
--api-keypaste an existing API key instead (hidden prompt, or read from stdin when piped)
--no-browserdo not try to open a browser; just print the link

#agentdb logout

Remove the saved key; a key issued by agentdb login is also revoked on the server

#agentdb logout [options]

Remove the saved key; a key issued by agentdb login is also revoked on the server

OptionDescription
--keep-keydo not revoke the key on the server

#agentdb whoami

Show the workspace and key the CLI uses (checks it with the server)

#agentdb whoami [options]

Show the workspace and key the CLI uses (checks it with the server)

#agentdb status

Login, server and MCP setup at a glance (never prints secrets)

#agentdb status [options]

Login, server and MCP setup at a glance (never prints secrets)

#agentdb mcp

Connect AI tools (Claude Code, Codex, Cursor, VS Code, Claude Desktop, Windsurf, Gemini CLI) to AgentDB

#agentdb mcp install [options] <client>

Register AgentDB in an AI tool (claude | codex | cursor | vscode | claude-desktop | windsurf | gemini); the tool runs agentdb mcp proxy, so no key is written to its config

Arguments: <client>

OptionDescription
--forcereplace an existing MCP server named "agentdb"

#agentdb mcp remove [options] <client>

Remove AgentDB from an AI tool (other servers and settings are kept)

Arguments: <client>

#agentdb mcp list [options]

Show which AI tools have AgentDB configured

#agentdb mcp proxy [options]

stdio MCP server forwarding to AgentDB with the saved login (started by the AI tool, not by you)

#agentdb skill

The official AgentDB agent skill (SKILL.md)

#agentdb skill print [options]

Print SKILL.md

#agentdb skill install [options] <client>

Install SKILL.md for Claude Code (~/.claude/skills/agentdb/SKILL.md)

Arguments: <client>