@standards/cli 1.0.0-alpha.418 → 1.0.0-alpha.421

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,162 @@
1
+ # standards: agents
2
+
3
+ Run Standards agents from the shell: configure where they run, start sessions on a harness, follow them, answer the decisions they stop on, and watch several at once.
4
+
5
+ - An **environment** is where a session runs: accepted harnesses, repositories, machine size, image.
6
+ - A **secret** is an environment variable a session's machine receives.
7
+ - A **session** is a conversation with an agent on one harness: `claude-code`, `codex` or `cursor` (or `standards`, the built-in agent).
8
+ - A **machine** runs a session's turns. A **link** is a URL a machine publishes (a dev server, a preview).
9
+ - A **decision** is a question an agent parks on until someone answers it.
10
+
11
+ `<env>` is an environment id or its name. A name two environments share is refused with both ids: pass the id.
12
+
13
+ ## 1. Environments
14
+
15
+ ```bash
16
+ standards environments list
17
+ standards environments get <env>
18
+ standards environments harnesses # each harness and its models
19
+ standards environments create --name ci --harness claude-code,codex \
20
+ --repo acme/api --repo acme/web --size default --max-size large --image code
21
+ standards environments create --name docs --harness standards --image documents
22
+ standards environments update <env> --size large # same flags as create
23
+ standards environments build <env>
24
+ standards environments archive <env> --yes
25
+ ```
26
+
27
+ - `--harness standards` accepts the built-in agent only.
28
+ - Sizes: `small`, `default`, `large`. Images: `code`, `documents`.
29
+ - A shared environment needs `--visibility workspace --confirm-shared`; the default is private.
30
+
31
+ ## 2. Secrets
32
+
33
+ The value is read from **stdin only**: never pass it as an argument, never type it at a prompt.
34
+
35
+ ```bash
36
+ printf %s "$ANTHROPIC_API_KEY" | standards secrets set ANTHROPIC_API_KEY --environments all
37
+ printf %s "$OPENAI_API_KEY" | standards secrets set OPENAI_API_KEY --environments ci,staging
38
+ printf %s "$TOKEN" | standards secrets set GITHUB_TOKEN --private # only your sessions
39
+ printf %s "$TOKEN" | standards secrets set NPM_TOKEN --env ci --repository acme/web
40
+ printf %s "info" | standards secrets set LOG_LEVEL --plain --environments all # not sensitive
41
+ standards secrets list [--private | --env <env>] # never prints a value
42
+ standards secrets delete NPM_TOKEN --env ci --repository acme/web --yes
43
+ ```
44
+
45
+ - Workspace scope is the default. A **new** workspace secret reaches only the environments `--environments` names (`all`, or a list); without it, it reaches none, and the CLI says so. An **existing** key keeps its environments.
46
+ - `--private`: yours alone, every environment. `--env <env>`: one environment, optionally one `--repository`.
47
+ - Harness keys: `ANTHROPIC_API_KEY` or `CLAUDE_CODE_OAUTH_TOKEN` (claude-code), `OPENAI_API_KEY` (codex), `CURSOR_API_KEY` (cursor).
48
+ - A TTY stdin is refused. Run the command with a pipe.
49
+ - Logins (password + TOTP) are set in the app, not here.
50
+
51
+ ## 3. Sessions
52
+
53
+ ```bash
54
+ standards sessions start "Fix the failing test in api/" --harness claude-code --env ci \
55
+ [--model opus] [--size large] [--name fix-tests]
56
+ standards sessions start "<task>" --harness codex --detach # prints { id, url }, returns at once
57
+ standards sessions send <id> "Now open a pull request"
58
+ standards sessions follow <id> # follow the running or next turn
59
+ standards sessions list [--running] [--q <text>] [--limit 20]
60
+ standards sessions get <id> # { session, phase, lastReply, waiting, machine, links, decisions }
61
+ standards sessions messages <id> --last 5
62
+ standards sessions cancel <id>
63
+ standards sessions archive <id>
64
+ ```
65
+
66
+ `start`, `send` and `follow` stream the turn and exit when it ends:
67
+
68
+ | Exit | Meaning | Next |
69
+ |---|---|---|
70
+ | 0 | Turn completed. | Read the reply; `send` the next message. |
71
+ | 1 | Turn failed, or `cancelled`. | `sessions get <id>`; `send` to retry. |
72
+ | 1 | `The session stream did not open after 10 attempts` (the API was unreachable for about 40 s; the turn may still run). | `sessions follow <id>`. Never `send`. |
73
+ | 3 | The agent parked on a decision; it is printed. | Answer it (§4), then `sessions follow <id>`. |
74
+
75
+ - Human output: the reply text, `→ tool <name>` per tool call, `↺ retrying step` when a step restarts (drop the text before it).
76
+ - `--format json`: NDJSON, `{"type":"text","text":…}`, `{"type":"tool","name":…}`, `{"type":"reset"}`, `{"type":"end","outcome":…}` (with `"phase":"parked"` when it parks), then one `{"type":"decision","decision":…}` per decision waiting.
77
+ - The session id and its app URL go to stderr before the turn streams.
78
+ - `follow` on an idle session with nothing waiting returns at once: 0 if its last turn completed, 1 otherwise.
79
+ - A stream that drops reconnects by itself; following is never a reason to resend.
80
+ - If `start` prints `Session created, message not sent`, run the `sessions send` command it names. Never `start` again.
81
+ - `--detach` sends and returns. Follow later with `sessions follow <id>`.
82
+
83
+ ## 4. Decisions
84
+
85
+ ```bash
86
+ standards decisions list [--all] # open by default; options numbered from 1
87
+ standards decisions show <id> # title, why, change, questions, links
88
+ standards decisions answer <id> …
89
+ ```
90
+
91
+ Answer by the decision's kind:
92
+
93
+ | Kind | Answer |
94
+ |---|---|
95
+ | approval | `answer <id> yes` / `answer <id> no --reason "too risky"` |
96
+ | question | one answer per question, in order: an option number (`2`), an option label (`sqlite`), `1,3` for a multi-select, or free text; `--skip` to skip them all |
97
+ | review | `answer <id> yes` / `answer <id> changes --feedback "tighten the tests"` |
98
+ | agent setup | set what it asks for, then `answer <id> continue` (or `skip`) |
99
+ | bundle setup | `answer <id> configure` |
100
+ | anything else | answered in the app: the CLI prints its URL |
101
+
102
+ - Quote a free-text answer: `answer <id> "Use Postgres 17"`.
103
+ - **A secret is never an answer.** For a setup decision, `decisions show <id>` prints the exact `printf %s "$VALUE" | standards secrets set <KEY> …` command per missing variable. Run it, then `answer <id> continue`.
104
+ - A decision no longer open is refused by the server; `decisions list` again.
105
+
106
+ ## 5. Machines and links
107
+
108
+ ```bash
109
+ standards machines list [--env <env>]
110
+ standards machines get <id> # machine, lease, pilot, links
111
+ standards machines runs <id>
112
+ standards machines destroy <id> --yes
113
+ standards links open <linkId> # prints one URL
114
+ standards links relaunch <linkId> # rerun the link's command, waking the machine
115
+ standards links extend <linkId> --for 2h # 30m, 2h, 1d; at most 1d
116
+ ```
117
+
118
+ - Find a session's links with `sessions get <id>` (`links`).
119
+ - The URL `links open` prints carries a **single-use token valid 60 seconds**: it is a bearer credential. Open it right away. Never paste it into a message, a file, a log or a decision.
120
+
121
+ ## 6. Monitoring
122
+
123
+ ```bash
124
+ standards status # sessions running or parked, open decisions, running machines + links
125
+ standards --format json status # one object { sessions, decisions, machines }
126
+ standards watch [--interval 10s] # one line per change, until interrupted
127
+ standards watch --until decision # exits 3 once a decision is open, one open at start included
128
+ ```
129
+
130
+ - `watch` prints the current state as `snapshot` lines, then only transitions: `session <id> running→idle`, `session <id> → parked`, `session <id> failed`, `decision <id> opened "<title>"`, `decision <id> answered`, `link <slug> published <url>`, `machine <id> stopped`.
131
+ - `--interval` is at least `2s`. A failed poll prints `poll failed: <message>` and retries; 5 in a row exit 1.
132
+ - To wait for one session, use `sessions follow <id>`, not `watch`.
133
+ - Run `watch` in the background (a Monitor or a background shell) and react to its lines; do not poll `status` in a loop.
134
+
135
+ ## 7. The loop end to end
136
+
137
+ ```bash
138
+ printf %s "$ANTHROPIC_API_KEY" | standards secrets set ANTHROPIC_API_KEY --environments all
139
+ standards environments create --name api --harness claude-code --repo acme/api
140
+ standards sessions start "Upgrade the ORM and fix what breaks" --harness claude-code --env api
141
+ # exit 3 → a decision waits
142
+ standards decisions show <decisionId>
143
+ standards decisions answer <decisionId> 1
144
+ standards sessions follow <sessionId>
145
+ # exit 0 → done
146
+ standards sessions get <sessionId> # lastReply, links
147
+ ```
148
+
149
+ ## 8. Several sessions in parallel
150
+
151
+ ```bash
152
+ for task in "Fix issue 101" "Fix issue 102" "Fix issue 103"; do
153
+ standards sessions start "$task" --harness claude-code --env api --detach
154
+ done # each prints { id, url }
155
+ standards watch --until decision # in the background; exits 3 when one asks
156
+ standards decisions list
157
+ standards decisions answer <id> …
158
+ standards watch --until decision # start watching again
159
+ standards status # where everything stands
160
+ ```
161
+
162
+ Keep the session ids the `--detach` runs print; `sessions list --running` finds them again.
package/guide/core.md ADDED
@@ -0,0 +1,88 @@
1
+ # standards: core
2
+
3
+ The `standards` CLI drives a Standards workspace over its HTTP API. Every output is plain text or JSON. This guide matches the installed version; `standards guide --list` lists the other topics.
4
+
5
+ ## Connect
6
+
7
+ ```bash
8
+ npm i -g @standards/cli # or: npx @standards/cli <command>
9
+ standards login # a person at a terminal: browser login to hosted Standards
10
+ standards login --url https://<host>/v1 --name prod --key "$STANDARDS_API_KEY"
11
+ standards use prod # select a saved instance
12
+ standards instances # list saved instances
13
+ standards whoami # profile, API URL, key prefix; checks the key with one call
14
+ standards logout [name] # forget an instance (the current one by default)
15
+ ```
16
+
17
+ - Without `--key`, `login` opens the browser, stores a personal key and a profile named after the workspace. That key mirrors the person minus key management: it lists and revokes only itself, and cannot create or detach keys. Without a terminal it exits 2: an agent uses `STANDARDS_API_KEY` or `--key`.
18
+ - With `--key`, `login` checks the key before saving it. Either way it selects the new instance.
19
+ - `logout` revokes a browser-login key on the server before forgetting the profile; a `--key` key is only forgotten.
20
+ - Profiles live in `~/.standards/config.json` (`STANDARDS_CONFIG_DIR` moves it).
21
+ - Resolution: `--api-url`/`--api-key` → `--instance <name>` → the current instance → `STANDARDS_API_URL`/`STANDARDS_API_KEY`.
22
+ - `login, use, instances, logout, help, init, guide` need no key. Every other command exits 2 when no instance is configured.
23
+
24
+ ## Global flags
25
+
26
+ Put them before the command: `standards --format table records list contacts`.
27
+
28
+ | Flag | Meaning |
29
+ |---|---|
30
+ | `--format json\|table\|csv` | Data commands default to `json` (pretty-printed). `table` truncates cells at 50 chars. |
31
+ | `--instance <name>` | Use a saved instance for this call only. |
32
+ | `--api-url <url>`, `--api-key <key>` | Bypass the saved profiles. |
33
+ | `--tenant <id>` | Multi-tenant setups; defaults to the primary tenant. |
34
+
35
+ Streaming commands (`sessions start|send|follow`, `watch`) and `status` write human text while `--format` is left at its default. Pass `--format json` explicitly to get NDJSON (streams) or one JSON object (`status`).
36
+
37
+ ## Exit codes
38
+
39
+ | Code | Meaning |
40
+ |---|---|
41
+ | 0 | Success. |
42
+ | 1 | Refused or failed. The reason is on stderr as `✗ Error: <message>` (`✗ Error (<status>): …` for an HTTP refusal). |
43
+ | 2 | Not configured: no instance or key. Also `login` without a terminal and without `--key`. |
44
+ | 3 | Streaming commands and `watch --until decision` only: a decision is waiting. Run `standards decisions list`. |
45
+
46
+ One exception: `standards schema diff` exits 0 when equal, 1 when there are differences, 2 on error.
47
+
48
+ ## Output tips
49
+
50
+ - Pipe JSON into `jq`: `standards records list contacts | jq '.data[].id'`.
51
+ - Collections are `{ data, page: { hasMore, total, countMode } }`. For a row table, select `.data` first.
52
+ - Single-quote JSON arguments: `--data '{"email":"a@b.com"}'`.
53
+ - Destructive commands refuse without `--yes`. Preview first with `--dry-run` where it exists.
54
+ - Never put a secret in argv. Pipe it: `printf %s "$VALUE" | standards secrets set KEY`.
55
+
56
+ ## Command groups
57
+
58
+ | Group | What it does | Guide |
59
+ |---|---|---|
60
+ | `records` | CRUD, search, export, move, sharing of records | `records` |
61
+ | `documents` | documents and their file packs | `records` |
62
+ | `files` | upload, list, download and delete uploaded files | `records` |
63
+ | `meetings` | read meetings and their transcripts | `records` |
64
+ | `schema` | inspect objects; `pull` and `diff` deployed source vs runtime | `schema-and-bundles` |
65
+ | `bundles` | sync, add and update bundles | `schema-and-bundles` |
66
+ | `skills` | pull, push, search, add workspace skills | `schema-and-bundles` |
67
+ | `mcp` | remote MCP servers mounted into agents | `schema-and-bundles` |
68
+ | `connectors` | mail and calendar connections | `schema-and-bundles` |
69
+ | `keys` | API keys: `list`, `create --name n [--role r] [--workspace] --yes`, `detach <id> --yes`, `revoke <id> --yes`. A browser-login profile only lists and revokes its own key. | |
70
+ | `invitations` | `list`, `create --email e --role <roleId> --yes`, `resend <id>`, `revoke <id> --yes`. A browser-login profile only lists and revokes its own key. | |
71
+ | `usage` | AI usage, wallet and quotas: `usage [--from <day>] [--to <day>] [--scope me\|workspace]` (current UTC month by default) | |
72
+ | `environments`, `secrets`, `machines`, `links` | where agents run and what they hold | `agents` |
73
+ | `sessions`, `decisions` | run agents and answer them | `agents` |
74
+ | `status`, `watch` | monitor sessions, decisions, machines | `agents` |
75
+ | `init`, `guide` | install the skill stub; print this guide | |
76
+
77
+ `usage` prints `{ usage, wallet, quotas }`. A part you may not read is `null`, with its reason on stderr; the command still exits 0 while one part succeeds.
78
+
79
+ `standards <group> --help` lists a group's commands and flags.
80
+
81
+ ## The agent loop
82
+
83
+ 1. `printf %s "$KEY" | standards secrets set ANTHROPIC_API_KEY --environments all` (once).
84
+ 2. `standards sessions start "<task>" --harness claude-code` streams the turn.
85
+ 3. Exit 0: done. Read the reply, or `standards sessions send <id> "<next>"`.
86
+ 4. Exit 3: `standards decisions list`, then `standards decisions answer <id> …`.
87
+ 5. `standards sessions follow <id>` resumes following after an answer.
88
+ 6. Details and every flag: `standards guide agents`.
@@ -0,0 +1,100 @@
1
+ # standards: records, documents, meetings
2
+
3
+ Record data of the workspace's objects. Find object names with `standards schema list`.
4
+
5
+ ## Read
6
+
7
+ ```bash
8
+ standards records list contacts --limit 20 --offset 0 --sort created_at:desc \
9
+ --filter '{"and":[{"attribute":"status","operator":"eq","value":"active"}]}'
10
+ standards records list contacts --fields company,owner # hydrate only these references
11
+ standards records list contacts --fields "" # hydrate no reference
12
+ standards records list contacts --count exact # ask for page.total
13
+ standards records search contacts --query "alice" --limit 10
14
+ standards records get contacts <id>
15
+ standards records export contacts --columns name,email,company -o contacts.csv
16
+ ```
17
+
18
+ - `list` and `search` return `{ data, page: { hasMore, total, countMode } }`. Paging is offset only.
19
+ - `--sort` takes one `attribute:asc|desc` rule.
20
+ - `--filter` is the full filter state JSON. Single-quote it.
21
+ - `--count none|estimated|exact`: totals are opt-in; without it `page.total` is `null`. An unknown mode is refused.
22
+ - `export` writes CSV to stdout (or `-o <file>`): `--columns` in order, optional `--query`, `--filter`, `--sort`, `--timezone` (defaults to this machine's).
23
+
24
+ ## Write
25
+
26
+ ```bash
27
+ standards records create contacts --data '{"firstname":"Alice","email":"a@example.com"}'
28
+ standards records create pages --data '{"title":"Child"}' --parent <parentId> # hierarchical objects
29
+ standards records create contacts --data '{"firstname":"Alice"}' --metadata '{"brevoId":"42"}'
30
+ standards records update contacts <id> --data '{"firstname":"Alicia"}'
31
+ standards records set-logo companies <id> acme.com
32
+ standards records attach-document contacts <id> --file ./contract.pdf [--attribute <attr>] [--title <t>]
33
+ standards records attach-file contacts <id> --file-id <fileId> [--attribute <attr>] [--document-id <docId>] [--title <t>]
34
+ ```
35
+
36
+ - `--metadata` is a JSON object of application state beside the values, set at creation. Filter on it with `metadata.<key>` (dotted for nested keys) and `is`, `is_not`, `is_empty`, `is_not_empty`.
37
+ - `attach-file` attaches a file already uploaded with `files upload`; `--document-id` appends it to that pack instead of creating one.
38
+
39
+ ## Delete and move: preview first
40
+
41
+ ```bash
42
+ standards records delete contacts <id1> <id2> --dry-run # broken links and descendants, deletes nothing
43
+ standards records delete contacts <id1> <id2> # one id: delete; several: bulk delete
44
+ standards records move pages <id> --parent <newParentId> --dry-run # who gains and loses access
45
+ standards records move pages <id> --parent <newParentId>
46
+ standards records move pages <id> --top-level
47
+ ```
48
+
49
+ - `move` needs exactly one of `--parent` or `--top-level`. It moves the subtree; the children take the new root's visibility, owner and grants.
50
+ - `move` does not ask. Run it with `--dry-run` first.
51
+
52
+ ## Share a private record
53
+
54
+ ```bash
55
+ standards records access list contacts <id>
56
+ standards records access grant contacts <id> <actorId> --role reader|editor
57
+ standards records access revoke contacts <id> <actorId>
58
+ standards records access clear contacts <id> # remove every manual share
59
+ ```
60
+
61
+ ## Documents
62
+
63
+ A document lives on a record's document attribute and holds a pack of files.
64
+
65
+ ```bash
66
+ standards documents list --limit 20
67
+ standards documents get <docId>
68
+ standards documents create --title "Q1 report" --object contacts --record <id> --attribute files
69
+ standards documents update <docId> --title "Q1 report (final)"
70
+ standards documents delete <docId>
71
+ standards documents files <docId> # the pack, in position order
72
+ standards documents add-file <docId> --file-id <fileId>
73
+ standards documents remove-file <docId> <fileId>
74
+ standards documents content <docId> # aggregated OCR text
75
+ standards documents preview <docId>
76
+ ```
77
+
78
+ To upload a local file, use `records attach-document`.
79
+
80
+ ## Files
81
+
82
+ ```bash
83
+ standards files upload ./a.pdf ./b.png # private; prints the stored files and their ids
84
+ standards files list --limit 20 [--folder <path>] [--mime-type application/pdf]
85
+ standards files list --ids <id1>,<id2> # exactly those you can see, in that order
86
+ standards files get <fileId>
87
+ standards files content <fileId> -o ./a.pdf # the bytes (stdout without -o)
88
+ standards files delete <fileId> --yes # your own loose files only; a pack member is a 409
89
+ ```
90
+
91
+ ## Meetings (read only)
92
+
93
+ ```bash
94
+ standards meetings list --search kickoff --since 2026-08-01T00:00:00Z --order asc --limit 20
95
+ standards meetings get <meetingId>
96
+ standards meetings for-record <recordId> --email-attributes email,work_email [--count exact]
97
+ standards meetings transcript <meetingId>
98
+ ```
99
+
100
+ `for-record` returns nothing until at least one email attribute is named.
@@ -0,0 +1,94 @@
1
+ # standards: schema, bundles, skills, MCP, connectors
2
+
3
+ ## Schema (read only)
4
+
5
+ ```bash
6
+ standards schema list # every object
7
+ standards schema inspect contacts # attributes, types, views (name or id)
8
+ standards schema groups # bundles that own objects, with their label
9
+ standards schema pull # deployed source vs shared runtime, as reconciliation guidance
10
+ standards schema diff # the differences, one per line
11
+ ```
12
+
13
+ - `pull` and `diff` read what is deployed, not unbuilt local TypeScript.
14
+ - `--format json` makes `pull` print the canonical shared state and `diff` the canonical differences.
15
+ - `schema diff` exits 0 when equal, 1 when there are differences, 2 on error (the CLI's one exception to its exit codes).
16
+ - The CLI never changes schema directly. Change the project's bundles and sync them.
17
+
18
+ ## Bundles
19
+
20
+ A bundle declares objects, views, pages and agents.
21
+
22
+ ```bash
23
+ standards bundles sync [--cwd ./apps/crm] # discover standards/bundles/*.ts, order by `uses`, sync each
24
+ standards bundles list # installed: name, mode, origin, short hash, installedAt
25
+ standards bundles status # current, update or repair, and what depends on each
26
+ standards bundles available --locale fr # bundles the workspace may add as copies it owns
27
+ ```
28
+
29
+ Add and update in two steps: plan with `--dry-run`, then apply with the plan's `fingerprint`.
30
+
31
+ ```bash
32
+ standards bundles add crm --with-samples --dry-run # plan: new and colliding pieces + fingerprint
33
+ standards bundles add crm --with-samples --fingerprint <fp> \
34
+ --decision <pieceId>=bind --decision <pieceId>=rename:opportunities --decision <pieceId>=skip
35
+ standards bundles update crm --dry-run # pieces by group + fingerprint
36
+ standards bundles update crm --fingerprint <fp> --take deals --skip-missing notes --decision companies=bind
37
+ standards bundles remove <name> --yes
38
+ ```
39
+
40
+ - Without `--dry-run`, `--fingerprint` is required. Pass the same names and flags as the plan.
41
+ - The server refuses a stale fingerprint: the workspace changed since the plan. Plan again.
42
+ - `--decision` settles one collision: `bind`, `skip` or `rename:<name>`.
43
+ - `update` keeps a piece you changed unless `--take` names it, restores a missing piece unless `--skip-missing` names it, and never removes a piece.
44
+ - `remove` demotes a synced bundle's objects to workspace-owned and deletes nothing. An added bundle is uninstalled from the app's Bundles window.
45
+ - `sync` prints `<name> applied|unchanged <hash7>` per bundle. A 409 names the owner of the conflicting piece.
46
+
47
+ ## Skills
48
+
49
+ Workspace skills are Agent Skills folders (`SKILL.md` and its files).
50
+
51
+ ```bash
52
+ standards skills pull ./skills [--name onboarding] # write each skill as <dir>/<name>/
53
+ standards skills push ./skills [--replace] # import folders, all or nothing
54
+ standards skills search "invoice follow-up" # the official catalogue
55
+ standards skills search "invoice follow-up" --community # skills.sh
56
+ standards skills search --community [--trending] # skills.sh leaderboard, no query
57
+ standards skills add acme/skills@invoice-followup --dry-run # what the source would install
58
+ standards skills add acme/skills@invoice-followup[#ref]
59
+ standards skills update invoice-followup [--discard-changes]
60
+ standards skills refresh # check private catalogue skills against their sources
61
+ ```
62
+
63
+ - A search without a query needs `--community`.
64
+ - A result's `state` is `available`, `installed`, `name_taken` or `unavailable` (see `reason`).
65
+ - `push` skips hidden entries and symbolic links and reports each one.
66
+
67
+ ## MCP servers
68
+
69
+ Remote MCP servers whose tools are mounted into the workspace's agents.
70
+
71
+ ```bash
72
+ standards mcp list
73
+ standards mcp catalog
74
+ standards mcp connect --slug context7 --name Context7 --url https://mcp.context7.com/mcp \
75
+ [--catalog-entry context7] [--visibility workspace|private] \
76
+ [--auth-type header --header-name X-API-KEY --secret "$TOKEN"]
77
+ standards mcp refresh <id> # re-discover tools
78
+ standards mcp rename <id> "New name" # the slug and tool prefix never change
79
+ standards mcp trust <id> [--revoke] # run its tools without per-call approval
80
+ standards mcp disconnect <id> --yes
81
+ ```
82
+
83
+ ## Connectors
84
+
85
+ Mail and calendar connections. The account itself is connected from the app (Connectors in the sidebar), never from the terminal.
86
+
87
+ ```bash
88
+ standards connectors providers # providers this deployment can connect
89
+ standards connectors list [--scope tenant|actor]
90
+ standards connectors connect --provider gmail [--capabilities modify,send] [--yes] # checks, then points to the app
91
+ standards connectors disconnect <id> --yes [--remove-imported]
92
+ ```
93
+
94
+ `disconnect` keeps what the connection imported unless `--remove-imported` is passed.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@standards/cli",
3
- "version": "1.0.0-alpha.418",
3
+ "version": "1.0.0-alpha.421",
4
4
  "description": "CLI tool to interact with Standards API",
5
5
  "type": "module",
6
6
  "bin": {
@@ -16,6 +16,7 @@
16
16
  "types": "./dist/index.d.mts",
17
17
  "files": [
18
18
  "dist",
19
+ "guide",
19
20
  "LICENSE",
20
21
  "README.md"
21
22
  ],
@@ -23,12 +24,14 @@
23
24
  "node": ">=22"
24
25
  },
25
26
  "dependencies": {
26
- "@standards/client": "1.0.0-alpha.418",
27
- "@standards/constants": "1.0.0-alpha.418",
28
- "@standards/schema": "1.0.0-alpha.418",
27
+ "@standards/client": "1.0.0-alpha.421",
28
+ "@standards/constants": "1.0.0-alpha.421",
29
+ "@standards/schema": "1.0.0-alpha.421",
29
30
  "cli-table3": "^0.6.5",
30
31
  "commander": "^13.1.0",
31
- "jiti": "2.7.0"
32
+ "jiti": "2.7.0",
33
+ "oauth4webapi": "3.8.8",
34
+ "open": "11.0.4"
32
35
  },
33
36
  "devDependencies": {
34
37
  "@types/node": "^25.6.0",