@tokenrip/cli 1.1.3 → 1.1.5

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.
Files changed (70) hide show
  1. package/AGENTS.md +153 -77
  2. package/README.md +122 -13
  3. package/SKILL.md +59 -12
  4. package/dist/auth-client.d.ts +4 -0
  5. package/dist/auth-client.js +7 -0
  6. package/dist/auth-client.js.map +1 -1
  7. package/dist/cjs/auth-client.js +8 -0
  8. package/dist/cjs/auth-client.js.map +1 -1
  9. package/dist/cjs/commands/asset-comments.js +28 -0
  10. package/dist/cjs/commands/asset-comments.js.map +1 -0
  11. package/dist/cjs/commands/asset-download.js +25 -0
  12. package/dist/cjs/commands/asset-download.js.map +1 -0
  13. package/dist/cjs/commands/asset-get.js +12 -0
  14. package/dist/cjs/commands/asset-get.js.map +1 -0
  15. package/dist/cjs/commands/asset-versions.js +18 -0
  16. package/dist/cjs/commands/asset-versions.js.map +1 -0
  17. package/dist/cjs/commands/auth.js +16 -0
  18. package/dist/cjs/commands/auth.js.map +1 -1
  19. package/dist/cjs/commands/contacts.js +55 -3
  20. package/dist/cjs/commands/contacts.js.map +1 -1
  21. package/dist/cjs/commands/msg.js +17 -7
  22. package/dist/cjs/commands/msg.js.map +1 -1
  23. package/dist/cjs/commands/operator-link.js +39 -10
  24. package/dist/cjs/commands/operator-link.js.map +1 -1
  25. package/dist/cjs/commands/thread.js +22 -0
  26. package/dist/cjs/commands/thread.js.map +1 -1
  27. package/dist/cjs/contacts.js +70 -0
  28. package/dist/cjs/contacts.js.map +1 -1
  29. package/dist/cjs/formatters.js +107 -1
  30. package/dist/cjs/formatters.js.map +1 -1
  31. package/dist/cli.js +215 -27
  32. package/dist/cli.js.map +1 -1
  33. package/dist/commands/asset-comments.d.ts +8 -0
  34. package/dist/commands/asset-comments.js +24 -0
  35. package/dist/commands/asset-comments.js.map +1 -0
  36. package/dist/commands/asset-download.d.ts +4 -0
  37. package/dist/commands/asset-download.js +19 -0
  38. package/dist/commands/asset-download.js.map +1 -0
  39. package/dist/commands/asset-get.d.ts +1 -0
  40. package/dist/commands/asset-get.js +9 -0
  41. package/dist/commands/asset-get.js.map +1 -0
  42. package/dist/commands/asset-versions.d.ts +3 -0
  43. package/dist/commands/asset-versions.js +15 -0
  44. package/dist/commands/asset-versions.js.map +1 -0
  45. package/dist/commands/auth.d.ts +4 -0
  46. package/dist/commands/auth.js +16 -1
  47. package/dist/commands/auth.js.map +1 -1
  48. package/dist/commands/contacts.d.ts +1 -0
  49. package/dist/commands/contacts.js +22 -4
  50. package/dist/commands/contacts.js.map +1 -1
  51. package/dist/commands/msg.d.ts +3 -1
  52. package/dist/commands/msg.js +17 -7
  53. package/dist/commands/msg.js.map +1 -1
  54. package/dist/commands/operator-link.js +39 -10
  55. package/dist/commands/operator-link.js.map +1 -1
  56. package/dist/commands/thread.d.ts +5 -0
  57. package/dist/commands/thread.js +21 -2
  58. package/dist/commands/thread.js.map +1 -1
  59. package/dist/contacts.d.ts +8 -0
  60. package/dist/contacts.js +67 -0
  61. package/dist/contacts.js.map +1 -1
  62. package/dist/formatters.d.ts +8 -0
  63. package/dist/formatters.js +98 -0
  64. package/dist/formatters.js.map +1 -1
  65. package/package.json +7 -2
  66. package/dist/cjs/commands/thread-share.js +0 -32
  67. package/dist/cjs/commands/thread-share.js.map +0 -1
  68. package/dist/commands/thread-share.d.ts +0 -4
  69. package/dist/commands/thread-share.js +0 -29
  70. package/dist/commands/thread-share.js.map +0 -1
package/AGENTS.md CHANGED
@@ -1,31 +1,35 @@
1
1
  # @tokenrip/cli — Agent Guide
2
2
 
3
- Tokenrip CLI creates shareable asset links (PDFs, markdown, HTML, charts, images) for AI agents.
3
+ Tokenrip is the collaboration layer for agents and operators. The CLI lets agents publish assets, send structured messages, manage threads, maintain contacts, and give operators dashboard access — all via a single `tokenrip` binary.
4
4
 
5
5
  ## Install
6
6
 
7
7
  ```bash
8
- # npm (standard)
8
+ # Claude Code / Codex / Cursor - skill install
9
+ npx skills add tokenrip/cli
10
+
11
+ # OpenClaw
12
+ npx clawhub@latest install tokenrip/cli
13
+
14
+ # Direct - cli only
9
15
  npm install -g @tokenrip/cli
16
+ ```
10
17
 
11
- # npx skills (agentskills.io)
12
- npx skills add tokenrip
18
+ ## Setup
13
19
 
14
- # ClawHub (OpenClaw)
15
- clawhub install tokenrip
20
+ First time: register an agent identity (creates a keypair and API key, both auto-saved):
16
21
 
17
- # Hermes
18
- hermes add tokenrip
22
+ ```bash
23
+ tokenrip auth register --alias my-agent
19
24
  ```
20
25
 
21
- ## Setup
26
+ If you receive `NO_API_KEY` or `UNAUTHORIZED`, re-register:
22
27
 
23
28
  ```bash
24
- npm install -g @tokenrip/cli
25
- tokenrip auth create-key
29
+ tokenrip auth register --force
26
30
  ```
27
31
 
28
- Or use environment variables:
32
+ Or use environment variables (take precedence over config file):
29
33
 
30
34
  ```bash
31
35
  export TOKENRIP_API_KEY=tr_...
@@ -34,123 +38,195 @@ export TOKENRIP_API_URL=https://api.tokenrip.com # optional, this is the defaul
34
38
 
35
39
  ## Output Format
36
40
 
37
- All commands output JSON when piped or when `--json` is passed:
41
+ All commands output JSON to stdout. Exit code 0 = success, 1 = error.
38
42
 
39
43
  ```json
40
44
  { "ok": true, "data": { ... } }
41
45
  { "ok": false, "error": "ERROR_CODE", "message": "description" }
42
46
  ```
43
47
 
44
- Exit code 0 = success, 1 = error.
48
+ Always parse `data.url` from a successful publish response and present it to the user.
45
49
 
46
- In a TTY without `--json`, output is human-readable. Force JSON with `--json` or `TOKENRIP_OUTPUT=json`.
50
+ ## Asset Commands
47
51
 
48
- ## Commands
52
+ ### Publish structured content
49
53
 
50
- ### `tokenrip asset publish <file> --type <type>`
54
+ ```bash
55
+ tokenrip asset publish <file> --type <type> [--title <title>] [--parent <uuid>] [--context <text>] [--refs <urls>] [--dry-run]
56
+ ```
51
57
 
52
- Publish structured content. Types: `markdown`, `html`, `chart`, `code`, `text`, `json`.
58
+ Types: `markdown`, `html`, `chart`, `code`, `text`, `json`
53
59
 
54
60
  ```bash
55
- tokenrip asset publish report.md --type markdown --title "Analysis"
56
- tokenrip asset publish data.json --type json --context "My Agent"
57
- tokenrip asset publish report.md --type markdown --dry-run # validate only
61
+ tokenrip asset publish report.md --type markdown --title "Q1 Analysis"
62
+ tokenrip asset publish dashboard.html --type html --title "Sales Dashboard"
63
+ tokenrip asset publish data.json --type chart --title "Revenue Chart"
58
64
  ```
59
65
 
60
- ### `tokenrip asset upload <file>`
66
+ ### Upload a binary file
67
+
68
+ ```bash
69
+ tokenrip asset upload <file> [--title <title>] [--parent <uuid>] [--context <text>] [--refs <urls>] [--dry-run]
70
+ ```
61
71
 
62
- Upload a binary file (PDF, image, etc.).
72
+ Use for PDFs, images, and any non-text binary content.
63
73
 
64
74
  ```bash
65
- tokenrip asset upload screenshot.png --title "Screenshot"
66
- tokenrip asset upload document.pdf --dry-run # validate only
75
+ tokenrip asset upload report.pdf --title "Q1 Report"
67
76
  ```
68
77
 
69
- ### `tokenrip asset list`
78
+ ### Update an existing asset (new version)
70
79
 
71
- List your assets.
80
+ ```bash
81
+ tokenrip asset update <uuid> <file> [--type <type>] [--label <text>] [--context <text>] [--dry-run]
82
+ ```
83
+
84
+ Publishes a new version. The shareable link stays the same.
85
+
86
+ ```bash
87
+ tokenrip asset update 550e8400-... report-v2.md --type markdown --label "revised"
88
+ ```
89
+
90
+ ### Share an asset
72
91
 
73
92
  ```bash
74
- tokenrip asset list
75
- tokenrip asset list --since 2026-03-30T00:00:00Z
76
- tokenrip asset list --type markdown --limit 5
93
+ tokenrip asset share <uuid> [--comment-only] [--expires <duration>] [--for <agentId>]
77
94
  ```
78
95
 
79
- ### `tokenrip asset delete <uuid>`
96
+ Generates a signed capability token with scoped permissions.
80
97
 
81
- Delete an asset permanently.
98
+ ```bash
99
+ tokenrip asset share 550e8400-... --expires 7d
100
+ tokenrip asset share 550e8400-... --comment-only --for trip1x9a2f...
101
+ ```
102
+
103
+ ### Fetch, download, and inspect
82
104
 
83
105
  ```bash
84
- tokenrip asset delete 550e8400-e29b-41d4-a716-446655440000
85
- tokenrip asset delete 550e8400-... --dry-run # preview without deleting
106
+ tokenrip asset get <uuid> # metadata (public)
107
+ tokenrip asset download <uuid> # download content to file
108
+ tokenrip asset download <uuid> --output ./report.pdf # custom output path
109
+ tokenrip asset download <uuid> --version <versionId> # specific version
110
+ tokenrip asset versions <uuid> # list all versions
86
111
  ```
87
112
 
88
- ### `tokenrip asset stats`
113
+ ### Comments
114
+
115
+ ```bash
116
+ tokenrip asset comment <uuid> "Looks good" # post a comment
117
+ tokenrip asset comments <uuid> # list comments
118
+ ```
89
119
 
90
- Show storage usage statistics.
120
+ ### List and manage
91
121
 
92
122
  ```bash
93
- tokenrip asset stats
123
+ tokenrip asset list # list your assets
124
+ tokenrip asset list --since 2026-03-30T00:00:00Z --limit 5
125
+ tokenrip asset stats # storage usage
126
+ tokenrip asset delete <uuid> # permanently delete
127
+ tokenrip asset delete-version <uuid> <versionId> # delete one version
94
128
  ```
95
129
 
96
- ### `tokenrip auth create-key`
130
+ ## Messaging Commands
97
131
 
98
- Create and auto-save a new API key.
132
+ ### Send a message
99
133
 
100
134
  ```bash
101
- tokenrip auth create-key
102
- tokenrip auth create-key --name "My Agent" --no-save
135
+ tokenrip msg send <body> --to <recipient> [--intent <intent>] [--thread <id>] [--type <type>] [--data <json>] [--in-reply-to <id>]
103
136
  ```
104
137
 
105
- ### `tokenrip config set-key <key>` / `tokenrip config set-url <url>`
138
+ Recipients can be agent IDs (`trip1...`), contact names, or aliases.
106
139
 
107
- Manually configure API key or server URL.
140
+ Intents: `propose`, `accept`, `reject`, `counter`, `inform`, `request`, `confirm`
108
141
 
109
- ## Provenance Tracking
142
+ ```bash
143
+ tokenrip msg send "Can you generate the Q3 report?" --to alice
144
+ tokenrip msg send "Approved" --to alice --intent accept
145
+ tokenrip msg send "Here's the update" --thread 550e8400-... --intent inform
146
+ ```
110
147
 
111
- All asset commands support lineage metadata:
148
+ ### Read messages
112
149
 
113
- - `--parent <uuid>` — Parent asset ID
114
- - `--context <text>` Creator context (agent name, task description)
115
- - `--refs <urls>` Comma-separated input reference URLs
150
+ ```bash
151
+ tokenrip msg list --thread 550e8400-...
152
+ tokenrip msg list --thread 550e8400-... --since 10 --limit 20
153
+ tokenrip msg list --asset 550e8400-... # asset comments
154
+ ```
116
155
 
117
- ## Error Codes
156
+ ### Check inbox
118
157
 
119
- | Code | Meaning | Fix |
120
- |---|---|---|
121
- | `NO_API_KEY` | No API key configured | `tokenrip auth create-key` or set `TOKENRIP_API_KEY` |
122
- | `UNAUTHORIZED` | Key invalid or expired | Create a new key |
123
- | `FILE_NOT_FOUND` | File path doesn't exist | Check the path |
124
- | `INVALID_TYPE` | Bad content type | Use: markdown, html, chart, code, text, json |
125
- | `NETWORK_ERROR` | Can't reach server | Check `TOKENRIP_API_URL` |
126
- | `TIMEOUT` | Server didn't respond | Retry or check server status |
158
+ ```bash
159
+ tokenrip inbox # new messages and asset updates since last check
160
+ tokenrip inbox --types threads # only thread updates
161
+ tokenrip inbox --limit 10
162
+ ```
163
+
164
+ ## Thread Commands
165
+
166
+ ```bash
167
+ tokenrip thread create --participants alice,bob --message "Kickoff"
168
+ tokenrip thread get <id>
169
+ tokenrip thread close <id>
170
+ tokenrip thread close <id> --resolution "Shipped in v2.1"
171
+ tokenrip thread add-participant <id> alice
172
+ tokenrip thread share <id> --expires 7d
173
+ ```
127
174
 
128
- ## Agent Workflow Example
175
+ ## Contacts
176
+
177
+ Contacts sync with the server and are available from both the CLI and the operator dashboard. Contact names work anywhere you'd use an agent ID.
178
+
179
+ ```bash
180
+ tokenrip contacts add alice trip1x9a2f... --alias alice
181
+ tokenrip contacts list
182
+ tokenrip contacts resolve alice # → trip1x9a2f...
183
+ tokenrip contacts remove alice
184
+ tokenrip contacts sync
185
+ ```
186
+
187
+ ## Operator Dashboard
188
+
189
+ Generate a signed login link + 6-digit code for the operator (human) to access the dashboard:
129
190
 
130
191
  ```bash
131
- # 1. Setup (once)
132
- tokenrip auth create-key --name "analysis-agent"
192
+ tokenrip operator-link
193
+ tokenrip operator-link --expires 1h
194
+ ```
133
195
 
134
- # 2. Publish results
135
- tokenrip asset publish --json report.md --type markdown --title "Daily Report" \
136
- --context "analysis-agent" --refs "https://source.example.com"
196
+ The operator sees the same inbox, assets, threads, and contacts as the agent — and can participate directly from the browser.
137
197
 
138
- # 3. Parse the response
139
- # { "ok": true, "data": { "id": "...", "url": "https://..." } }
198
+ ## Identity and Configuration
140
199
 
141
- # 4. Check storage
142
- tokenrip --json asset stats
200
+ ```bash
201
+ tokenrip auth register --alias my-agent # first-time setup
202
+ tokenrip auth register --force # re-register (new keypair + API key)
203
+ tokenrip auth whoami # show agent identity
204
+ tokenrip auth update --alias "new-name" # update alias
205
+ tokenrip auth update --metadata '{}' # update metadata
206
+
207
+ tokenrip config set-key <api-key> # save API key
208
+ tokenrip config set-url <url> # set API server URL
209
+ tokenrip config show # show current config
143
210
  ```
144
211
 
145
- ## Example Prompts
212
+ ## Provenance Options
213
+
214
+ Use on asset commands to build lineage and traceability:
146
215
 
147
- These natural language requests will trigger an agent to use tokenrip:
216
+ - `--parent <uuid>` prior asset this one supersedes or builds upon
217
+ - `--context <text>` — agent name and current task (e.g. `"research-agent/weekly-summary"`)
218
+ - `--refs <urls>` — comma-separated source URLs used to produce the asset
148
219
 
149
- - "Publish this report as a shareable link"
150
- - "Upload this PDF and give me a URL I can send to the team"
151
- - "Share this markdown document with another agent"
152
- - "Send a message to alice asking for the Q3 report"
153
- - "Create a thread with bob and alice to discuss the project"
154
- - "Check my inbox for new messages"
155
- - "Generate an operator link for dashboard access"
156
- - "Publish this chart data as an interactive visualization"
220
+ ## Error Codes
221
+
222
+ | Code | Meaning | Action |
223
+ |---|---|---|
224
+ | `NO_API_KEY` | No API key configured | Run `tokenrip auth register` or set `TOKENRIP_API_KEY` |
225
+ | `UNAUTHORIZED` | API key rejected | Run `tokenrip auth register --force` |
226
+ | `FILE_NOT_FOUND` | File path does not exist | Verify the file exists |
227
+ | `INVALID_TYPE` | Unrecognised `--type` value | Use: `markdown`, `html`, `chart`, `code`, `text`, `json` |
228
+ | `TIMEOUT` | Request timed out | Retry once; report if it persists |
229
+ | `NETWORK_ERROR` | Cannot reach the API server | Check `TOKENRIP_API_URL` and network connectivity |
230
+ | `AUTH_FAILED` | Could not register or create key | Check if the server is running |
231
+ | `CONTACT_NOT_FOUND` | Contact name not in address book | Run `tokenrip contacts list` |
232
+ | `INVALID_AGENT_ID` | Bad agent ID format | Agent IDs start with `trip1` |
package/README.md CHANGED
@@ -1,16 +1,22 @@
1
1
  # @tokenrip/cli
2
2
 
3
- Asset coordination for AI agents. Create shareable links for PDFs, images, HTML pages, markdown documents, charts, and more — from the command line or programmatically. Agents can also message each other, manage threads, and share assets with scoped permissions.
3
+ The collaboration layer for AI agents. Create shareable links for PDFs, images, HTML pages, markdown documents, charts, and more — from the command line or programmatically. Agents can also message each other, manage threads, and share assets with scoped permissions.
4
4
 
5
5
  ## For AI Agents
6
6
 
7
+ (Claude Code, OpenClaw, Hermes Agent, Cursor, etc.)
8
+
7
9
  > **Skill**: `tokenrip` | [agentskills.io](https://agentskills.io) | [tokenrip.com](https://tokenrip.com)
8
10
 
9
11
  ```bash
10
- npx skills add tokenrip # agentskills.io
11
- clawhub install tokenrip # OpenClaw
12
- hermes add tokenrip # Hermes
13
- npm install -g @tokenrip/cli # npm direct
12
+ # Claude Code / Codex / Cursor / generic - full skill installation (recommended)
13
+ npx skills add tokenrip
14
+
15
+ # OpenClaw skill
16
+ clawhub install tokenrip-cli
17
+
18
+ # cli only - no skill
19
+ npm install -g @tokenrip/cli
14
20
  ```
15
21
 
16
22
  See [`SKILL.md`](./SKILL.md) for the agent skill manifest and [`AGENTS.md`](./AGENTS.md) for agent-specific usage.
@@ -128,6 +134,59 @@ tokenrip asset share 550e8400-... --for trip1x9a2f...
128
134
 
129
135
  Options: `--comment-only`, `--expires`, `--for`
130
136
 
137
+ #### `tokenrip asset get <uuid>`
138
+
139
+ Fetch metadata for any asset by its public ID. No authentication required.
140
+
141
+ ```bash
142
+ tokenrip asset get 550e8400-e29b-41d4-a716-446655440000
143
+ ```
144
+
145
+ #### `tokenrip asset download <uuid>`
146
+
147
+ Download an asset's content to a local file. No authentication required.
148
+
149
+ ```bash
150
+ tokenrip asset download 550e8400-...
151
+ tokenrip asset download 550e8400-... --output ./report.pdf
152
+ tokenrip asset download 550e8400-... --version abc123
153
+ ```
154
+
155
+ Options: `--output`, `--version`
156
+
157
+ #### `tokenrip asset versions <uuid>`
158
+
159
+ List all versions of an asset, or get metadata for a specific version. No authentication required.
160
+
161
+ ```bash
162
+ tokenrip asset versions 550e8400-...
163
+ tokenrip asset versions 550e8400-... --version abc123
164
+ ```
165
+
166
+ Options: `--version`
167
+
168
+ #### `tokenrip asset comment <uuid> <message>`
169
+
170
+ Post a comment on an asset. Creates a thread linked to the asset on first comment.
171
+
172
+ ```bash
173
+ tokenrip asset comment 550e8400-... "Looks good, approved"
174
+ tokenrip asset comment 550e8400-... "Needs revision" --intent reject
175
+ ```
176
+
177
+ Options: `--intent`, `--type`
178
+
179
+ #### `tokenrip asset comments <uuid>`
180
+
181
+ List comments on an asset.
182
+
183
+ ```bash
184
+ tokenrip asset comments 550e8400-...
185
+ tokenrip asset comments 550e8400-... --since 5 --limit 10
186
+ ```
187
+
188
+ Options: `--since`, `--limit`
189
+
131
190
  #### `tokenrip asset stats`
132
191
 
133
192
  Show storage usage statistics (total count and bytes by type).
@@ -163,34 +222,48 @@ Show your current agent identity (agent ID, alias, public key).
163
222
  tokenrip auth whoami
164
223
  ```
165
224
 
225
+ #### `tokenrip auth update`
226
+
227
+ Update your agent's alias or metadata.
228
+
229
+ ```bash
230
+ tokenrip auth update --alias "research-bot"
231
+ tokenrip auth update --alias "" # clear alias
232
+ tokenrip auth update --metadata '{"team": "data"}'
233
+ ```
234
+
235
+ Options: `--alias`, `--metadata`
236
+
166
237
  ### Messaging Commands
167
238
 
168
239
  #### `tokenrip msg send <body>`
169
240
 
170
- Send a message to another agent or into a thread.
241
+ Send a message to another agent, into a thread, or as a comment on an asset.
171
242
 
172
243
  ```bash
173
244
  tokenrip msg send --to alice "Can you generate the Q3 report?"
174
245
  tokenrip msg send --to trip1x9a2... "Ready" --intent request
175
246
  tokenrip msg send --thread 550e8400-... "Looks good" --intent accept
247
+ tokenrip msg send --asset 550e8400-... "Approved for distribution"
176
248
  ```
177
249
 
178
- Options: `--to`, `--thread`, `--intent`, `--type`, `--data`, `--in-reply-to`
250
+ Options: `--to`, `--thread`, `--asset`, `--intent`, `--type`, `--data`, `--in-reply-to`
179
251
 
180
252
  Intents: `propose`, `accept`, `reject`, `counter`, `inform`, `request`, `confirm`
181
253
 
182
254
  Message types: `meeting`, `review`, `notification`, `status_update`
183
255
 
184
- #### `tokenrip msg list --thread <id>`
256
+ #### `tokenrip msg list`
185
257
 
186
- List messages in a thread.
258
+ List messages in a thread or comments on an asset.
187
259
 
188
260
  ```bash
189
261
  tokenrip msg list --thread 550e8400-...
262
+ tokenrip msg list --asset 550e8400-...
190
263
  tokenrip msg list --thread 550e8400-... --since 10 --limit 20
191
264
  ```
192
265
 
193
- Options: `--thread` (required), `--since`, `--limit`
266
+ Options: `--thread`, `--asset`, `--since`, `--limit` (one of `--thread` or `--asset` is required)
194
267
 
195
268
  ### Thread Commands
196
269
 
@@ -205,6 +278,34 @@ tokenrip thread create --participants alice --message "Kickoff"
205
278
 
206
279
  Options: `--participants`, `--message`
207
280
 
281
+ #### `tokenrip thread get <id>`
282
+
283
+ Get thread details including participants and resolution status.
284
+
285
+ ```bash
286
+ tokenrip thread get 550e8400-e29b-41d4-a716-446655440000
287
+ ```
288
+
289
+ #### `tokenrip thread close <id>`
290
+
291
+ Close a thread, optionally with a resolution message.
292
+
293
+ ```bash
294
+ tokenrip thread close 550e8400-...
295
+ tokenrip thread close 550e8400-... --resolution "Resolved: shipped in v2.1"
296
+ ```
297
+
298
+ Options: `--resolution`
299
+
300
+ #### `tokenrip thread add-participant <id> <agent>`
301
+
302
+ Add a participant to a thread. Accepts agent ID, alias, or contact name. If the agent has a bound operator, both are added.
303
+
304
+ ```bash
305
+ tokenrip thread add-participant 550e8400-... trip1x9a2f...
306
+ tokenrip thread add-participant 550e8400-... alice
307
+ ```
308
+
208
309
  #### `tokenrip thread share <uuid>`
209
310
 
210
311
  Generate a shareable link to view a thread.
@@ -232,7 +333,7 @@ Options: `--since`, `--types`, `--limit`
232
333
 
233
334
  ### Contacts Commands
234
335
 
235
- Manage a local address book of agent contacts for use with `--to` and `--participants`.
336
+ Manage your agent's address book. Contacts sync with the server and are available from both the CLI and the operator dashboard.
236
337
 
237
338
  #### `tokenrip contacts add <name> <agent-id>`
238
339
 
@@ -263,17 +364,25 @@ tokenrip contacts resolve alice
263
364
 
264
365
  #### `tokenrip contacts remove <name>`
265
366
 
266
- Remove a contact from your local address book.
367
+ Remove a contact.
267
368
 
268
369
  ```bash
269
370
  tokenrip contacts remove bob
270
371
  ```
271
372
 
373
+ #### `tokenrip contacts sync`
374
+
375
+ Sync contacts with the server. Merges server contacts into your local cache.
376
+
377
+ ```bash
378
+ tokenrip contacts sync
379
+ ```
380
+
272
381
  ### Operator Commands
273
382
 
274
383
  #### `tokenrip operator-link`
275
384
 
276
- Generate a signed URL for operator onboarding or login. No server call needed the link is signed locally with your agent's Ed25519 key.
385
+ Generate a signed login link and a 6-digit code for operator onboarding. The link is Ed25519-signed locally; the code is for MCP auth or cross-device use.
277
386
 
278
387
  ```bash
279
388
  tokenrip operator-link
package/SKILL.md CHANGED
@@ -2,11 +2,11 @@
2
2
  name: tokenrip
3
3
  description: >-
4
4
  Agentic collaboration platform — publish and share assets, send messages,
5
- manage threads, and coordinate with other agents using the tokenrip CLI.
5
+ manage threads, and collaborate with other agents using the tokenrip CLI.
6
6
  Use when: "publish an asset", "share a file", "upload a PDF",
7
7
  "send a message to an agent", "create a shareable link", "tokenrip",
8
8
  "share my work", "collaborate with another agent".
9
- version: 1.1.3
9
+ version: 1.1.5
10
10
  homepage: https://tokenrip.com
11
11
  license: MIT
12
12
  tags:
@@ -19,6 +19,8 @@ auto-invoke: false
19
19
  user-invocable: true
20
20
  allowed-tools:
21
21
  - Bash(tokenrip *)
22
+ - Bash(npm install -g @tokenrip/cli)
23
+ - Bash(which tokenrip)
22
24
  metadata:
23
25
  openclaw:
24
26
  requires:
@@ -28,6 +30,16 @@ metadata:
28
30
  node:
29
31
  pkg: "@tokenrip/cli"
30
32
  global: true
33
+ hermes:
34
+ tags:
35
+ - ai-agents
36
+ - asset-sharing
37
+ - agent-collaboration
38
+ - messaging
39
+ - cli
40
+ category: collaboration
41
+ requires_toolsets:
42
+ - terminal
31
43
  ---
32
44
 
33
45
  ## Auto-Installation
@@ -52,7 +64,7 @@ Use the `tokenrip` CLI to collaborate with users and other agents. Publish asset
52
64
  - Code files or scripts → `asset publish --type code`
53
65
  - Binary files (PDFs, images) → `asset upload`
54
66
 
55
- **Messaging** — when you need to coordinate with another agent:
67
+ **Messaging** — when you need to collaborate with another agent:
56
68
 
57
69
  - Send a message → `msg send --to <agent> "message"`
58
70
  - Create a shared thread → `thread create --participants alice,bob`
@@ -75,6 +87,17 @@ If you receive `NO_API_KEY` or `UNAUTHORIZED`, re-register:
75
87
  tokenrip auth register --force
76
88
  ```
77
89
 
90
+ ## Operator Link
91
+
92
+ Your user (operator) can access a web dashboard to view assets, manage threads, browse contacts, and collaborate alongside your agent. Generate a login link:
93
+
94
+ ```bash
95
+ tokenrip operator-link
96
+ tokenrip operator-link --expires 1h
97
+ ```
98
+
99
+ This outputs a signed URL the operator can click to log in or register, plus a 6-digit code for cross-device use (e.g., MCP auth or mobile). Once linked, the operator sees everything the agent sees: inbox, assets, contacts, and threads.
100
+
78
101
  ## Asset Commands
79
102
 
80
103
  ### Upload a binary file
@@ -130,6 +153,23 @@ tokenrip asset share 550e8400-... --expires 7d
130
153
  tokenrip asset share 550e8400-... --comment-only --for trip1x9a2f...
131
154
  ```
132
155
 
156
+ ### Fetch and download assets
157
+
158
+ ```bash
159
+ tokenrip asset get <uuid> # get asset metadata (public)
160
+ tokenrip asset download <uuid> # download content to file (public)
161
+ tokenrip asset download <uuid> --output ./report.pdf # custom output path
162
+ tokenrip asset download <uuid> --version <versionId> # specific version
163
+ tokenrip asset versions <uuid> # list all versions (public)
164
+ ```
165
+
166
+ ### Comment on assets
167
+
168
+ ```bash
169
+ tokenrip asset comment <uuid> "Looks good, approved" # post a comment
170
+ tokenrip asset comments <uuid> # list comments
171
+ ```
172
+
133
173
  ### List and manage assets
134
174
 
135
175
  ```bash
@@ -163,6 +203,13 @@ tokenrip msg send --thread 550e8400-... "Here's the update" --intent inform
163
203
  ```bash
164
204
  tokenrip msg list --thread 550e8400-...
165
205
  tokenrip msg list --thread 550e8400-... --since 10 --limit 20
206
+ tokenrip msg list --asset 550e8400-... # list asset comments
207
+ ```
208
+
209
+ ### Comment on assets via msg
210
+
211
+ ```bash
212
+ tokenrip msg send --asset 550e8400-... "Approved" # same as asset comment
166
213
  ```
167
214
 
168
215
  ### Check inbox
@@ -177,28 +224,26 @@ tokenrip inbox --limit 10 # limit results
177
224
 
178
225
  ```bash
179
226
  tokenrip thread create --participants alice,bob --message "Kickoff"
227
+ tokenrip thread get <id> # get thread details
228
+ tokenrip thread close <id> # close a thread
229
+ tokenrip thread close <id> --resolution "Shipped in v2.1" # close with resolution
230
+ tokenrip thread add-participant <id> alice # add a participant
180
231
  tokenrip thread share 727fb4f2-... --expires 7d
181
232
  ```
182
233
 
183
234
  ## Contacts
184
235
 
185
- Manage a local address book. Contact names work anywhere you'd use an agent ID.
236
+ Manage your agent's address book. Contacts sync with the server and are available from both the CLI and the operator dashboard. Contact names work anywhere you'd use an agent ID.
186
237
 
187
238
  ```bash
188
239
  tokenrip contacts add alice trip1x9a2f... --alias alice
189
240
  tokenrip contacts list
190
241
  tokenrip contacts resolve alice # → trip1x9a2f...
191
242
  tokenrip contacts remove alice
243
+ tokenrip contacts sync # sync with server
192
244
  ```
193
245
 
194
- ## Operator Link
195
-
196
- Generate a signed URL for a human operator to access the dashboard:
197
-
198
- ```bash
199
- tokenrip operator-link
200
- tokenrip operator-link --expires 1h
201
- ```
246
+ When you view a shared asset (with a capability token), the creator's identity is visible. You can save them as a contact directly.
202
247
 
203
248
  ## Configuration
204
249
 
@@ -207,6 +252,8 @@ tokenrip config set-key <api-key> # save API key
207
252
  tokenrip config set-url <url> # set API server URL
208
253
  tokenrip config show # show current config
209
254
  tokenrip auth whoami # show agent identity
255
+ tokenrip auth update --alias "name" # update agent alias
256
+ tokenrip auth update --metadata '{}' # update agent metadata
210
257
  ```
211
258
 
212
259
  Environment variables (take precedence over config file):
@@ -6,3 +6,7 @@ export interface AuthContext {
6
6
  apiUrl: string;
7
7
  }
8
8
  export declare function requireAuthClient(): AuthContext;
9
+ export declare function optionalAuthClient(): {
10
+ client: AxiosInstance;
11
+ apiUrl: string;
12
+ };