Skip to main content

Universal AI chat to local agent handover tool

Project description

handover

Design in chat. Build in terminal. Zero context lost.

handover is an open-source CLI tool that bridges AI chat interfaces (Claude, ChatGPT, Gemini, and others) to local terminal coding agents (Claude Code, Codex CLI, etc.). It extracts decisions, plans, and intent from a chat conversation and generates structured handover artifacts that a local agent can immediately act on — without re-explaining anything.

PyPI version Python versions License: MIT CI


Install

pip install handover

Quickstart

# Basic usage — single conversation file
handover --input conversation.json --output ./my-project/

# List all conversations in a bulk export
handover list export.jsonl

# Bulk export — select a specific conversation by title
handover --input export.jsonl --title "API Design Discussion" --output ./my-project/

--dry-run Demo

$ handover --input chat.json --dry-run

🔍 Parsing conversation: "API Design Discussion"
   Source: claude | Messages: 34 | Format: single-json v1.0

📋 Extracted HandoverContext:
   Goal: Build a FastAPI REST API with JWT auth and PostgreSQL
   Tech Stack: Python, FastAPI, PostgreSQL, pytest
   Decisions:
     • async handlers — high concurrency expected
     • JWT auth — stateless API requirement
   Tasks: 6 items
   Constraints: 2
   Open Questions: 1

📄 Would write:
   → ./my-project/CLAUDE.md  (1.2 KB)
   → ./my-project/PLAN.md    (0.4 KB)

Run without --dry-run to write files.

Supported Input Formats

Source Format How to Get
Claude.ai bulk export .jsonl (one JSON object per line) Settings → Privacy → Export Data
Claude.ai single chat .json Claude Conversation Exporter browser extension
Claude.ai single chat .md Browser extension (Markdown export)

All Flags

handover --input chat.json --output ./my-project/ --source claude   # explicit adapter
handover --input chat.json --output ./my-project/ --dry-run         # print, don't write
handover --input chat.json --output ./my-project/ --no-llm          # rule-based only, no API key needed
handover --input chat.json --output ./my-project/ --launch          # run `claude` after writing
handover --input chat.json --output ./my-project/ --template ~/.handover/templates/

handover list export.jsonl                  # enumerate conversations in bulk export
handover init                               # scaffold customizable templates to ~/.handover/

Roadmap

Phase Source Target Status
1 Claude chat Claude Code This release
2 ChatGPT, Gemini, Perplexity Claude Code Open contribution path
3 Claude Code sessions (~/.claude/projects/) Claude chat High value — spec next
4 Any chat Codex CLI, Aider, Goose Future

Contributing

The primary contribution path is adding a new source adapter. Each adapter is an isolated Python class anyone can own end-to-end. See docs/adding-an-adapter.md for the step-by-step guide.

For general contribution guidelines, see CONTRIBUTING.md.


Full PRD

The complete Product Requirements Document is available at handover-prd-v2.md.


License

MIT © 2026 Mohan Krishnaa Alavala

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

handover-0.2.0.tar.gz (40.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

handover-0.2.0-py3-none-any.whl (27.2 kB view details)

Uploaded Python 3

File details

Details for the file handover-0.2.0.tar.gz.

File metadata

  • Download URL: handover-0.2.0.tar.gz
  • Upload date:
  • Size: 40.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for handover-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4169dfdb4bf4db7f2b1d0a29257612df49c9771bc187340f45bd221518bf8325
MD5 ca9db12242cbe6bb01293d6d22bdd5aa
BLAKE2b-256 430e2c0cbc8cd68f9e57b0f9a25c1cb5c6a13887d3c4164192032c3770986423

See more details on using hashes here.

Provenance

The following attestation bundles were made for handover-0.2.0.tar.gz:

Publisher: release.yml on mohankrishnaalavala/handover

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file handover-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: handover-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 27.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for handover-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 35e9718c29f088f3bdd07ad0a938b03b53c606d485a2f199473d95f350e204e3
MD5 65195e98977cdb935c36453727f22dd4
BLAKE2b-256 73bb8acb9be376bb4a3baa5b38b9757e519e965b178d65d05f59e07cec3d10ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for handover-0.2.0-py3-none-any.whl:

Publisher: release.yml on mohankrishnaalavala/handover

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page