Your Coding Agent Should Be Replaceable. Your Engineering Context Should not Be.
Why I built Handoff (Agent Trace) in Go. A zero-sudo CLI, agent skill, and local :4044 web dashboard to transfer unfinished AI coding sessions between Antigravity, Claude Code, Kiro, and you with you own editor.
Every developer building with AI coding agents eventually hits the same wall. You are 400 steps deep into a complex feature wiring up database migrations, middleware, and payment splits sometimes which I was doing sometimes back when your free usage limit runs out or even the context gets too big and the models starts to hallucinate then you decide to take over or give that all context to new agent.
Suddenly, you are stuck. The agent's context lives inside an opaque conversation thread. If you switch from Antigravity IDE to Claude Code (or Kiro), or if you open the repository yourself in your terminal, you have to reconstruct everything from scratch:
That frustration is why I built Handoff (Agent Trace) a provider-independent continuity layer for AI-assisted software engineering, written in Go.

1. The Core Insight: Don't Transfer Chat Logs — Transfer Engineering State
When I first sketched out Handoff, the temptation was to just export a raw conversation transcript and feed it to the next model. That fails in practice for two reasons:
| Engineering Signal | What Handoff Records | Why It Matters |
|---|---|---|
| Developer Intent | Chronological sequence of user prompts | Shows how the objective evolved over the session |
| Thought Process | Step-by-step Thinking blocks + model switches (Claude Sonnet 4.6, Claude Opus, Gemini) | Preserves why a specific architecture was chosen |
| File & Git Evidence | Exact files touched by the agent + live git status and unified git diff | Distinguishes agent edits from pre-existing repo changes |
| Command & Failure Evidence | Executed shell commands, exit codes, and stdout/stderr snippets | Pinpoints the exact failing build, test, or migration |
| Resume Verification | Live check at resume time (e.g. 37/37 files present, branch & HEAD SHA match) | Warns if the repo drifted after the checkpoint was saved |
2. How I Built It in Go
I wanted Handoff to be fast, dependency-light, and work 100% deterministically offline — because when you run out of API credits on Agent A, your handoff tool cannot depend on making another LLM API call just to summarize your session.
Modular Adapter Architecture (internal/adapter)
Different coding agents store their local session traces differently, so Handoff defines a clean Adapter interface:
1type Adapter interface {
2 Name() string
3 DiscoverSessions(workspacePath string) ([]model.SessionMeta, error)
4 CollectEvents(session model.SessionMeta) ([]model.Event, []string, error)
5 Resume(cp *model.Checkpoint, verificationReport string, opts ResumeOptions) (*ResumeResult, error)
6}We will soon be adding adapters for more AI coding environments soon.
Two First-Class Destinations: Agent or Human
Half the time, you aren't handing off to another AI agent — you are handing off to yourself. When I tested the first version of the CLI on a real 417-step session in one of my repositories, dumping the full markdown report to stdout was overwhelming, and I had 5 different agent sessions in that same folder.
3. How to Install & Use Handoff
Handoff installs strictly in unprivileged user space (~/.local/bin) — no sudo, no root execution, and no automatic .zshrc mutation.
Step 1: Zero-Sudo Installation (CLI + Agent Skill)
1# One-line user-space installer (downloads binary + installs agent skills)
2curl -fsSL https://raw.githubusercontent.com/aynaash/handoff/main/install.sh | sh
3
4# Or install via Go
5GOBIN="$HOME/.local/bin" go install github.com/aynaash/handoff@latest
6handoff skill install
7
8# Or install the skill via the Agent Skills CLI
9npx skills add aynaash/handoffWorkflow A: Visual Browser Dashboard (:4044)
When you have multiple sessions across projects (or several sessions inside the same repo) and want a clean visual overview:
handoff uiWorkflow B: Human Developer Takeover from Terminal
When an agent stops and you want to take over the code yourself in Neovim or VS Code:
1# Compact 20-line takeover card for the current folder
2handoff takeover
3
4# Find and take over your most recent session that used Claude
5handoff takeover --claude
6
7# Open all agent-modified files directly in $EDITOR / nvim
8handoff takeover --claude --openWorkflow C: Agent-to-Agent Handoff (Antigravity <-> Claude Code)
1# 1. Capture the portable checkpoint (.handoff/latest.md, checkpoint.json, events.json)
2handoff checkpoint
3
4# 2. Verify live git state & resume directly in Claude Code
5handoff resume --agent claudeYour coding agent should be replaceable. Your engineering context shouldn't be. — github.com/aynaash/handoff