Docs / CLI

Clipy CLI: your recordings from the terminal

@clipy/cli lists, searches, and reads your screen recordings without a browser: transcripts (including SRT/VTT subtitle export), AI summaries, key moments, MP4 downloads, and the full agent-context bundle, and records new ones from the terminal, headless or as a live session. Zero dependencies, Node ≥ 18.

Giving this workflow to an agent? Start with the canonical /agents.md contract, then use clipy guide --json for the exact installed command schema.

1. One-command setup

One command wires Clipy into your coding agent, with no API key to copy or paste:

npx @clipy/cli@latest setup claude   # also: codex · cursor · windsurf · opencode

Swap claude for codex or cursor. The first time you run it:

  1. 1.Your browser opens at clipy.online. You click Approve once; the page names the client and the exact scopes it grants: read your recordings and record and upload.
  2. 2.The Clipy skill installs into your agent's skills directory.
  3. 3.Your agent records with Clipy, and reads any recording back: transcripts, summaries, and key moments.

The approval mints a scoped, revocable API key and stores it in ~/.config/clipy (mode 0600). You can see and revoke it any time under Settings → API keys.

Tell your agent to read a videoPaste a recording into Claude Code, Codex or Cursor. The agent pulls the summary, transcript and key moments through Clipy's CLI and MCP server, and keeps the recording in your library.

Prefer to wire it up by hand?

npm install -g @clipy/cli   # or run ad-hoc: npx @clipy/cli <command>
clipy login                 # opens the browser approval; --key <key> to paste one instead

clipy login runs the same browser approval on its own. Already have a key? Mint one at clipy.online/settings/api-keys (shown only once, looks like clipy_sk_live_…) and paste it with clipy login --key. Prefer no stored state? Set CLIPY_API_KEY or pass --key per command. Precedence: flag → env → stored config.

On SSH or a display-less box, clipy login switches automatically to a copy-code flow (also forceable with --no-browser): it prints an approval URL to open on any device (laptop or phone) and after you click Approve, paste the one-time code back into the waiting terminal.

On Windows, if the approval page says “This authorization link is invalid”, you are on a CLI older than 0.13.0, which let cmd.exe cut the link at its first &. Run npm install -g @clipy/cli@latest and log in again, or use clipy login --no-browser to approve from any device.

2. Commands

The first group creates recordings; the rest read them. Every recording-reading command accepts either the bare public id (3kelcef8wo8h) or the full https://clipy.online/video/<id> share URL.

commanddoes
clipy setup <claude|codex|cursor|windsurf|opencode>Complete agent setup: browser approval if needed, then install the Clipy skill and register its MCP server.
clipy agents <status|install|uninstall> <claude|codex|cursor|windsurf|opencode>Manage only the selected agent's Clipy skill file; install may open first-run browser sign-in but does not change MCP configuration.
clipy login / logout / whoamiLog in via browser approval (--key <key> to paste one instead), clear it, or check who you are. Stored in ~/.config/clipy, mode 0600.
clipy record --url <url> [--for sec]Headless one-shot capture of a web app; --note '12: text' lines become the transcript.
clipy session <start|stop|status> [--url]Run a live recording session in the background; auto-stops and uploads at --max (default 600s).
clipy mark "<text>"Drop a live-timestamped note into the active session; marks become the transcript for a silent capture. Optional --assert-selector/--assert-text/--assert-url (Clipy-verified) or --observed/--verdict (attested).
clipy chapter "<label>"Drop a chapter boundary into the active session.
clipy sourcesList the displays and windows you can target with --window / --display when recording the real Mac screen.
clipy proof --frame <image>… / --video <file>Turn screenshots from any agent tool into one playable proof video, or upload an existing WebM/MP4.
clipy list [-n 20] [--page 2] [--status ready]List your recordings as a table; --json for scripting.
clipy memory search <query>Hybrid semantic + keyword search across recordings and imported/watched context, with exact moments and deep links.
clipy search <query>Legacy recording-library full-text search.
clipy show <id|share-url>One recording's metadata, statuses, and share link.
clipy transcript <id> [--srt|--vtt]Plaintext transcript, or proper subtitle export from the timestamped segments.
clipy summary <id>AI summary: TL;DR, key points, action items.
clipy moments <id>Key moments: timestamps, captions, click coordinates, frame URLs.
clipy context <id>The full agent-context bundle as markdown (same content as the .md watch link).
clipy download <id> [-o out.mp4]Download the MP4 with a progress bar.
clipy open <id>Open the share page in your browser.
clipy wait <id> --for transcript|summary|bothBlock (with spinner) until processing artifacts are ready.
clipy doctorDiagnose your setup: key validity, Mac bridge, Playwright, install mode. --json for scripts.
clipy guide --jsonEmit the whole CLI as a self-describing JSON manifest: every command, flag, exit code, and env var.
clipy mcpShortcut that runs the @clipy/mcp server (npx -y @clipy/mcp) for MCP clients.

record and session capture a headless browser by default. Add --source mac-screen to record your actual Mac screen through the Clipy desktop app must be running, and the first capture asks for your consent in-app. Target one window or display with --window "Chrome" or --display <id>: run clipy sources to list the ids.

3. Scripting

--json prints the raw API response on every read command. Exit codes: 0 ok · 1 error · 2 usage · 3 artifact not ready yet, so scripts can branch on processing state.

# Newest recording's id
clipy list -n 1 --json | jq -r '.recordings[0].id'

# Export subtitles for a recording
clipy transcript 3kelcef8wo8h --srt > recording.srt

# Stop a recording, then block until Clipy finished transcribing
clipy wait 3kelcef8wo8h --for both && clipy summary 3kelcef8wo8h

An agent can discover the whole CLI instead of guessing it: clipy guide --json emits every command, flag, exit code, and env var as a self-describing manifest. The full agent-integration story (recording lifecycle, capture targets, headless/CI, and what is not supported yet) starts at /agents.md and has a browsable reference at /docs/agents.

Skill, CLI, or MCP?

The Clipy skill is the default for public pasted links. The CLI is for you: terminals, shell scripts, CI. MCP is for authenticated agent workflows: private library search and inline tool results. clipy mcp bridges the two by launching the MCP server directly.

Package on npm: @clipy/cli · source on GitHub: manovagyanik1/clipy-cli · MCP docs: /docs/mcp · Agent skill: /docs/skill · the full agent story: /for-agents