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
workspaceschemarecordsfilesaggregatequerydashboardsdashboard-sitesaccessdocsmembersagentspermissionswebhooksjobsflowschannelsinboxconversationsapprovalscalendarknowledgeconnectorsimportcapabilitiessearchlifecycleintegrityrelationshipsviewspackagescmsformscontentindexesdata-exportloginlogoutwhoamistatusmcpskill
#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]
| Option | Description |
|---|---|
--slug <slug> | handle used by workspace use (default: derived from the name) |
--use | select 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>
| Option | Description |
|---|---|
--project | save 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>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--name <name> | name of the new workspace |
--slug <slug> | slug of the new workspace |
--dry-run | check the bundle and report counts, problems and quota impact; create nothing |
--include-automations | also import flows, jobs, webhooks (paused, new secret) and approval policies (disabled) |
--use | select 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>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--type <type> required | 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 | user_ref | agent_ref | file (docs/FIELD-TYPES.md) |
--multiple | file fields: hold a list of files (same as --options '{"multiple":true}') |
--required | field must be present (only on objects without records) |
--unique | reject 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>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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 |
--required | make required (all records need a value) |
--not-required | |
--unique | make unique (no duplicate values allowed) |
--not-unique | |
--description <text> | |
--dry-run | report the effect, change nothing |
--confirm | allow 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>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
-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>
| Option | Description |
|---|---|
-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)
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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-atomic | with --ids: delete the ids that exist and list the missing ones |
--dry-run | report 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>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--expected-version <n> required | version 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>
| Option | Description |
|---|---|
--match-on <field> required | "id", a unique field, or comma-separated fields of a composite unique key |
--file <path> required | JSONL or JSON array file ('-' for stdin) |
--batch-size <n> | items per request (1-500) (default 100) |
--non-atomic | commit valid items of a batch and report failed ones (default: all-or-nothing per batch) |
--skip-missing-key | report 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-run | validate 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>
| Option | Description |
|---|---|
--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 link-batch [options] <source_object> <relationship>
Bulk link from a JSONL file or JSON array; one {"source_record_id"|"source_key", "target_record_id"|"target_key", "client_ref"?} per line, where a key is {"<unique field>": value}. Sent in batches; each batch is one server transaction.
Arguments: <source_object>; <relationship>
| Option | Description |
|---|---|
--file <path> required | JSONL or JSON array file ('-' for stdin) |
--batch-size <n> | links per request (1-500) (default 500) |
--non-atomic | commit valid links of a batch and report failed ones (default: all-or-nothing per batch) |
--skip-existing | report already-linked pairs as exists instead of failing |
-k, --idempotency-key <key> | key prefix; batch i is sent with '<key>:<i>' so re-running the same import is retry-safe |
#agentdb records link [options] <source_id> <relationship> <target_id>
Arguments: <source_id>; <relationship>; <target_id>
| Option | Description |
|---|---|
-k, --idempotency-key <key> | retry-safe key: repeating the command with the same key and input never repeats the change |
#agentdb records unlink [options] <link_id>
Arguments: <link_id>
| Option | Description |
|---|---|
-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
| Option | Description |
|---|---|
--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...>
| Option | Description |
|---|---|
--dry-run | |
--allow-dropped-values | restore 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"}'
| Option | Description |
|---|---|
--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
| Option | Description |
|---|---|
-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
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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 |
--resumable | send 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]
| Option | Description |
|---|---|
--record <id> | only files attached to this record |
--status <status> | pending | ready |
--folder <folder> | only this folder |
--recursive | with --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>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--content-type <type> | MIME type of the new content (default: the current one) |
--name <filename> | new stored file name (default: the current one) |
--resumable | send 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>
| Option | Description |
|---|---|
-k, --idempotency-key <key> | retry-safe key: repeating the command with the same key and input never repeats the change |
#agentdb files search [options] <query>
Find files by name or indexed text (exact substring; reports what was indexed)
Arguments: <query>
| Option | Description |
|---|---|
--folder <folder> | |
--recursive | |
--tag <tag> | |
--kind <kind> | |
--limit <n> |
#agentdb files link [options] <file_id>
Signed, expiring link that opens the file without an API key (for dashboards and public apps)
Arguments: <file_id>
| Option | Description |
|---|---|
--expires-in <seconds> | lifetime in seconds (60 to 604800) (default 3600) |
--disposition <d> | inline | attachment (default: inline for images/audio/video) |
--version <n> | pin the link to one version |
#agentdb files links [options] [file_id]
List signed file links (of one file, or of the workspace)
Arguments: [file_id]
#agentdb files unlink [options] <link_id>
Revoke a signed file link
Arguments: <link_id>
#agentdb files download [options] <file_id>
Arguments: <file_id>
| Option | Description |
|---|---|
--output <path> required | |
--force | overwrite an existing file |
#agentdb files attach [options] <file_id> <record_id>
Arguments: <file_id>; <record_id>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
-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>
| Option | Description |
|---|---|
--force | also 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"}]}'
| Option | Description |
|---|---|
--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)
| Option | Description |
|---|---|
--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)
| Option | Description |
|---|---|
--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-stdin | read 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>
| Option | Description |
|---|---|
--access <mode> | link (default), password or key |
--password-stdin | read 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-expiry | remove the expiry |
--clear-allowed-origins | allow 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)
| Option | Description |
|---|---|
--title <title> required | |
--mode <mode> | only_me (default), link, link_password or people |
--password-stdin | read the shared password from stdin (mode link_password, 10-200 characters) |
--expires-in-days <n> | the dashboard stops after n days (1-365) |
--no-expiry | no 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>
| Option | Description |
|---|---|
--publish | publish 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>
| Option | Description |
|---|---|
--version <n> required |
#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...>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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 regenerate-link [options] <site_id>
Link mode: a new link (?k= key); the old link stops at once
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)
| Option | Description |
|---|---|
--markdown | print 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>
| Option | Description |
|---|---|
--role <role> required | viewer | 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>
| Option | Description |
|---|---|
--role <role> required | viewer | 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]
| Option | Description |
|---|---|
--access <access> required | none | 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>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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)
| Option | Description |
|---|---|
--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"}}}'
| Option | Description |
|---|---|
--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]
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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
| Option | Description |
|---|---|
--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)
| Option | Description |
|---|---|
--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)
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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)
| Option | Description |
|---|---|
--json <json> | test as JSON |
--file <path> | test JSON file ('-' for stdin) |
#agentdb flows runs [options]
Flow run history (audit)
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--private | members 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]
| Option | Description |
|---|---|
--joined | only channels you are in |
--archived | include 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>
| Option | Description |
|---|---|
--json <json> | changes as JSON |
--file <path> | changes JSON file ('-' for stdin) |
#agentdb channels add-members [options] <channel_id> <identities>
Arguments: <channel_id>; <identities>
| Option | Description |
|---|---|
--moderator | as 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>
| Option | Description |
|---|---|
--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]
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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 |
--wait | long-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>
| Option | Description |
|---|---|
--wait | long-poll up to 25 s |
#agentdb channels ack [options] <channel_id> <seq>
Arguments: <channel_id>; <seq>
| Option | Description |
|---|---|
--read-only | only 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>
| Option | Description |
|---|---|
--purge-history | also remove the edit history |
#agentdb channels search [options] <query>
Arguments: <query>
| Option | Description |
|---|---|
--channel <channel_id> |
#agentdb inbox
Your inbox: mentions, direct messages, assignments, notifications
#agentdb inbox list [options]
| Option | Description |
|---|---|
--state <state> | unread, read, done, open (default) or all |
--kind <kind> | mention, direct, assignment or notification |
--wait | long-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>
| Option | Description |
|---|---|
--text <text> |
#agentdb conversations
Shared inbox with handoff: assign, claim, resolve (docs/CHANNELS-AND-INBOX.md)
#agentdb conversations create [options] <subject>
Arguments: <subject>
| Option | Description |
|---|---|
--provider <p> | internal (default), email or api |
--contact <address> | |
--assignee <identity> | |
--note <text> |
#agentdb conversations list [options]
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--note | internal 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>
| Option | Description |
|---|---|
--note <text> |
#agentdb conversations claim [options] <conversation_id>
Arguments: <conversation_id>
#agentdb conversations resolve [options] <conversation_id>
Arguments: <conversation_id>
| Option | Description |
|---|---|
--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":"…"}'
| Option | Description |
|---|---|
--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
| Option | Description |
|---|---|
--mine | only yours |
--decidable | only 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>
| Option | Description |
|---|---|
--comment <text> | |
--confirm <approval_id> | high-risk policies: repeat the approval id |
#agentdb approvals reject [options] <approval_id>
Arguments: <approval_id>
| Option | Description |
|---|---|
--comment <text> | |
--confirm <approval_id> | high-risk policies: repeat the approval id |
#agentdb approvals request-changes [options] <approval_id>
Arguments: <approval_id>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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}}'
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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?}
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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)
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--json <json> | changes as JSON |
--file <path> | changes JSON file ('-' for stdin) |
#agentdb calendar event-delete [options] <event_id>
Arguments: <event_id>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--participant <key> | owners/admins: answer for user:/agent:/resource:/email: participant |
#agentdb calendar events [options]
Occurrences between --from and --to (RFC 3339)
| Option | Description |
|---|---|
--from <datetime> required | |
--to <datetime> required | |
--calendars <ids> | comma-separated calendar ids |
--participant <key> |
#agentdb calendar availability [options]
Free-busy for calendars and participants
| Option | Description |
|---|---|
--json <json> | query as JSON |
--file <path> | query JSON file ('-' for stdin) |
#agentdb calendar slots [options]
Find free meeting slots
| Option | Description |
|---|---|
--json <json> | query as JSON |
--file <path> | query JSON file ('-' for stdin) |
#agentdb calendar expand [options]
Expand an RRULE into occurrences
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--skip-existing | leave 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
| Option | Description |
|---|---|
--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]
| Option | Description |
|---|---|
--kind <kind> | |
--status <status> | |
--tag <tag> | |
--cites <source> | file:<id>, record:<id>, item:<id> or url:<url> |
--pending-review |
#agentdb knowledge search [options] <query>
Arguments: <query>
| Option | Description |
|---|---|
--mode <mode> | exact, text (default) or semantic |
--trusted-only | |
--fresh-only |
#agentdb knowledge update [options] <item_id>
New version (a proposal on trusted items unless you are an owner/admin)
Arguments: <item_id>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--note <text> | |
--force | accept 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>
| Option | Description |
|---|---|
--depth <n> | 1-5, default 3 |
#agentdb knowledge delete [options] <item_id>
Archive (default); --purge --confirm removes it for good
Arguments: <item_id>
| Option | Description |
|---|---|
--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)
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--json <json> | action as JSON |
--file <path> | action JSON file ('-' for stdin) |
#agentdb connectors runs [options]
Sync runs, newest first
| Option | Description |
|---|---|
--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]
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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 |
--inspect | only inspect, even with --object/--match-on |
--dry-run | report exactly what would happen, write nothing |
--atomic | import 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).
| Option | Description |
|---|---|
--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 |
--index | The compact category index |
#agentdb search
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...>
| Option | Description |
|---|---|
--fields <names> | comma-separated indexed fields to search |
--any | match any word instead of all |
--where <json> | exact filter as in records query |
--limit <n> | |
--cursor <cursor> | next_cursor of the previous page |
--archived | include archived records |
#agentdb search configure [options] <object>
Enable (and build) the full-text index of an object; --disable removes it
Arguments: <object>
| Option | Description |
|---|---|
--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...>
| Option | Description |
|---|---|
--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
| Option | Description |
|---|---|
--object <name> |
#agentdb relationships
Relationship types (required flag)
#agentdb relationships require [options] <object> <relationship>
Make a relationship required (--off: optional again)
Arguments: <object>; <relationship>
| Option | Description |
|---|---|
--off | |
--dry-run | list 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":[…]}}}'
| Option | Description |
|---|---|
--json <json> | view as JSON |
--file <path> | view JSON file ('-' for stdin) |
#agentdb views list [options]
| Option | Description |
|---|---|
--object <name> |
#agentdb views get [options] <view>
A view with its versions
Arguments: <view>
#agentdb views run [options] <view>
Arguments: <view>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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]
| Option | Description |
|---|---|
--template <name> | |
--version <version> | install this version of the template (default: the current one) |
--dry-run | show the diff, change nothing |
--automations | also create the package's flows and approval policies (owners and admins) |
--sample-data | also 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>
| Option | Description |
|---|---|
--keep-views | |
--keep-automations | keep 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"]}'
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--version <n> | expected current version |
#agentdb cms unpublish [options] <record>
Arguments: <record>
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--version <n> required | the record's current version |
#agentdb cms token-create [options] <label>
A read-only delivery token for a website (shown once)
Arguments: <label>
| Option | Description |
|---|---|
--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)
| Option | Description |
|---|---|
--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>
| Option | Description |
|---|---|
--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]
| Option | Description |
|---|---|
--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]
| Option | Description |
|---|---|
--recommendations | also 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.
| Option | Description |
|---|---|
--output <path> required | |
--bundle | a .tar.gz with file bytes |
--no-files | bundle without file bytes |
--objects <names> | comma-separated objects (default all) |
--force | overwrite 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
| Option | Description |
|---|---|
--api-url <url> | AgentDB server (default: AGENTDB_API_URL, the current login, or https://app.agentdb.link) |
--api-key | paste an existing API key instead (hidden prompt, or read from stdin when piped) |
--no-browser | do 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
| Option | Description |
|---|---|
--keep-key | do 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>
| Option | Description |
|---|---|
--force | replace 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>