The clipboard for the AI-era.

A hosted relay that just works on any network. Your clips and agent context — in Claude and Cursor.

Everything the pipe needs

Feed your agents the right context, sync it across any network on a relay we run, and keep it all in the terminal — yours to self-host.

Save and send where copy-paste dies

cinch copy saves stdout to searchable local history — even where OSC 52 silently fails. cinch send / pull move it across machines over plain HTTPS when you want.

  • Cross-machine — send and pull
  • Works in tmux, nested SSH, Docker, and CI
  • Searchable local history, useful offline
terminal — cinch copy
$ tail -n 20 error.log | cinch copy ✓ Saved to local history (14 KB) $ cinch history search "panic" 01HX... error.log: thread 'main' panicked at '...

Reaches your desktop, even behind a firewall

Copy on a locked-down box — a VPN, a firewall, a CI runner — and it lands on your desktop. We run the relay, so there's no P2P and no port forwarding. Sign in and it syncs.

  • Sign in and it syncs — nothing to configure
  • Works behind VPN, firewall, NAT, and CI
  • Send from SSH, tmux, containers, and Vim

Your clipboard becomes agent context

Wire cinch into Claude Code or Cursor once — read-only by default. Your agents pull the latest error, diff, or log straight from your clip history, no copy-paste in between.

  • claude mcp add cinch — 6 read-only MCP tools
  • cinch ai fix turns a failing test into a ready prompt
  • Works with Claude, Cursor, and Codex
terminal — cinch mcp
$ claude mcp add cinch -- cinch mcp ✓ 6 read-only tools available to Claude $ cargo test 2>&1 | cinch ai fix Assembled AI-ready prompt from the failure

Keep the relay under your control

Use the hosted relay to get started, or run the same relay yourself when ciphertext, retention, and uptime belong inside your infrastructure.

  • Single Go binary or official Docker image
  • Encrypted clips with server-side retention policy
  • Deploy on any VPS, Fly.io, or container host
server — deploy
$ docker run -d -p 8080:8080 \\ -e DATABASE_URL=postgres://user:pass@host/cinch \\ cinchcli/relay:latest ✓ Relay started on port 8080

In practice

Three moments your terminal — and your agents — used to fumble.

01

SSH sessions

Pipe anything into cinch send — it surfaces on your local machine through the relay. No scp, no port forwarding, even behind a firewall.

prod-server — ssh
user@prod:~$ cat deploy.log | cinch send
✓ Sent to your fleet (E2EE)
user@prod:~$ cinch send < config.yaml
✓ Sent to your fleet (E2EE)
02

Vim & Neovim

Yank in Vim and it's on every device. cinch.vim hooks TextYankPost — zero extra keystrokes.

nvim — init.lua
-- lazy.nvim plugin setup
{ "cinchcli/cinch.vim" }
-- yank any motion → auto-sent
yy " current line
✓ sent 42 bytes · clip #7
03

tmux & screen

Even nested inside ssh → tmux → Vim, cinch.vim sends every yank over HTTPS — from any pane.

session — tmux · nvim
1 use axum::Router;
2
3 pub fn app() -> Router {
NORMAL api/src/lib.rs ✓ cinch.vim