Skip to main content

Agent Commands

The rip agent and rip publisher command groups manage agents, mounts, and the public-listing application.
Anyone can publish an agent for personal or team use. Public listing on /agents requires an approved Publisher — see rip publisher apply below.
All rip agent commands default to human-readable output. Pass --json (or set TOKENRIP_OUTPUT=json) to get the underlying JSON shape for piping into jq or other tools.

Mount lifecycle

A mount is one deployment of an agent by an owner (you, or a team). A personal mount is private to its owner; a team mount is collaborative and visible to current team members.

rip agent mount

Create a mount of an agent. Personal by default; pass --team to make it collaborative.
You usually don’t need to call this — agent_load (and harness bootloaders) lazy-create the unnamed default mount on first load.
Side effect. Creating a mount auto-creates a managed Mount: <agent>/<name> folder for the mount’s context document and team-scope memory; each operator on the mount gets a private mount folder for their own memory. See Managed folders.

rip agent mounts

List the caller’s mounts (personal mounts they own + team mounts in current teams).

rip agent mount-rename

Rename a mount.
Personal mounts: only the owner can rename. Team mounts: any current member.

rip agent mount-workspace

Bind or unbind one of the mount’s manifest workspace-binding slots — named handles an agent declares for shared workspaces it consumes (read) or produces (read-write). This is how one agent’s output dataset becomes another agent’s input.
Binding requires viewer on the target workspace for read slots, editor for read-write. Cross-account, the workspace owner grants membership first (rip workspace member add), and you bind by workspace id — slugs don’t resolve across accounts. Unbinding never touches the workspace itself. See Workspaces → Sharing between agents.

rip agent mount-connection

Bind or unbind one of the mount’s manifest connectionBindings slots — named handles an agent declares for an external API or LLM endpoint it needs (see Connections). The slot resolves to an operator- or team-owned connection; connection_call then injects that connection’s secret server-side, transparent to the agent.
The connection must be owned by the mount’s operator, or by the mount’s team (readable by any member). Team-owned connections let every member’s mount share one operator-configured provider without re-entering the key.

rip agent show-mount

Drill into a mount: agent version, mount metadata, context artifact, and materialized memory layers.

rip agent mount-artifacts

List every artifact the mount touches — context artifact, all materialized memory rows, and inherited shared memory. Pipeable into rip artifact update for in-place edits.

rip agent mount-context

Print or edit the mount’s per-instance context document. The brain reads this on every load.
Mount context is operator-editable configuration — theme, voice, audience, codebase facts. It is not memory: memory accumulates over time as the agent records, while mount context is set once at create and fine-tuned afterward. See Mount context vs memory.

Mount tables

The rip agent table ... subcommand group reads and patches rows on any mount’s materialized tables via the generic mount-tables surface (see Mount Tables API). Works on both workflow tables (mount-shared, tool-written) and memory tables. The same surface backs the operator dashboard and the mount_table_* MCP tools — call any of the three with the same (mountId, slug) addressing.

rip agent table list

List the mount’s materialized tables with manifest metadata (kind, tags).
Output includes one row per table: slug, kind (workflow_table / memory_table), and tags from the imprint manifest.

rip agent table rows

Paginated rows on a named table. Supports filter, sort, and cursor pagination.

rip agent table latest

Single most-recent row on a table. Useful for “latest activity” tiles.
Returns 404 (NO_ROWS) when the table is materialized but empty — the dashboard treats this as the “no runs yet” state.

rip agent table by-tag

Interleaved rows across every workflow table on the mount whose manifest declares the tag in its tags array. Single API call, no client-side fan-out.
Each row in the output carries its source tableSlug.

rip agent table patch

Partial-merge update to one row’s data field. Validated against the table’s declared schema.
--set key=value is repeatable. Workflow-table PATCH is allowed (the workflow-readonly guard is append-only).

rip agent table append

Append rows to a mount table via the operator control-row path. This accepts workflow tables (unlike the artifact-rows route) — the control-row pattern the dashboard uses to hand work to the agent.
--rows is a required JSON array of row objects.

rip agent unmount

Destroy a mount and its mount-owned memory. Irreversible.
This cascades through every team-layer and operator-private materialized artifact on the mount, destroys the mount’s context artifact, ends any open sessions, and deletes the mount row. Historical sessions and artifacts remain for audit.
Side effect. Unmounting deletes the mount’s managed folders (team folder + every per-operator folder) and every artifact they hold — except graduated session outputs when you pass --keep-outputs.

Publishing

rip agent publish

Publish or update an agent from a manifest.
Published <slug> as v<N> prints on success. publishedVersion auto-increments on every publish — this number powers the dashboard’s drift signal when a mount falls behind.
Side effect. Publishing creates (or reconciles) a managed Agent: <slug> folder under the owner and files in the brain artifacts, hero image, sample sessions, and shared-scope memory. Re-publishing keeps artifacts you haven’t renamed; orphaned ones are unfiled but not destroyed.
The validator checks: every brain alias resolves to a published, text-readable artifact owned by the agent owner (or shared to the owning team); exactly one memory table has default: true; schema columns are well-formed; the wisdom artifact is unique and owned; the optional mountIntake.starterArtifactAlias (if declared) resolves to a published, text-readable artifact owned by the same identity; etc.

rip agent validate

Run every validator the publish path runs — without persisting. No Agent row, no folder, no table artifacts get written. Useful for pre-commit hooks, CI gates, and confirming a manifest is publish-ready before running the live command.
Equivalent to rip agent publish <manifest> --dry-run — both hit POST /v0/agents { dryRun: true } and surface the same structured envelope.
On failure, each error prints as [code] message and exit code is 1:
In --json mode, the full DryRunResult envelope is emitted (with ok, errors[], and resolved.* counts) so scripts can parse the structured result.
The validator runs as the calling agent identity. Brain artifact ownership checks resolve against that account — i.e. you must own (or have shared to the named team via --team) every brain artifact the manifest references. Publish the brain artifacts first with rip artifact publish, then validate.

rip agent fork

Fork a published template into your own personal or team scaffold.
Forks are always created unpublished. The CLI writes a local scaffold under agents/<new-slug>/ you can edit and then re-publish.
Side effect. Forking creates a managed Agent: <new-slug> folder under the fork’s owner and files in the forked brain artifacts.

rip agent list / show

rip agent artifacts

List every artifact an owned agent references — brain artifacts, shared memory, the mountIntake starter (if any), and sample sessions. Pipeable into rip artifact update to edit them in place.

Publisher

rip publisher apply

Submit a Publisher application. Tokenrip reviews and approves out of band.
Cardinality is one Publisher per agent and one per team. A duplicate apply returns PUBLISHER_ALREADY_EXISTS.

rip publisher show

Show your Publisher application and current status (pending / approved / rejected).

Manifest essentials

Rules:
  • kind ('skill' / 'agent', default 'agent') — a lean kind: 'skill' imprint has no memory tables; a full kind: 'agent' carries the four memory layers.
  • connectionBindings[] declare named external-API/LLM slots ({ name, required, purpose }) mapped to an operator- or team-owned connection at mount time (rip agent mount --connection slot=name or mount-connection). Distinct from tools[]: no capability resolution or impl selection — connection_call injects the secret server-side.
  • Exactly one memory table has default: true.
  • shared memory is publisher-owned and intended for anonymized cohort patterns.
  • team and operator-private scopes no longer require a team-publisher — they materialize at mount time, not publish time. A solo personal mount simply doesn’t activate the team layer.
  • agent scope is a deprecated synonym of operator-private; the schema coerces it.
  • memoryArtifacts[] are versioned narrative documents the agent rewrites holistically (agent_rewrite_artifact). Bounded by maxBytes and rewriteRateLimit.perSessionMax.
  • teamContext (ignored / supported / recommended) signals to operators how the agent relates to teams. Honest signaling, not enforcement.
  • mountIntake (optional) declares a per-mount context document. The starterArtifactAlias must resolve to a published, text-readable artifact owned by the agent owner (or shared to the owning team). The starter doubles as the scaffold cloned into every new mount and the intake guide Moa reads in mount-creation mode.
  • Brain artifact aliases must be owned by the agent owner (or shared to the owning team for team-owned agents).

Themes (cross-session continuity)

Add themes to enable named working clusters within a mount:
scope is operator-private (per-operator) or team (shared). examples are slug-shaped hints (≥2 chars, lowercase/digits/hyphens, max 16). starterArtifactAlias (optional) is cloned into each new theme’s state artifact and must resolve to a published, text-readable artifact owned by the agent owner. The agent manages themes via agent_theme_upsert during sessions. See Themes for the full lifecycle.

Cross-session references (team mounts only)

Add crossSessionReferences to surface other team operators’ flagged or recent items in the active operator’s session:
eligibleFlag must be a column declared on at least one operator-private table schema. The brain is responsible for paraphrasing — never quoting verbatim. On personal/solo mounts, the references no-op with { active: false, reasonInactive: "no-team" }.

Tools (external I/O)

Add tools and workflowTables to connect an agent to external systems. Each tools[] entry declares an intent (kind); the platform picks the right impl at session start based on the caller’s advertised capabilities.
  • tools[].kind is a registered intent (email-outbound, email-inbound, notify, twitter, pdf-generate, doc-parse, …).
  • tools[].bind is the name the brain uses in agent_tool_execute / agent_tool_submit.
  • tools[].required (default true) — if true and the resolver can’t satisfy it, the binding shows up in the load response’s unavailableTools[] and the brain’s Phase 0 blocks until the operator fixes it.
  • tools[].binds.table links the binding to a workflowTables[] slug for tool output.
  • setupRunbook.alias — required when any required: true tool has impls needing local setup beyond server credentials. Markdown artifact the brain inlines into context when a required tool resolves to nothing, so it can walk the operator through setup.
  • workflowTables[] are mount-shared tables written by tool handlers. Distinct from memoryTables[], which are written by the brain via agent_record.
  • inboundEmail.addressTemplate must contain {mount_short_id} so each mount gets a unique address.
When the manifest declares any tools, agent_load returns a probe manifest first; the harness probes its environment, then re-invokes with capabilities: [...] to resolve bindings. The server augments the caller’s set with server-credential:* caps it knows about from the mount’s stored credentials. See Tools and workflow tables for the full handshake.

Errors

Agents

Concepts: agents, mounts, the four memory layers.

Publisher

The public-facing brand for listed agents.