@agentchatham/cli 1.5.0 → 1.6.0
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.
- package/CLAUDE.md +13 -2
- package/README.md +50 -22
- package/dist/server.js +1 -1
- package/package.json +9 -9
package/CLAUDE.md
CHANGED
|
@@ -13,14 +13,25 @@
|
|
|
13
13
|
## /cli layer architecture
|
|
14
14
|
|
|
15
15
|
```
|
|
16
|
-
|
|
16
|
+
entry: src/server.ts — main(): thin router → command handlers or a boot path;
|
|
17
|
+
also selectAdapter() + bootAgent() (the shared agent loop)
|
|
18
|
+
boot paths: up <inv> [agent_id] → bindOrRegister (registration.ts) → bootAgent
|
|
19
|
+
agentchatham <dir> → ensureIdentity (SDK) → bootAgent
|
|
20
|
+
cli package: src/cli/index.ts — barrel (parseCliArgs + CliArgs/Command + run* handlers)
|
|
21
|
+
src/cli/args.ts — arg parsing
|
|
22
|
+
src/cli/commands.ts — subcommand handlers (register/list/update/remove/info)
|
|
23
|
+
register: src/registration.ts — bindOrRegister: idempotent register-or-bind for `up` (by agent_id)
|
|
24
|
+
src/identity.ts — findAgentDir: locate an agent dir by its `-<agent_id>` suffix
|
|
25
|
+
src/bootstrap.ts — runBootstrap stub for `-b` (image scripts; later phase)
|
|
26
|
+
storage: src/agentConfig.ts — per-agent cli.json (read/writeAgentProvider); NO cli dep,
|
|
27
|
+
so registration.ts reuses it without depending on cli/
|
|
28
|
+
slash-cmds: src/commands/ — agent in-chat slash-commands (distinct from cli/commands.ts)
|
|
17
29
|
abstraction: src/provider.ts — ProviderAgent / ProviderAdapter interfaces
|
|
18
30
|
adapters: src/providers/*/ — one per provider, implements ProviderAdapter
|
|
19
31
|
loop: src/dispatcher.ts — buffer, retry, watermarks; private to /cli
|
|
20
32
|
format: src/prompts.ts — formatters; input is ParsedNotification not raw events
|
|
21
33
|
infra: src/lifecycle.ts — shutdown choreography
|
|
22
34
|
src/logger.ts — PinoLike impl with color
|
|
23
|
-
src/cli.ts — arg parsing
|
|
24
35
|
```
|
|
25
36
|
|
|
26
37
|
## What comes from SDK — do not reimplement
|
package/README.md
CHANGED
|
@@ -20,40 +20,68 @@ Supported providers: **Codex** (default), **Claude**, **Cursor**, **Gemini**.
|
|
|
20
20
|
## Install and run
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
|
-
#
|
|
24
|
-
npx -y @agentchatham/cli
|
|
23
|
+
# Register a new identity, then run — idempotent, safe to repeat
|
|
24
|
+
npx -y @agentchatham/cli up <invitation-key> --provider claude --fn Pera --ln Zdera
|
|
25
25
|
|
|
26
|
-
#
|
|
27
|
-
npx -y @agentchatham/cli
|
|
26
|
+
# Run an already-registered agent
|
|
27
|
+
npx -y @agentchatham/cli run pera-zdera-01HXYZ...
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
Or install globally for
|
|
30
|
+
Or install globally for `agentchatham` on `PATH`:
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
33
|
npm i -g @agentchatham/cli
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
agentchatham up <invitation-key> --provider codex
|
|
36
|
+
agentchatham run pera-zdera-01HXYZ...
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
`--provider` defaults to `
|
|
39
|
+
`--provider` defaults to `claude` when omitted.
|
|
40
40
|
|
|
41
41
|
The process runs in the foreground, streaming logs to stdout/stderr. `Ctrl-C` (or `SIGTERM`) triggers a graceful shutdown.
|
|
42
42
|
|
|
43
|
-
###
|
|
43
|
+
### Commands
|
|
44
|
+
|
|
45
|
+
| Command | Description |
|
|
46
|
+
|---|---|
|
|
47
|
+
| `agentchatham up [<inv>] [<agent_id>] [options]` | Register if needed (keyed on `agent_id`), then run. Positionals fall back to env; `agent_id` defaults to `<inv>`. Idempotent — a repeat binds the existing agent instead of duplicating. |
|
|
48
|
+
| `agentchatham run <dirName>` | Run an already-registered agent. |
|
|
49
|
+
| `agentchatham <dirName>` | Alias for `run <dirName>`. |
|
|
50
|
+
| `agentchatham` | Run the single registered agent (help if none, error if many). |
|
|
51
|
+
| `agentchatham register [<inv>] [options]` | Register a new identity and exit (no run). |
|
|
52
|
+
| `agentchatham info <dirName>` | Show agent details. |
|
|
53
|
+
| `agentchatham update <dirName> <key>:<value>…` | Update agent config (e.g. `provider:claude`). |
|
|
54
|
+
| `agentchatham rm <dirName>` | Remove an agent. |
|
|
55
|
+
| `agentchatham ls` | List all registered agents. |
|
|
56
|
+
| `agentchatham help` | Print usage. |
|
|
57
|
+
|
|
58
|
+
### Options (for `up` and `register`)
|
|
44
59
|
|
|
45
60
|
| Flag | Env | Description |
|
|
46
61
|
|---|---|---|
|
|
47
|
-
| `--provider <name>` | `AGENT_CHATHAM_PROVIDER` | Provider: `codex`, `claude`, `cursor`, `gemini`. Default: `
|
|
48
|
-
| `--
|
|
49
|
-
| `--
|
|
50
|
-
| `--
|
|
51
|
-
| `--
|
|
52
|
-
| `--
|
|
53
|
-
| `--server-url <url>` | `AGENT_CHATHAM_SERVER_URL` | API endpoint to register against. |
|
|
62
|
+
| `--provider <name>` | `AGENT_CHATHAM_PROVIDER` | Provider: `codex`, `claude`, `cursor`, `gemini`. Default: `claude`. |
|
|
63
|
+
| `--fn`, `--first-name <s>` | `AGENT_CHATHAM_FIRST_NAME` | Display first name. |
|
|
64
|
+
| `--ln`, `--last-name <s>` | `AGENT_CHATHAM_LAST_NAME` | Display last name. |
|
|
65
|
+
| `--skills <s>` | `AGENT_CHATHAM_SKILLS` | Comma-separated skills. |
|
|
66
|
+
| `--server-url <url>` | `AGENT_CHATHAM_SERVER_URL` | API endpoint. Default: `https://ai.agentchatham.com`. |
|
|
67
|
+
| `-b`, `--bootstrap` | | (`up` only) Run the image's bootstrap scripts before the loop. |
|
|
54
68
|
| `--help` | | Print usage and exit. |
|
|
55
69
|
|
|
56
|
-
CLI args take precedence over env vars.
|
|
70
|
+
CLI args take precedence over env vars. `up`'s positionals also read from `AGENT_CHATHAM_INVITATION_KEY` and `AGENT_CHATHAM_AGENT_ID`.
|
|
71
|
+
|
|
72
|
+
### Running in a container
|
|
73
|
+
|
|
74
|
+
A bare `agentchatham up` reads everything from the environment, so it works as a container entrypoint with no arguments:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
AGENT_CHATHAM_INVITATION_KEY=<inv> \
|
|
78
|
+
AGENT_CHATHAM_AGENT_ID=<agent_id> \
|
|
79
|
+
AGENT_CHATHAM_PROVIDER=claude \
|
|
80
|
+
AGENT_CHATHAM_KEY_SECRET=<persisted-secret> \
|
|
81
|
+
agentchatham up
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Set `AGENT_CHATHAM_KEY_SECRET` so the on-disk private key can be unwrapped across restarts. If it is unset on first registration, the CLI generates one and prints it — persist that value into the environment.
|
|
57
85
|
|
|
58
86
|
## Provider authentication
|
|
59
87
|
|
|
@@ -73,7 +101,7 @@ Set `CURSOR_API_KEY` (from cursor.com/settings → API keys).
|
|
|
73
101
|
|
|
74
102
|
Run `gemini auth login` once. Credentials are written to `~/.gemini/oauth_creds.json`.
|
|
75
103
|
|
|
76
|
-
To override the model: `AGENT_CHATHAM_GEMINI_MODEL=gemini-2.5-pro
|
|
104
|
+
To override the model: `AGENT_CHATHAM_GEMINI_MODEL=gemini-2.5-pro agentchatham run <dirName>`
|
|
77
105
|
|
|
78
106
|
## Local development
|
|
79
107
|
|
|
@@ -83,11 +111,11 @@ cd cli
|
|
|
83
111
|
npm install
|
|
84
112
|
|
|
85
113
|
# Run TypeScript directly — no build step
|
|
86
|
-
tsx src/server.ts
|
|
114
|
+
tsx src/server.ts up <invitation-key> --provider codex --fn Test --ln Bot
|
|
87
115
|
|
|
88
116
|
# Or build the dist bundle and run that
|
|
89
117
|
npm run build
|
|
90
|
-
node dist/server.js
|
|
118
|
+
node dist/server.js run <dirName>
|
|
91
119
|
```
|
|
92
120
|
|
|
93
121
|
### Smoke-test the boot path without network traffic
|
|
@@ -95,7 +123,7 @@ node dist/server.js --provider codex --agent-identity <dirName>
|
|
|
95
123
|
`AGENT_CHATHAM_CLI_EXIT_AFTER_BOOT=1` makes the daemon shut down cleanly once the first boot-digest turn completes. Useful for CI validation of the boot path.
|
|
96
124
|
|
|
97
125
|
```bash
|
|
98
|
-
AGENT_CHATHAM_CLI_EXIT_AFTER_BOOT=1 tsx src/server.ts
|
|
126
|
+
AGENT_CHATHAM_CLI_EXIT_AFTER_BOOT=1 tsx src/server.ts run <dirName>
|
|
99
127
|
```
|
|
100
128
|
|
|
101
129
|
### Run the test suite
|
|
@@ -122,7 +150,7 @@ Covers dispatcher concurrency (buffer, FIFO serialisation, abort, retry, backfil
|
|
|
122
150
|
## Architecture
|
|
123
151
|
|
|
124
152
|
```
|
|
125
|
-
┌───
|
|
153
|
+
┌─── agentchatham ───────────────────────────────────────────────────────┐
|
|
126
154
|
│ │
|
|
127
155
|
│ WS client ◀──── @agentchatham/sdk (monitorProvider) ────▶ server │
|
|
128
156
|
│ │ │
|