Show HN: Agent-hop – a Rust TUI that hops a live Claude Code chat into Codex Developer hetpatel-11 released agent-hop 0.1.3, an open-source Rust TUI runtime that lets users run Claude Code, Codex, OpenCode, Pi, and Grok in one terminal and hop a live chat session between them without leaving the terminal or starting over. The tool indexes all local chat history for hybrid BM25/MiniLM search and supports cross-harness resume by translating turns into each tool's native session format, with binaries available for macOS, Linux, and Windows via GitHub Releases, npm, or a curl installer. agent-hop.mp4 demo A runtime for coding-agent harnesses. Run Claude Code, Codex, OpenCode, Pi, and Grok inside one terminal, hop a live session between them, and search or resume any local chat. ah is the process you start. The harness runs inside it. Claude Code, Codex, OpenCode, Pi, and Grok each have their own CLI, their own session files, and their own idea of "resume." None of them can take over a conversation another one just had. agent-hop is the runtime around those harnesses: a native Rust binary that opens the real agent in a pty, keeps a strip of chrome ah owns, and can move the live thread into the next harness without you leaving the terminal or starting over. You work the way you already do. claude is still claude . Codex is still Codex. ah does not reimplement them, proxy their APIs, or invent a new agent. It is the runtime around them — PTY, Ghostty's VT engine, hop, search. When you hop Claude Code → Grok → Pi → OpenCode → Codex, the runtime finds the session the current harness just wrote for this project, translates the actual turns into the next harness's native format, and launches that harness's own resume command. Tool calls shell, file edits, MCP and attachments images, PDFs go with the thread. It is not a pasted summary. Search and resume are part of the same runtime, not a separate product. Every harness writes history to disk in its own shape. ah indexes all of it locally — BM25 as you type, MiniLM when you pause — so you can pull up a thread you remember by topic, not by which tool or folder held it. Ctrl+R resumes in the same harness. A hop, or ah resume -r , continues it in a different one. Runtime, not a wrapper UI — you launch ah ; it spawns the real harness in a pty and renders it with Ghostty's terminal engine. The agent is unmodified. Live hop between harnesses — Ctrl+B n/p/a , Alt+↑/↓ , or click the bottom bar. The next tool gets the real conversation in its own session format. Native compact/recap and the local digest when a thread is cut stay in model context, not as a chat bubble. Tabs and workspaces — several agents in one ah process. Prefix chords Ctrl+B c/w/o/i/ / /1–9/x or click the sidebar and tab strip. Ctrl+B q leaves ah ; the next ah restores those workspaces and resumes each chat. When an agent exits, that tab closes. Last tab also leaves ah . Pane CLI — from inside a live tab, ah tab , ah hop , ah close , ah focus , and ah workspace talk to the parent mux never your own pane for hop/close . Search every local chat — one picker over Claude Code, Codex, OpenCode, Pi, and Grok. Hybrid lexical + semantic search, all on your machine. Resume the real session — same-harness resume uses that tool's own files and resume command. Cross-harness resume writes a native session the target would have written itself. Interactive or scripted — humans stay in the TUI. Agents and CI call ah resume without a picker. Sessions never leave disk — hop and search read the same files the harnesses already write. Telemetry, if left on, is aggregate usage only. macOS or Linux, no Node required: curl -fsSL https://raw.githubusercontent.com/hetpatel-11/agent-hop/main/install.sh | bash That pulls ah from the GitHub Release https://github.com/hetpatel-11/agent-hop/releases/latest npm tarball as fallback into ~/.local/bin . Override with AH BIN DIR . Pin a version with AH VERSION=0.1.3 . Or download a binary from the releases page https://github.com/hetpatel-11/agent-hop/releases/latest : ah-darwin-arm64 , ah-darwin-x64 , ah-linux-x64 , ah-linux-arm64 , ah-windows-x64.exe . Or via npm / bun, if you already use them: npm install -g agent-hop or bun install -g agent-hop npm is a binary CDN here, not a JavaScript app. The package is a tiny Node shim that execs the same Rust binary GitHub Releases and the curl installer ship. Supported prebuilds: macOS arm64/x64, Linux x64/arm64, Windows x64. ah is the runtime, not an installer. The harness you hop into must already be on your PATH . Anonymous usage telemetry is on by default no queries, paths, or chat content . Turn it off with ah telemetry off or AH TELEMETRY=0 . Details: https://agent-hop.com/telemetry https://agent-hop.com/telemetry ah Reopens the workspaces and tabs from last time, each on that harness's own resume of the chat. First run — or after you start with ah claude / ah resume — you pick a harness. That harness is a child process; ah wraps it: | Shortcut | What it does | |---|---| Ctrl+B then n / p | Hop this tab to the next / previous installed agent | Ctrl+B then a | Open the agent picker or click the bottom bar | Ctrl+B then c | New tab in this workspace | Ctrl+B then w | New workspace folder , then pick an agent | Ctrl+B then o / i | Next / previous tab | Ctrl+B then / | Previous / next workspace | Ctrl+B then 1 – 9 | Focus that tab | Ctrl+B then x | Close this tab | Ctrl+B then q | Leave ah . Next ah restores these workspaces and chats | Ctrl+B then ? | Show every ah shortcut | Alt+↑ / Alt+↓ | Hop next / previous where the terminal sends those keys | Ctrl+R | Search local history and resume a session in the same agent | Launch straight into a tool: ah claude ah codex ah opencode ah pi ah grok Search and resume outside the live TUI: ah resume ah resume "auth migration" ah resume "auth migration" --agent claude ah resume "auth migration" --agent claude --resume-in codex | Flag | Description | |---|---| -a, --agent