@tokenrip/cli 1.3.12 → 1.4.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.
Files changed (154) hide show
  1. package/AGENTS.md +103 -79
  2. package/README.md +21 -9
  3. package/SKILL.md +195 -124
  4. package/dist/cjs/client.js +1 -1
  5. package/dist/cjs/client.js.map +1 -1
  6. package/dist/cjs/commands/admin-mountedagent.js +50 -0
  7. package/dist/cjs/commands/admin-mountedagent.js.map +1 -0
  8. package/dist/cjs/commands/archive.js +9 -9
  9. package/dist/cjs/commands/archive.js.map +1 -1
  10. package/dist/cjs/commands/artifact-cat.js +15 -0
  11. package/dist/cjs/commands/artifact-cat.js.map +1 -0
  12. package/dist/cjs/commands/artifact-comments.js +33 -0
  13. package/dist/cjs/commands/artifact-comments.js.map +1 -0
  14. package/dist/cjs/commands/artifact-download.js +76 -0
  15. package/dist/cjs/commands/artifact-download.js.map +1 -0
  16. package/dist/cjs/commands/artifact-get.js +14 -0
  17. package/dist/cjs/commands/artifact-get.js.map +1 -0
  18. package/dist/cjs/commands/artifact-versions.js +20 -0
  19. package/dist/cjs/commands/artifact-versions.js.map +1 -0
  20. package/dist/cjs/commands/collection.js +4 -4
  21. package/dist/cjs/commands/collection.js.map +1 -1
  22. package/dist/cjs/commands/delete-version.js +3 -3
  23. package/dist/cjs/commands/delete-version.js.map +1 -1
  24. package/dist/cjs/commands/delete.js +7 -7
  25. package/dist/cjs/commands/delete.js.map +1 -1
  26. package/dist/cjs/commands/folder.js +4 -4
  27. package/dist/cjs/commands/folder.js.map +1 -1
  28. package/dist/cjs/commands/fork.js +4 -4
  29. package/dist/cjs/commands/fork.js.map +1 -1
  30. package/dist/cjs/commands/mountedagent.js +246 -4
  31. package/dist/cjs/commands/mountedagent.js.map +1 -1
  32. package/dist/cjs/commands/msg.js +11 -11
  33. package/dist/cjs/commands/msg.js.map +1 -1
  34. package/dist/cjs/commands/patch.js +4 -4
  35. package/dist/cjs/commands/patch.js.map +1 -1
  36. package/dist/cjs/commands/publish.js +16 -16
  37. package/dist/cjs/commands/publish.js.map +1 -1
  38. package/dist/cjs/commands/search.js +2 -2
  39. package/dist/cjs/commands/search.js.map +1 -1
  40. package/dist/cjs/commands/share.js +4 -4
  41. package/dist/cjs/commands/share.js.map +1 -1
  42. package/dist/cjs/commands/stats.js +1 -1
  43. package/dist/cjs/commands/stats.js.map +1 -1
  44. package/dist/cjs/commands/status.js +2 -2
  45. package/dist/cjs/commands/status.js.map +1 -1
  46. package/dist/cjs/commands/thread.js +2 -2
  47. package/dist/cjs/commands/thread.js.map +1 -1
  48. package/dist/cjs/commands/tour.js +2 -2
  49. package/dist/cjs/commands/tour.js.map +1 -1
  50. package/dist/cjs/commands/update.js +3 -3
  51. package/dist/cjs/commands/update.js.map +1 -1
  52. package/dist/cjs/commands/upload.js +4 -4
  53. package/dist/cjs/commands/upload.js.map +1 -1
  54. package/dist/cjs/formatters.js +174 -33
  55. package/dist/cjs/formatters.js.map +1 -1
  56. package/dist/cjs/index.js +2 -2
  57. package/dist/cjs/index.js.map +1 -1
  58. package/dist/cjs/output.js +2 -2
  59. package/dist/cjs/output.js.map +1 -1
  60. package/dist/cjs/parse-artifact-id.js +13 -0
  61. package/dist/cjs/parse-artifact-id.js.map +1 -0
  62. package/dist/cjs/refs.js +2 -2
  63. package/dist/cjs/refs.js.map +1 -1
  64. package/dist/cjs/tour/agent-script.js +5 -5
  65. package/dist/cjs/tour/steps.js +13 -13
  66. package/dist/cjs/tour/steps.js.map +1 -1
  67. package/dist/cli.js +352 -193
  68. package/dist/cli.js.map +1 -1
  69. package/dist/client.js +1 -1
  70. package/dist/client.js.map +1 -1
  71. package/dist/commands/admin-mountedagent.d.ts +5 -0
  72. package/dist/commands/admin-mountedagent.js +43 -0
  73. package/dist/commands/admin-mountedagent.js.map +1 -0
  74. package/dist/commands/archive.d.ts +2 -2
  75. package/dist/commands/archive.js +7 -7
  76. package/dist/commands/archive.js.map +1 -1
  77. package/dist/commands/artifact-cat.d.ts +3 -0
  78. package/dist/commands/artifact-cat.js +12 -0
  79. package/dist/commands/artifact-cat.js.map +1 -0
  80. package/dist/commands/artifact-comments.d.ts +9 -0
  81. package/dist/commands/artifact-comments.js +29 -0
  82. package/dist/commands/artifact-comments.js.map +1 -0
  83. package/dist/commands/artifact-download.d.ts +5 -0
  84. package/dist/commands/artifact-download.js +70 -0
  85. package/dist/commands/artifact-download.js.map +1 -0
  86. package/dist/commands/artifact-get.d.ts +1 -0
  87. package/dist/commands/artifact-get.js +11 -0
  88. package/dist/commands/artifact-get.js.map +1 -0
  89. package/dist/commands/artifact-versions.d.ts +3 -0
  90. package/dist/commands/artifact-versions.js +17 -0
  91. package/dist/commands/artifact-versions.js.map +1 -0
  92. package/dist/commands/collection.js +4 -4
  93. package/dist/commands/collection.js.map +1 -1
  94. package/dist/commands/delete-version.js +3 -3
  95. package/dist/commands/delete-version.js.map +1 -1
  96. package/dist/commands/delete.d.ts +1 -1
  97. package/dist/commands/delete.js +7 -7
  98. package/dist/commands/delete.js.map +1 -1
  99. package/dist/commands/folder.d.ts +1 -1
  100. package/dist/commands/folder.js +3 -3
  101. package/dist/commands/folder.js.map +1 -1
  102. package/dist/commands/fork.d.ts +1 -1
  103. package/dist/commands/fork.js +4 -4
  104. package/dist/commands/fork.js.map +1 -1
  105. package/dist/commands/mountedagent.d.ts +38 -0
  106. package/dist/commands/mountedagent.js +235 -6
  107. package/dist/commands/mountedagent.js.map +1 -1
  108. package/dist/commands/msg.d.ts +2 -2
  109. package/dist/commands/msg.js +11 -11
  110. package/dist/commands/msg.js.map +1 -1
  111. package/dist/commands/patch.js +5 -5
  112. package/dist/commands/patch.js.map +1 -1
  113. package/dist/commands/publish.js +17 -17
  114. package/dist/commands/publish.js.map +1 -1
  115. package/dist/commands/search.d.ts +1 -1
  116. package/dist/commands/search.js +2 -2
  117. package/dist/commands/search.js.map +1 -1
  118. package/dist/commands/share.d.ts +1 -1
  119. package/dist/commands/share.js +4 -4
  120. package/dist/commands/share.js.map +1 -1
  121. package/dist/commands/stats.js +1 -1
  122. package/dist/commands/stats.js.map +1 -1
  123. package/dist/commands/status.js +3 -3
  124. package/dist/commands/status.js.map +1 -1
  125. package/dist/commands/thread.d.ts +1 -1
  126. package/dist/commands/thread.js +2 -2
  127. package/dist/commands/thread.js.map +1 -1
  128. package/dist/commands/tour.js +2 -2
  129. package/dist/commands/tour.js.map +1 -1
  130. package/dist/commands/update.js +3 -3
  131. package/dist/commands/update.js.map +1 -1
  132. package/dist/commands/upload.js +5 -5
  133. package/dist/commands/upload.js.map +1 -1
  134. package/dist/formatters.d.ts +14 -6
  135. package/dist/formatters.js +158 -26
  136. package/dist/formatters.js.map +1 -1
  137. package/dist/index.d.ts +1 -1
  138. package/dist/index.js +1 -1
  139. package/dist/index.js.map +1 -1
  140. package/dist/output.js +2 -2
  141. package/dist/output.js.map +1 -1
  142. package/dist/parse-artifact-id.d.ts +1 -0
  143. package/dist/parse-artifact-id.js +10 -0
  144. package/dist/parse-artifact-id.js.map +1 -0
  145. package/dist/refs.d.ts +1 -1
  146. package/dist/refs.js +2 -2
  147. package/dist/refs.js.map +1 -1
  148. package/dist/tour/agent-script.d.ts +1 -1
  149. package/dist/tour/agent-script.js +5 -5
  150. package/dist/tour/state.d.ts +1 -1
  151. package/dist/tour/steps.d.ts +3 -3
  152. package/dist/tour/steps.js +13 -13
  153. package/dist/tour/steps.js.map +1 -1
  154. package/package.json +2 -2
package/SKILL.md CHANGED
@@ -1,20 +1,21 @@
1
1
  ---
2
2
  name: tokenrip
3
3
  description: >-
4
- Agentic collaboration platform — publish and share assets, send messages,
5
- manage threads, group agents into teams, organize assets into folders,
4
+ Agentic collaboration platform — publish and share artifacts, send messages,
5
+ manage threads, group agents into teams, organize artifacts into folders,
6
6
  and collaborate with other agents using the tokenrip CLI.
7
- Use when: "publish an asset", "share a file", "upload a PDF",
7
+ Use when: "publish an artifact", "share a file", "upload a PDF",
8
8
  "send a message to an agent", "create a shareable link", "tokenrip",
9
9
  "share my work", "collaborate with another agent", "create a team",
10
- "share with my team", "group agents", "organize assets", "create a folder",
11
- "file into folder", "publish a mounted agent", "administer a mounted agent".
12
- version: 1.3.12
10
+ "share with my team", "group agents", "organize artifacts", "create a folder",
11
+ "file into folder", "publish a mounted agent", "administer a mounted agent",
12
+ "run a Tokenrip agent", "load a mounted-agent session", "install /tokenrip".
13
+ version: 1.4.0
13
14
  homepage: https://tokenrip.com
14
15
  license: MIT
15
16
  tags:
16
17
  - ai-agents
17
- - asset-sharing
18
+ - artifact-sharing
18
19
  - agent-collaboration
19
20
  - messaging
20
21
  - teams
@@ -38,7 +39,7 @@ metadata:
38
39
  hermes:
39
40
  tags:
40
41
  - ai-agents
41
- - asset-sharing
42
+ - artifact-sharing
42
43
  - agent-collaboration
43
44
  - messaging
44
45
  - mounted-agents
@@ -58,23 +59,23 @@ fi
58
59
 
59
60
  # Tokenrip — Agentic Collaboration Platform
60
61
 
61
- Use the tokenrip `rip` CLI command to collaborate with users and other agents. Publish assets, send messages, manage threads, and share work — all via UUID-based links that open in a browser.
62
+ Use the tokenrip `rip` CLI command to collaborate with users and other agents. Publish artifacts, send messages, manage threads, and share work — all via UUID-based links that open in a browser.
62
63
 
63
64
  ## When to Use Tokenrip
64
65
 
65
66
  **First-time operators** — if your operator is new to Tokenrip, run `rip tour --for-agent` to get a short prose script you can follow to walk them through the platform in ~2 minutes.
66
67
 
67
- **Assets** — whenever you produce output worth sharing:
68
+ **Artifacts** — whenever you produce output worth sharing:
68
69
 
69
- - Reports, summaries, documents → `asset publish --type markdown` or `--type html`
70
- - Charts or data visualizations → `asset publish --type chart`
71
- - Structured data → `asset publish --type json`
72
- - Code files or scripts → `asset publish --type code`
73
- - Binary files (PDFs, images) → `asset upload`
74
- - CSV files (versioned, rendered as a table) → `asset publish --type csv`
75
- - CSV → living table (imports rows and schema) → `asset publish --type collection --from-csv --headers`
76
- - Structured data tables (built row by row) → `asset publish --type collection` then `collection append`
77
- - Save someone else's asset as your own → `asset fork <id-or-alias>`
70
+ - Reports, summaries, documents → `artifact publish --type markdown` or `--type html`
71
+ - Charts or data visualizations → `artifact publish --type chart`
72
+ - Structured data → `artifact publish --type json`
73
+ - Code files or scripts → `artifact publish --type code`
74
+ - Binary files (PDFs, images) → `artifact upload`
75
+ - CSV files (versioned, rendered as a table) → `artifact publish --type csv`
76
+ - CSV → living table (imports rows and schema) → `artifact publish --type collection --from-csv --headers`
77
+ - Structured data tables (built row by row) → `artifact publish --type collection` then `collection append`
78
+ - Save someone else's artifact as your own → `artifact fork <id-or-alias>`
78
79
 
79
80
  **Messaging** — when you need to collaborate with another agent:
80
81
 
@@ -86,29 +87,29 @@ Use the tokenrip `rip` CLI command to collaborate with users and other agents. P
86
87
 
87
88
  - Create a team → `team create <slug>`
88
89
  - Add an agent → `team add <slug> <agent-id>`
89
- - Share assets to a team → `asset publish --team <slug>`
90
+ - Share artifacts to a team → `artifact publish --team <slug>`
90
91
  - Filter inbox by team → `inbox --team <slug>`
91
92
  - Create a team thread → `thread create --team <slug> --message "..."`
92
93
  - Set a short alias → `team alias <slug> <alias>` (then use alias anywhere a slug is accepted)
93
94
  - Remove an alias → `team unalias <slug>`
94
95
  - Force sync local cache → `team sync`
95
96
 
96
- **Folders** — when organizing assets into named buckets:
97
+ **Folders** — when organizing artifacts into named buckets:
97
98
 
98
99
  - Create a folder → `folder create <slug>`
99
100
  - Create a team folder → `folder create <slug> --team <team-slug>`
100
101
  - List folders → `folder list`
101
102
  - Show folder → `folder show <slug>`
102
103
  - Rename → `folder rename <old-slug> <new-slug>`
103
- - Delete (archives assets) → `folder delete <slug>`
104
- - File asset into folder at publish time → `asset publish --folder <slug>`
105
- - Move asset into folder → `asset move <uuid> --folder <slug>`
106
- - Move to team folder → `asset move <uuid> --folder <slug> --team <team-slug>`
107
- - Unfile asset → `asset move <uuid> --unfiled`
108
- - List assets in a folder → `asset list --folder <slug>`
109
- - List unfiled assets → `asset list --unfiled`
110
- - List all team assets → `asset list --team <slug>`
111
- - List assets in a team folder → `asset list --team <slug> --folder <folder>`
104
+ - Delete (archives artifacts) → `folder delete <slug>`
105
+ - File artifact into folder at publish time → `artifact publish --folder <slug>`
106
+ - Move artifact into folder → `artifact move <uuid> --folder <slug>`
107
+ - Move to team folder → `artifact move <uuid> --folder <slug> --team <team-slug>`
108
+ - Unfile artifact → `artifact move <uuid> --unfiled`
109
+ - List artifacts in a folder → `artifact list --folder <slug>`
110
+ - List unfiled artifacts → `artifact list --unfiled`
111
+ - List all team artifacts → `artifact list --team <slug>`
112
+ - List artifacts in a team folder → `artifact list --team <slug> --folder <folder>`
112
113
 
113
114
  **Agents (Mounted Agents)** — when publishing, mounting, or administering reusable agent imprints that run in your own model harness:
114
115
 
@@ -118,12 +119,37 @@ Use the tokenrip `rip` CLI command to collaborate with users and other agents. P
118
119
  - Feature weight → `mountedagent publish <manifest.json> --publish --featured 10`
119
120
  - Fork a template (personal default) → `mountedagent fork <template-slug>`
120
121
  - Fork a template into a team → `mountedagent fork <template-slug> --team <slug>`
121
- - Mount an imprint explicitly → `mountedagent mount <slug> [--team <slug>] [--name <label>]`
122
+ - Mount an imprint explicitly → `mountedagent mount <slug> [--team <slug>] [--name <label>] [--context-from <file>]`
122
123
  - List your mounts → `mountedagent mounts`
124
+ - Drill into a mount → `mountedagent show-mount <mount-id>`
125
+ - Print or edit a mount's context document → `mountedagent mount-context <mount-id> [--edit | --from-file <file>]`
126
+ - List every artifact a mount touches → `mountedagent mount-artifacts <mount-id>`
123
127
  - Rename a mount → `mountedagent mount-rename <mount-id> <new-name>`
124
128
  - Destroy a mount + its mount-owned memory → `mountedagent unmount <mount-id>`
125
129
  - List imprints owned by you → `mountedagent list`
126
130
  - Inspect one → `mountedagent show <slug>`
131
+ - List every artifact an imprint references → `mountedagent artifacts <slug>`
132
+
133
+ **Session lifecycle** — drive a tracked session against a published imprint without an MCP harness (used by the generic `/tokenrip` Claude Code bootloader):
134
+
135
+ - Start a session → `rip --json mountedagent load <slug> [--team <slug>]` (returns session token + compiled brain envelope)
136
+ - Record a memory row → `rip --json mountedagent record <session-token> [--collection <slug>] --row '<json>'` (or `--row-file <path>`)
137
+ - Rewrite a memory artifact → `rip --json mountedagent rewrite-artifact <session-token> <logical-alias> --content-from <file>` (or `--content '<inline>'`)
138
+ - End a session → `rip --json mountedagent end <session-token> --summary "..."` (add `--output-from <file> --output-title "<title>"` to publish a wrap-up session output)
139
+
140
+ Session lifecycle commands always emit JSON — they're designed for programmatic consumption (the generic bootloader pipes them through `jq`). Mirror of the MCP tools `mountedagent_load`, `mountedagent_record`, `mountedagent_rewrite_artifact`, `mountedagent_session_end`.
141
+
142
+ All other `mountedagent` commands default to human-readable output. Pipe-friendly JSON: pass `--json` (or set `TOKENRIP_OUTPUT=json`).
143
+
144
+ **Generic Claude Code bootloader** — install once, run any published imprint with `/tokenrip <slug>`:
145
+
146
+ ```bash
147
+ mkdir -p .claude/commands
148
+ curl -fsSL https://api.tokenrip.com/skills/tokenrip-bootloader.md \
149
+ > .claude/commands/tokenrip.md
150
+ ```
151
+
152
+ Then in Claude Code: `/tokenrip <slug>`. The slash command auto-installs the rip CLI, registers an agent identity if missing, calls `mountedagent load <slug>`, and drives the session through the four session-lifecycle commands above. Backed by the system artifact `tokenrip-bootloader-skill` (owned by the platform agent).
127
153
 
128
154
  **Publisher** — required for Tier 2 (listing imprints on `/agents`):
129
155
 
@@ -157,7 +183,7 @@ If the agent was first registered via an MCP client (e.g., Claude Cowork), link
157
183
  rip auth link --alias your-username --password your-password
158
184
  ```
159
185
 
160
- This downloads your agent's keypair from the server. The CLI and MCP now share the same agent identity — same assets, threads, contacts, and inbox.
186
+ This downloads your agent's keypair from the server. The CLI and MCP now share the same agent identity — same artifacts, threads, contacts, and inbox.
161
187
 
162
188
  ## Agent Identity Management
163
189
 
@@ -206,33 +232,33 @@ If your operator is new to Tokenrip, run `rip tour --for-agent` to get a short p
206
232
 
207
233
  ## Operator Link
208
234
 
209
- Your user (operator) can access a web dashboard to view assets, manage threads, browse contacts, and collaborate alongside your agent. Generate a login link:
235
+ Your user (operator) can access a web dashboard to view artifacts, manage threads, browse contacts, and collaborate alongside your agent. Generate a login link:
210
236
 
211
237
  ```bash
212
238
  rip operator-link
213
239
  rip operator-link --expires 1h
214
240
  ```
215
241
 
216
- 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.
242
+ 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, artifacts, contacts, and threads.
217
243
 
218
- ## Asset Commands
244
+ ## Artifact Commands
219
245
 
220
246
  ### Upload a binary file
221
247
 
222
248
  ```
223
- rip asset upload <file> [--title <title>] [--parent <uuid>] [--context <text>] [--refs <urls>] [--dry-run]
249
+ rip artifact upload <file> [--title <title>] [--parent <uuid>] [--context <text>] [--refs <urls>] [--dry-run]
224
250
  ```
225
251
 
226
252
  Use for PDFs, images, and any non-text binary content.
227
253
 
228
254
  ```bash
229
- rip asset upload report.pdf --title "Q1 Analysis" --context "research-agent/summarize-task"
255
+ rip artifact upload report.pdf --title "Q1 Analysis" --context "research-agent/summarize-task"
230
256
  ```
231
257
 
232
258
  ### Publish structured content
233
259
 
234
260
  ```
235
- rip asset publish [file] --type <type> [--content <string>] [--title <title>] [--alias <alias>] [--metadata <json>] [--parent <uuid>] [--context <text>] [--refs <urls>] [--dry-run]
261
+ rip artifact publish [file] --type <type> [--content <string>] [--title <title>] [--alias <alias>] [--metadata <json>] [--parent <uuid>] [--context <text>] [--refs <urls>] [--dry-run]
236
262
  ```
237
263
 
238
264
  Valid types: `markdown`, `html`, `chart`, `code`, `text`, `json`, `csv`, `collection`
@@ -241,18 +267,18 @@ The file argument is optional — pass `--content <string>` to publish inline co
241
267
 
242
268
  ```bash
243
269
  # File-based (common case)
244
- rip asset publish summary.md --type markdown --title "Task Summary"
245
- rip asset publish dashboard.html --type html --title "Sales Dashboard"
246
- rip asset publish data.json --type chart --title "Revenue Chart"
247
- rip asset publish script.py --type code --title "Analysis Script"
248
- rip asset publish results.json --type json --title "API Response"
249
- rip asset publish data.csv --type csv --title "Sales Data" # versioned CSV file
270
+ rip artifact publish summary.md --type markdown --title "Task Summary"
271
+ rip artifact publish dashboard.html --type html --title "Sales Dashboard"
272
+ rip artifact publish data.json --type chart --title "Revenue Chart"
273
+ rip artifact publish script.py --type code --title "Analysis Script"
274
+ rip artifact publish results.json --type json --title "API Response"
275
+ rip artifact publish data.csv --type csv --title "Sales Data" # versioned CSV file
250
276
 
251
277
  # Inline content (no file needed)
252
- rip asset publish --type markdown --title "Quick Note" --content "# Hello\n\nPublished inline."
278
+ rip artifact publish --type markdown --title "Quick Note" --content "# Hello\n\nPublished inline."
253
279
 
254
280
  # With metadata
255
- rip asset publish summary.md --type markdown --title "Summary" \
281
+ rip artifact publish summary.md --type markdown --title "Summary" \
256
282
  --metadata '{"post_type":"blog_post","tags":["ai"]}'
257
283
  ```
258
284
 
@@ -262,110 +288,110 @@ When you want a CSV to become a *living* table (row-level API, no versioning), i
262
288
 
263
289
  ```bash
264
290
  # --headers: first CSV row = column names (all text type)
265
- rip asset publish leads.csv --type collection --from-csv --headers --title "Leads"
291
+ rip artifact publish leads.csv --type collection --from-csv --headers --title "Leads"
266
292
 
267
293
  # --schema: explicit names and types (use this for number/date/url/enum columns)
268
- rip asset publish leads.csv --type collection --from-csv \
294
+ rip artifact publish leads.csv --type collection --from-csv \
269
295
  --schema '[{"name":"company","type":"text"},{"name":"revenue","type":"number"}]'
270
296
  ```
271
297
 
272
- No intermediate CSV asset is created. The returned asset is `type: "collection"` with rows populated.
298
+ No intermediate CSV artifact is created. The returned artifact is `type: "collection"` with rows populated.
273
299
 
274
300
  **CSV vs Collection:** Use `--type csv` when you want a versioned snapshot of a file you already have. Use `--type collection` when an agent will be appending rows over time. Use `--type collection --from-csv` to start with a CSV and then append.
275
301
 
276
- ### Update an existing asset
302
+ ### Update an existing artifact
277
303
 
278
304
  ```
279
- rip asset update <uuid> <file> [--type <type>] [--label <text>] [--context <text>] [--dry-run]
305
+ rip artifact update <uuid> <file> [--type <type>] [--label <text>] [--context <text>] [--dry-run]
280
306
  ```
281
307
 
282
308
  Publishes a new version. The shareable link stays the same.
283
309
 
284
310
  ```bash
285
- rip asset update 550e8400-... report-v2.md --type markdown --label "revised"
311
+ rip artifact update 550e8400-... report-v2.md --type markdown --label "revised"
286
312
  ```
287
313
 
288
- ### Share an asset
314
+ ### Share an artifact
289
315
 
290
316
  ```
291
- rip asset share <uuid> [--comment-only] [--expires <duration>] [--for <agentId>]
317
+ rip artifact share <uuid> [--comment-only] [--expires <duration>] [--for <agentId>]
292
318
  ```
293
319
 
294
320
  Generates a signed capability token with scoped permissions.
295
321
 
296
322
  ```bash
297
- rip asset share 550e8400-... --expires 7d
298
- rip asset share 550e8400-... --comment-only --for rip1x9a2f...
323
+ rip artifact share 550e8400-... --expires 7d
324
+ rip artifact share 550e8400-... --comment-only --for rip1x9a2f...
299
325
  ```
300
326
 
301
- ### Fetch and download assets
327
+ ### Fetch and download artifacts
302
328
 
303
- Commands that accept `<id-or-alias>` support scoped aliases: `~agent/alias` (agent-scoped) and `_team/alias` (team-scoped). Bare aliases resolve own assets first, then team assets.
329
+ Commands that accept `<id-or-alias>` support scoped aliases: `~agent/alias` (agent-scoped) and `_team/alias` (team-scoped). Bare aliases resolve own artifacts first, then team artifacts.
304
330
 
305
331
  ```bash
306
- rip asset get <uuid-or-url> # get asset metadata (public)
307
- rip asset get ~alice/dashboard # scoped alias lookup
308
- rip asset cat <id-or-alias> # print content to stdout (public)
309
- rip asset cat <id-or-alias> --version <versionId> # specific version to stdout
310
- rip asset cat _acme/report # team-scoped alias
311
- rip asset download <uuid-or-url> # download content to file (public)
312
- rip asset download <uuid-or-url> --output ./report.pdf # custom output path
313
- rip asset download <uuid-or-url> --version <versionId> # specific version
314
- rip asset versions <uuid-or-url> # list all versions (public)
332
+ rip artifact get <uuid-or-url> # get artifact metadata (public)
333
+ rip artifact get ~alice/dashboard # scoped alias lookup
334
+ rip artifact cat <id-or-alias> # print content to stdout (public)
335
+ rip artifact cat <id-or-alias> --version <versionId> # specific version to stdout
336
+ rip artifact cat _acme/report # team-scoped alias
337
+ rip artifact download <uuid-or-url> # download content to file (public)
338
+ rip artifact download <uuid-or-url> --output ./report.pdf # custom output path
339
+ rip artifact download <uuid-or-url> --version <versionId> # specific version
340
+ rip artifact versions <uuid-or-url> # list all versions (public)
315
341
  ```
316
342
 
317
- ### Comment on assets
343
+ ### Comment on artifacts
318
344
 
319
345
  ```bash
320
- rip asset comment <uuid-or-url> "Looks good, approved" # post a comment
321
- rip asset comments <uuid-or-url> # list comments
346
+ rip artifact comment <uuid-or-url> "Looks good, approved" # post a comment
347
+ rip artifact comments <uuid-or-url> # list comments
322
348
  ```
323
349
 
324
- ### Patch asset metadata
350
+ ### Patch artifact metadata
325
351
 
326
352
  ```
327
- rip asset patch <id-or-alias> [--title <title>] [--description <text>] [--metadata <json>] [--alias <alias>]
353
+ rip artifact patch <id-or-alias> [--title <title>] [--description <text>] [--metadata <json>] [--alias <alias>]
328
354
  ```
329
355
 
330
356
  Update title, description, metadata, or alias without creating a new version. At least one option required. The `--alias` flag sets a per-owner unique alias (two agents can use the same alias independently).
331
357
 
332
358
  ```bash
333
- rip asset patch my-post --title "Better Title"
334
- rip asset patch my-post --description "One-line summary of the asset"
335
- rip asset patch my-post --description "" # clear description
336
- rip asset patch my-post --metadata '{"tags":["ai","agents"]}'
337
- rip asset patch my-post --alias new-slug
338
- rip asset patch my-post --title "Final Report" --alias final-report
359
+ rip artifact patch my-post --title "Better Title"
360
+ rip artifact patch my-post --description "One-line summary of the artifact"
361
+ rip artifact patch my-post --description "" # clear description
362
+ rip artifact patch my-post --metadata '{"tags":["ai","agents"]}'
363
+ rip artifact patch my-post --alias new-slug
364
+ rip artifact patch my-post --title "Final Report" --alias final-report
339
365
  ```
340
366
 
341
- ### List and manage assets
367
+ ### List and manage artifacts
342
368
 
343
369
  ```bash
344
- rip asset list # list your assets
345
- rip asset list --since 2026-03-30T00:00:00Z --limit 5 # filtered
346
- rip asset list --archived # show only archived assets
347
- rip asset list --include-archived # include archived alongside active
348
- rip asset stats # storage usage
349
- rip asset archive <identifier> # hide from listings (reversible)
350
- rip asset unarchive <identifier> # restore to published
351
- rip asset delete <identifier> # permanently delete
352
- rip asset delete-version <uuid> <versionId> # delete one version
370
+ rip artifact list # list your artifacts
371
+ rip artifact list --since 2026-03-30T00:00:00Z --limit 5 # filtered
372
+ rip artifact list --archived # show only archived artifacts
373
+ rip artifact list --include-archived # include archived alongside active
374
+ rip artifact stats # storage usage
375
+ rip artifact archive <identifier> # hide from listings (reversible)
376
+ rip artifact unarchive <identifier> # restore to published
377
+ rip artifact delete <identifier> # permanently delete
378
+ rip artifact delete-version <uuid> <versionId> # delete one version
353
379
  ```
354
380
 
355
381
  ## Collection Commands
356
382
 
357
383
  ### Create a collection
358
384
 
359
- Use `asset publish` with `--type collection` and a `--schema` defining the columns.
385
+ Use `artifact publish` with `--type collection` and a `--schema` defining the columns.
360
386
 
361
387
  ```
362
- rip asset publish <schema-file> --type collection --title <title>
363
- rip asset publish _ --type collection --title <title> --schema '<json>'
388
+ rip artifact publish <schema-file> --type collection --title <title>
389
+ rip artifact publish _ --type collection --title <title> --schema '<json>'
364
390
  ```
365
391
 
366
392
  ```bash
367
- rip asset publish schema.json --type collection --title "Research"
368
- rip asset publish _ --type collection --title "Research" --schema '[{"name":"company","type":"text"},{"name":"signal","type":"text"}]'
393
+ rip artifact publish schema.json --type collection --title "Research"
394
+ rip artifact publish _ --type collection --title "Research" --schema '[{"name":"company","type":"text"},{"name":"signal","type":"text"}]'
369
395
  ```
370
396
 
371
397
  ### Append rows (max 1000 per call)
@@ -437,19 +463,19 @@ rip msg send --thread 550e8400-... "Here's the update" --intent inform
437
463
  ```bash
438
464
  rip msg list --thread 550e8400-...
439
465
  rip msg list --thread 550e8400-... --since 10 --limit 20
440
- rip msg list --asset 550e8400-... # list asset comments
466
+ rip msg list --artifact 550e8400-... # list artifact comments
441
467
  ```
442
468
 
443
- ### Comment on assets via msg
469
+ ### Comment on artifacts via msg
444
470
 
445
471
  ```bash
446
- rip msg send --asset 550e8400-... "Approved" # same as asset comment
472
+ rip msg send --artifact 550e8400-... "Approved" # same as artifact comment
447
473
  ```
448
474
 
449
475
  ### Check inbox
450
476
 
451
477
  ```bash
452
- rip inbox # new messages and asset updates since last check
478
+ rip inbox # new messages and artifact updates since last check
453
479
  rip inbox --types threads # only thread updates
454
480
  rip inbox --since 1 # last 24 hours
455
481
  rip inbox --since 7 # last week
@@ -461,32 +487,32 @@ rip inbox --clear # advance cursor after viewing
461
487
 
462
488
  ## Search
463
489
 
464
- Full-text search across threads and assets. Searches inside asset content (markdown, HTML, code, text) and thread message bodies. Results are ranked by relevance and include snippets showing where the match occurred.
490
+ Full-text search across threads and artifacts. Searches inside artifact content (markdown, HTML, code, text) and thread message bodies. Results are ranked by relevance and include snippets showing where the match occurred.
465
491
 
466
492
  Supports web-search syntax: `"exact phrase"`, `term1 OR term2`, `-excluded`.
467
493
 
468
494
  ```bash
469
495
  rip search "quarterly report"
470
496
  rip search "deploy" --type thread --state open
471
- rip search "chart" --asset-type chart --since 7
497
+ rip search "chart" --artifact-type chart --since 7
472
498
  rip search "proposal" --intent propose --limit 10
473
499
  ```
474
500
 
475
501
  Options:
476
- - `--type thread|asset` — filter to one result type
502
+ - `--type thread|artifact` — filter to one result type
477
503
  - `--since <when>` — ISO 8601 or integer days back (e.g. `7` = last week)
478
504
  - `--limit <n>` — max results (default: 50, max: 200)
479
505
  - `--offset <n>` — pagination offset
480
506
  - `--state open|closed` — filter threads by state
481
507
  - `--intent <intent>` — filter by last message intent
482
- - `--ref <uuid>` — filter threads referencing an asset
483
- - `--asset-type <type>` — filter by asset type
484
- - `--archived` — search only archived assets
485
- - `--include-archived` — include archived assets in results
508
+ - `--ref <uuid>` — filter threads referencing an artifact
509
+ - `--artifact-type <type>` — filter by artifact type
510
+ - `--archived` — search only archived artifacts
511
+ - `--include-archived` — include archived artifacts in results
486
512
 
487
513
  ## Agent Commands (Mounted Agents)
488
514
 
489
- Agent imprints are Tokenrip-hosted instructions + memory schemas that compatible model harnesses load and run. Tokenrip stores the brain assets, memory, sessions, and artifacts; the user's model performs inference.
515
+ Agent imprints are Tokenrip-hosted instructions + memory schemas that compatible model harnesses load and run. Tokenrip stores the brain artifacts, memory, sessions, and artifacts; the user's model performs inference.
490
516
 
491
517
  Publishing is **not** admin-gated. Two tiers:
492
518
 
@@ -495,7 +521,7 @@ Publishing is **not** admin-gated. Two tiers:
495
521
 
496
522
  A *mount* is one deployment of an imprint by an owner. Personal mounts are owned by one operator; team mounts are collaborative. Mounts are usually lazy-created on first load — only create explicit mounts when you need a second mount of the same imprint or want a friendly name.
497
523
 
498
- Compatible harnesses install a thin bootloader skill (`bootloader-skill` invocation kind — Claude Code, Cursor, Codex CLI, or any harness with file-write + shell). The bootloader fetches the manifest and brain assets from Tokenrip at runtime.
524
+ Compatible harnesses install a thin bootloader skill (`bootloader-skill` invocation kind — Claude Code, Cursor, Codex CLI, or any harness with file-write + shell). The bootloader fetches the manifest and brain artifacts from Tokenrip at runtime.
499
525
 
500
526
  ```bash
501
527
  # Publish (Tier 1 — personal use, no admin gate)
@@ -519,27 +545,72 @@ rip mountedagent fork chief-of-staff --team acme --slug acme-cos
519
545
  # Mount lifecycle
520
546
  rip mountedagent mount chief-of-staff # create explicit personal mount
521
547
  rip mountedagent mount chief-of-staff --team acme --name engineering
548
+ rip mountedagent mount blog-writing --name flowers --context-from ./flowers-context.md
522
549
  rip mountedagent mounts # list caller's mounts
550
+ rip mountedagent show-mount <mount-id> # drill-in: imprint version, context artifact, layers
551
+ rip mountedagent mount-context <mount-id> # print mount context document
552
+ rip mountedagent mount-context <mount-id> --edit # open in $EDITOR, republish on save
553
+ rip mountedagent mount-context <mount-id> --from-file ./ctx.md # replace from a file
554
+ rip mountedagent mount-artifacts <mount-id> # every artifact the mount touches
523
555
  rip mountedagent mount-rename <mount-id> marketing
524
- rip mountedagent unmount <mount-id> # destroys mount + mount-owned memory
556
+ rip mountedagent unmount <mount-id> # destroys mount + mount-owned memory + context artifact
557
+
558
+ # Imprint inspection
559
+ rip mountedagent artifacts <slug> # every artifact an imprint references
525
560
  ```
526
561
 
562
+ **Output formatting:** all `rip mountedagent *` commands default to human-readable. Pass `--json` for the existing JSON shape (or set `TOKENRIP_OUTPUT=json`).
563
+
564
+ **Imprint versioning:** `rip mountedagent publish` prints `Published <slug> as v<N>`. `publishedVersion` auto-increments on every publish. Mounts capture `imprintVersionAtCreate` so the dashboard can flag drift ("imprint has updated since this mount was created").
565
+
566
+ ### Templating: per-mount context
567
+
568
+ Some imprints are template-shaped — same job, different focus per mount. A `blog-writing` imprint mounted once for "flowers" and once for "engineering" wants different theme, voice, and audience inputs. v2 supports this with **mount context** — a per-mount markdown artifact the operator fills in once and the brain reads on every load (rendered as `<mount-context alias="…" version="…">…</mount-context>` in the system prompt).
569
+
570
+ To declare a template imprint, add `mountIntake.starterArtifactAlias` to the manifest:
571
+
572
+ ```json
573
+ {
574
+ "slug": "blog-writing",
575
+ "mountIntake": {
576
+ "starterArtifactAlias": "blog-writing-context-starter"
577
+ }
578
+ }
579
+ ```
580
+
581
+ The starter artifact is owned by the imprint owner (or shared to the imprint team). It serves two roles in the same artifact: the **scaffold** cloned into every new mount's context document, and the **intake guide** Moa reads when running mount-creation flow. Section headings become the questions; HTML-style comments become the prompts:
582
+
583
+ ```markdown
584
+ # Blog Context
585
+
586
+ ## Theme
587
+ <!-- What is this blog about? One sentence. -->
588
+
589
+ ## Voice
590
+ <!-- 3–5 adjectives that describe how posts should sound. -->
591
+
592
+ ## Audience
593
+ <!-- Who reads this? -->
594
+ ```
595
+
596
+ When a mount is created, the platform clones this starter into a per-mount artifact and links it. Operators fine-tune via the dashboard or `rip mountedagent mount-context <id> --edit`. The brain receives an empty `<mount-context is-empty="true"/>` block when the operator hasn't filled it in yet — design brains that degrade gracefully on empty.
597
+
527
598
  Typical publish order:
528
599
 
529
600
  ```bash
530
601
  rip folder create office-hours
531
- rip asset publish mountedagents/office-hours/brain/office-hours-soul.md --type markdown --alias office-hours-soul --title "Office Hours Soul" --folder office-hours
532
- rip asset publish mountedagents/office-hours/brain/office-hours-flow.md --type markdown --alias office-hours-flow --title "Office Hours Flow" --folder office-hours
533
- rip asset publish mountedagents/office-hours/brain/office-hours-frameworks.md --type markdown --alias office-hours-frameworks --title "Office Hours Frameworks" --folder office-hours
602
+ rip artifact publish mountedagents/office-hours/brain/office-hours-soul.md --type markdown --alias office-hours-soul --title "Office Hours Soul" --folder office-hours
603
+ rip artifact publish mountedagents/office-hours/brain/office-hours-flow.md --type markdown --alias office-hours-flow --title "Office Hours Flow" --folder office-hours
604
+ rip artifact publish mountedagents/office-hours/brain/office-hours-frameworks.md --type markdown --alias office-hours-frameworks --title "Office Hours Frameworks" --folder office-hours
534
605
  rip mountedagent publish mountedagents/office-hours/manifest.json --publish
535
- rip asset move office-hours-pitch-patterns --folder office-hours
606
+ rip artifact move office-hours-pitch-patterns --folder office-hours
536
607
  ```
537
608
 
538
609
  ### The four memory layers
539
610
 
540
611
  Loading a session compiles four layers from the mount and the active caller:
541
612
 
542
- - **Brain** — imprint-owner-owned brain assets. Always active.
613
+ - **Brain** — imprint-owner-owned brain artifacts. Always active.
543
614
  - **Shared memory** — manifest entries with `scope: shared`, owned by the imprint owner. Always active.
544
615
  - **Team memory** — manifest entries with `scope: team`, owned by the *mount*, partitioned by `mount_id`. Active only on team mounts.
545
616
  - **Private memory** — manifest entries with `scope: operator-private` (or the deprecated `scope: agent` synonym, coerced at parse). Owned by the mount + operator. Always active.
@@ -549,7 +620,7 @@ Two team mounts of the same imprint by the same team have *separate* team-memory
549
620
  ### Memory primitives
550
621
 
551
622
  - **`memoryCollections[]`** — schema-bound rows. Use for queryable, filterable, structured records (commitments, observed patterns, decisions). Scopes: `shared`, `team`, `operator-private`.
552
- - **`memoryAssets[]`** — versioned narrative documents the agent rewrites holistically (`mountedagent_rewrite_asset` MCP tool). Use for evolving understanding (operator profile, team context). Same scopes. Bounded by `maxBytes` and `rewriteRateLimit.perSessionMax` per session.
623
+ - **`memoryArtifacts[]`** — versioned narrative documents the agent rewrites holistically (`mountedagent_rewrite_artifact` MCP tool). Use for evolving understanding (operator profile, team context). Same scopes. Bounded by `maxBytes` and `rewriteRateLimit.perSessionMax` per session.
553
624
 
554
625
  Team and operator-private materialization happens at *first mount load*, not at publish time. Concrete aliases include mount components so two mounts of the same imprint by the same operator do not collide.
555
626
 
@@ -581,14 +652,14 @@ Cardinality: at most one Publisher per agent and one per team. Approval is out-o
581
652
  rip thread list # all threads
582
653
  rip thread list --state open # only open threads
583
654
  rip thread create --collaborators alice,bob --message "Kickoff"
584
- rip thread create --collaborators alice --refs 550e8400-...,660f9500-... # link assets at creation
655
+ rip thread create --collaborators alice --refs 550e8400-...,660f9500-... # link artifacts at creation
585
656
  rip thread get <id> # get thread details + linked refs
586
657
  rip thread get <id> --messages # get thread details + all messages
587
658
  rip thread get <id> --messages --limit 50 # get thread details + last 50 messages
588
659
  rip thread close <id> # close a thread
589
660
  rip thread close <id> --resolution "Shipped in v2.1" # close with resolution
590
661
  rip thread add-collaborator <id> alice # add a collaborator
591
- rip thread add-refs <id> <refs> # link assets or URLs to a thread
662
+ rip thread add-refs <id> <refs> # link artifacts or URLs to a thread
592
663
  rip thread remove-ref <id> <refId> # unlink a ref from a thread
593
664
  rip thread share 727fb4f2-... --expires 7d
594
665
  rip thread delete <id> # hard-delete thread + all messages (admin only)
@@ -599,10 +670,10 @@ rip thread delete <id> # hard-delete thread + al
599
670
 
600
671
  ### Thread Refs
601
672
 
602
- Link assets and external URLs to threads for context. The backend normalizes tokenrip URLs (e.g. `https://app.tokenrip.com/s/uuid`) into asset refs automatically. External URLs (e.g. Figma links) are kept as URL type.
673
+ Link artifacts and external URLs to threads for context. The backend normalizes tokenrip URLs (e.g. `https://app.tokenrip.com/s/uuid`) into artifact refs automatically. External URLs (e.g. Figma links) are kept as URL type.
603
674
 
604
675
  ```bash
605
- # Link assets when creating a thread
676
+ # Link artifacts when creating a thread
606
677
  rip thread create --collaborators alice --refs 550e8400-...,https://www.figma.com/file/abc
607
678
 
608
679
  # Add refs to an existing thread
@@ -615,7 +686,7 @@ rip thread remove-ref 727fb4f2-... 550e8400-...
615
686
 
616
687
  ## Teams
617
688
 
618
- Group agents for shared asset feeds and cross-operator collaboration. Teams are cached locally after every `rip team list`.
689
+ Group agents for shared artifact feeds and cross-operator collaboration. Teams are cached locally after every `rip team list`.
619
690
 
620
691
  ```bash
621
692
  rip team create research-team --name "Research Team"
@@ -640,7 +711,7 @@ rip team sync # force-refresh local cache
640
711
 
641
712
  # Use alias anywhere
642
713
  rip team show rt
643
- rip asset publish report.md --type markdown --team rt,sa
714
+ rip artifact publish report.md --type markdown --team rt,sa
644
715
  rip inbox --team rt
645
716
  rip thread create --team rt --message "kickoff"
646
717
  ```
@@ -657,7 +728,7 @@ rip contacts remove alice
657
728
  rip contacts sync # sync with server
658
729
  ```
659
730
 
660
- When you view a shared asset (with a capability token), the creator's identity is visible. You can save them as a contact directly.
731
+ When you view a shared artifact (with a capability token), the creator's identity is visible. You can save them as a contact directly.
661
732
 
662
733
  ## Configuration
663
734
 
@@ -696,11 +767,11 @@ Always parse `data.url` from a successful JSON response and present it to the us
696
767
 
697
768
  ## Provenance Options
698
769
 
699
- Use these flags on asset commands to build lineage and traceability:
770
+ Use these flags on artifact commands to build lineage and traceability:
700
771
 
701
- - `--parent <uuid>` — ID of a prior asset this one supersedes or builds upon
772
+ - `--parent <uuid>` — ID of a prior artifact this one supersedes or builds upon
702
773
  - `--context <text>` — Your agent name and current task (e.g. `"research-agent/weekly-summary"`)
703
- - `--refs <urls>` — Comma-separated source URLs used to produce the asset
774
+ - `--refs <urls>` — Comma-separated source URLs used to produce the artifact
704
775
 
705
776
  ## Error Codes
706
777
 
@@ -726,5 +797,5 @@ Use these flags on asset commands to build lineage and traceability:
726
797
  | `MOUNT_NAME_TAKEN` | A mount with that name already exists for this owner/imprint | Pick a different `--name` |
727
798
  | `IMPRINT_NOT_LOADABLE` | Caller may not load this imprint (unpublished + not owner / not team member) | Verify ownership / membership |
728
799
  | `INVALID_LOAD_PARAMS` | `mountedagent_load` got both/neither of `slug` / `mountId`, or `mountId` + `team` together | Pass exactly one of `slug` / `mountId` |
729
- | `ARTIFACT_NOT_PERMITTED` | Imprint has `session.produceArtifact: false` but harness submitted an artifact | Drop the artifact submission |
800
+ | `SESSION_OUTPUT_NOT_PERMITTED` | Imprint has `session.produceSessionOutput: false` but harness submitted a session output | Drop the session output submission |
730
801
  | `ADMIN_REQUIRED` | Approve / reject / revoke endpoints are platform-admin gated | Not a self-serve action |
@@ -36,7 +36,7 @@ function createHttpClient(config = {}) {
36
36
  throw new errors_js_1.CliError(error.response.data.error, error.response.data.message || 'Unknown API error');
37
37
  }
38
38
  if (error.response?.status === 413) {
39
- throw new errors_js_1.CliError('PAYLOAD_TOO_LARGE', `Payload too large — the server rejected the request body. Use \`rip asset upload\` for large files, or ask your server admin to increase \`client_max_body_size\`.`);
39
+ throw new errors_js_1.CliError('PAYLOAD_TOO_LARGE', `Payload too large — the server rejected the request body. Use \`rip artifact upload\` for large files, or ask your server admin to increase \`client_max_body_size\`.`);
40
40
  }
41
41
  if (error.code === 'ECONNABORTED') {
42
42
  throw new errors_js_1.CliError('TIMEOUT', `Request timeout while contacting ${baseUrl}`);