Releases: hetpatel-11/agent-hop
Release list
v0.1.1
Native Rust runtime for coding-agent harnesses. Run Claude Code, Codex, OpenCode, Pi, and Grok in one terminal; hop a live session between them; search or resume any local chat.
curl -fsSL https://raw.githubusercontent.com/hetpatel-11/agent-hop/main/install.sh | bashOr npm install -g agent-hop. Same ah binary either way.
v0.1.0
Native Rust runtime for coding-agent harnesses. Run Claude Code, Codex, OpenCode, Pi, and Grok in one terminal; hop a live session between them; search or resume any local chat.
curl -fsSL https://raw.githubusercontent.com/hetpatel-11/agent-hop/main/install.sh | bashOr npm install -g agent-hop. Same ah binary either way.
| Asset | Platform |
|---|---|
ah-darwin-arm64 |
macOS Apple Silicon |
ah-darwin-x64 |
macOS Intel |
ah-linux-x64 |
Linux x64 |
ah-linux-arm64 |
Linux arm64 |
ah-windows-x64.exe |
Windows x64 |
v0.0.6
Fixed
- Windows: cwd-to-directory encoding across adapters could produce invalid directory names (colons/backslashes used raw). Fixed in
pi.ts, plus a more serious variant inclaude.tswhere session IDs were silently corrupted (extracted via a/-only split against backslash-separated paths). - Windows: opencode's install check hardcoded
which(Unix-only), so opencode was undetectable even when installed. - Pi: added
PI_CODING_AGENT_DIRsupport for relocated agent directories.
Thanks to @evalexp for surfacing the original pi.ts bug (#2).
v0.0.5
Fixes
- Codex/Claude/Pi assistant-turn images: an image attached to an assistant turn was placed directly in the assistant message content, which both Claude's and Codex's APIs reject once the conversation continues. Now carried through a synthetic tool call/result instead (matching the pattern already used for Grok).
- Pi tool-name sanitization: Pi can route through OpenAI/Azure-backed models (e.g.
--model auto,openrouter/auto), which enforce the same function-name pattern Codex does. Cross-agent tool labels with spaces/punctuation are now sanitized before writing. - Non-object tool-call input (Claude, OpenCode, Pi): a tool call whose input didn't parse to a JSON object (a bare string, array, or unparseable text) was passed straight through, causing a live "Input should be an object" API error on resume. Now always wrapped into a valid object.
- OpenCode large-session export truncation: capturing
opencode export's output via a pipedexecFileSynccall silently truncated large exports at a fixed byte offset, causingread()to return zero turns with no error. Now captured via a temp file instead, matching how shell redirection behaves correctly. - Search snippet highlighting: a fuzzy/prefix-expanded search term (used for ranking) could get highlighted in a result's preview even though it wasn't literally in your query -- e.g. searching "uxp plugin" could highlight an unrelated word like "uxpcleanup". Highlighting now always reflects your literal query terms only.
- Also includes a community PR (#1) fixing the same class of Codex-specific tool-name/image-placement issues, plus a target-CLI existence check before resume so a missing agent binary fails with a clear message instead of a raw crash.
All fixes were verified against real, live resumes -- including a stress-test pass converting each of the 5 supported agents' largest real session on this machine into another agent and sending a follow-up message.
Full changelog: v0.0.4...v0.0.5
v0.0.4
What's new
- Real image and PDF attachments carry over across a resume/hop, for every supported agent (Claude Code, Codex, OpenCode, Pi, Grok Build) -- verified as an exact byte-for-byte round trip against real generated sessions, not just schema reading.
- Native structured tool calls -- shell commands, file edits, MCP calls now write as real
tool_use/function_call/toolCall/ToolPart-style entries in the target agent's own format, the same shape that agent's own client produces for a call it made itself, instead of being flattened into plain text. - Context-overflow safety fix -- a long session's full tool-call I/O can be large enough that the target agent's own context window can't load it on resume. Conversion now keeps the most recent slice that fits instead of silently handing over something unusable.
Full changelog: v0.0.3...v0.0.4
v0.0.3
What's changed
- Rebalanced search ranking to weight semantic similarity equally with keyword (BM25) matching (was 70/30 favoring keywords, now 50/50).
- Fixes cases where a genuinely relevant session lost to an unrelated one that happened to repeat a query word many times -- verified against real queries with no regression on already-good results.
v0.0.2
What's new
- Added an update checker: agent-hop now checks (cached, once per day) whether a newer version is published, and prompts "Update now / Later" at launch in interactive mode.
- Fixed a stale "agent resume" leftover in the narrow-terminal banner fallback -- now correctly reads "agent hop".
v0.0.1
Initial release of agent-hop.\n\n- Search across local Claude Code, Codex, OpenCode, Pi, and Grok Build sessions.\n- Resume a session in its original agent or hop it into another supported agent.\n- Hybrid local search with BM25, fuzzy/prefix matching, recency bias, and background semantic refinement.\n- Preserves native chat history for supported target agents.