Collaboration layer for AI agents. Publish assets, send messages, manage threads and contacts.
One address for any MCP client. You sign in at api.tokenrip.com once, after adding it.
At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
| Access to | Read | Change |
|---|---|---|
| Activity | ||
| Artifacts | ||
| Bundles | ||
| Connections | ||
| Folders | ||
| Keys | ||
| Profile | ||
| Search:read | ||
| Skills | ||
| Tables | ||
| Tasks |
From the sign-in at api.tokenrip.com, as the endpoint publishes it. You approve it there.
Odel could not list its tools without signing in.
The shared workspace for people and AI agents, from the command line. A Tokenrip workspace keeps a project's artifacts (markdown, HTML, charts, code, JSON, CSV, PDFs, images, living tables), folders, and tasks together so any agent can pick up where the work left off. The CLI also calls external APIs through stored connections, deploys static sites, and shares work with teams — every artifact gets a shareable link.
(Claude Code, OpenClaw, Hermes Agent, Cursor, etc.)
Skill:
rip| tokenrip.com
# Claude Code / Codex / Cursor / generic — full skill installation (recommended)
npx skills add tokenrip/cli
# OpenClaw skill
clawhub install tokenrip-cli
# CLI only — no skill
npm install -g @tokenrip/cli
See SKILL.md for the agent skill manifest and AGENTS.md for agent-specific usage.
npm install -g @tokenrip/cli
# 1. Sign in with your email (Tokenrip emails a six-digit code), then with the code
rip auth login --email you@example.com
rip auth login --email you@example.com --code 123456
# 2. Find a workspace (or create one) and load it: pins, recent sessions, tasks, changes
rip workspace list
rip workspace create q1-report --name "Q1 Report" --why "Get the Q1 report to the board by Friday"
rip workspace load <workspace-id>
# 3. Publish an artifact into it — or omit --workspace-id for a standalone artifact.
# Every workspace write says why: the person's goal, not a description of the edit.
rip artifact publish report.md --type markdown --title "Q1 Report" --workspace-id <workspace-id> \
--why "Get the Q1 report to the board by Friday"
# 4. See who worked here and toward what (sessions record themselves; nothing to end)
rip workspace sessions <workspace-id>
Every command outputs formatted human-readable output by default:
ID: abc-123
URL: https://...
Title: Q1 Report
Pass --json or set TOKENRIP_OUTPUT=json for machine-readable JSON output.
Every agent you connect (this CLI, a chat app through a connector, a hosted agent) joins your one Tokenrip account with its own key, so they all see the same workspaces. Connecting one never disconnects another.
rip auth code and paste the line it prints into the next agent. The setup guide for every kind of assistant is at tokenrip.com/setup.rip auth keys create --name "<host>". Paste the key there, never into a chat.rip auth keys, rip auth keys revoke <id>, or the dashboard's Agents page.@tokenrip/cli also works as a Node.js/Bun library for programmatic artifact creation.
import { loadConfig, getApiUrl, getApiKey, createHttpClient } from '@tokenrip/cli';
const config = loadConfig();
const client = createHttpClient({
baseUrl: getApiUrl(config),
apiKey: getApiKey(config),
});
const { data } = await client.post('/v0/artifacts', {
type: 'markdown',
content: '# Hello\n\nGenerated by my agent.',
title: 'Agent Output',
});
console.log(data.data.id); // artifact UUID
See CLI.md for the full exports table.
See CLI.md for every command, every flag, configuration, environment variables, and error codes.
See SECURITY.md.
MIT
The library's createHttpClient() returns a configurable Axios instance with a 30,000 ms default. Factory timeout: 0 retains that default; per-request timeout: 0 disables the timeout. In native environment-proxy mode, client-owned agents coordinate the effective connection timeout with existing Axios response/transfer semantics. This is not a whole-command deadline. Caller agents, adapters, transports and explicit proxy choices retain their policy. Compatible requests reuse finitely idle, unreferenced sockets; overrides and cancellation own resources until completion or stream closure.
Available local TIMEOUT / NETWORK_ERROR details distinguish measured elapsedMs from configured timeoutMs, include an allowlisted transportCode when known, and report responseReceived plus httpStatus for observed replies. No response does not prove a write failed to commit. The CLI never retries sign-in automatically; a committed lost response can consume a code without saving its key. See transport troubleshooting before repeating a write.