{"slug": "show-hn-possess-a-tui-to-browse-and-transfer-coding-sessions", "title": "Show HN: Possess, a TUI to browse and transfer coding sessions", "summary": "Steven P. Walsh released Possess, an open-source TUI that lets developers browse and transfer coding sessions between AI coding agents Codex, Claude Code, OpenCode, and Grok, enabling context handoffs without restarting conversations. The tool, available on GitHub and requiring macOS or Linux, Git, and Rust 1.92+, saves conversation history, tool calls, plans, and Git state into local handoff packages, and supports commands like `possess list`, `possess handoff`, and `possess resume`.", "body_md": "\n\n```\n       ▄████▄\n     ▄█ ◉  ◉ █▄     P O S S E S S\n    █     ▄    █    repossess your context\n    █  ▄████▄  █\n     ▀█▄▀  ▀▄█▀\n```\n\nSwitch coding agents without starting the conversation over.\n\nCD to your project repo, run `possess`, pick a session, and resume or choose which agent should take over.\n\nPossess works with **Codex, Claude Code,\nOpenCode, and Grok**.\n\nYou'll need macOS or Linux, Git, and Rust 1.92+. Install and log into whichever coding harnesses you want to use first.\n\n```\ngit clone https://github.com/steven-p-walsh/Possess.git\ncd Possess\ncargo install --path . --locked\npossess\n```\n\nIf your shell can't find `possess`, check that `~/.cargo/bin` is on your `PATH`.\nSee the [installation guide](/steven-p-walsh/Possess/blob/main/docs/installation.md) for setup help, release\narchives, and upgrades.\n\nLaunch Possess from your project directory. It shows sessions for that project,\nincluding ones started from subdirectories of the same Git repo. Outside Git,\nit uses the current directory. Run `possess --all-projects` to see everything.\n\nSelect a session to see where you left off, then press `Enter` to choose a harness.\nChoose the same harness and it just resumes the original session. Choose another\nand you can pick a model and agent before handing over. When the harness exits,\nyou're back in Possess.\n\nClaude's model list picks up your settings and recently used models, with Fable, Opus, Sonnet, and Haiku as fallbacks. You can also enter a model name yourself.\n\n| Key | Action | \n|---|---|\n| Arrows or `j` /`k` | Move through sessions | \n| `/` | Search | \n| `Enter` | Choose a harness to continue in | \n| `r` | Resume with the original harness | \n| `R` | Refresh the list | \n| `?` | All shortcuts | \n| `q` | Quit | \n\nIf a harness or its sessions aren't showing up, run `possess doctor` to check\nwhat was detected. You can set custom paths in `~/.config/possess/config.toml`;\nthe [setup guide](/steven-p-walsh/Possess/blob/main/docs/installation.md#verify-the-installation) has an example.\n\nPossess saves the conversation, tool calls and results, plans, and Git state in a local handoff package. Your project stays in place, and the original session stays available.\n\nThe harnesses don't share a session format. Possess imports history where it\ncan; otherwise it starts the new agent with a handoff prompt built around recent\nwork, open tasks, and errors. The saved history is there if the agent needs more\ndetail. Which path you get depends on the harness and version; the\n[compatibility notes](/steven-p-walsh/Possess/blob/main/docs/compatibility.md) cover that.\n\nHandoffs live in `~/.local/share/possess` (or `POSSESS_HOME`). They can contain\nprivate conversation and code, so keep them out of your repo. Possess doesn't\nneed API keys of its own; each harness uses its existing login.\n\nYou can also skip the picker. Use a session ID from `possess list`:\n\n```\npossess list\npossess list --all-projects\npossess show SESSION_ID\npossess handoff SESSION_ID --to codex\npossess resume SESSION_ID\n```\n\nAdd `--model` or `--agent` to a handoff to choose either explicitly.\n`--no-launch` prepares the handoff without starting the destination harness.\nFor the same harness, it only prepares a resume command; no package is created.\nRun `possess handoff --help` for the rest.\n\n```\ncargo fmt --check\ncargo clippy --all-targets --all-features -- -D warnings\ncargo test\n```\n\nThe [architecture notes](/steven-p-walsh/Possess/blob/main/docs/architecture.md) explain how discovery and\nhandoffs work. [CONTRIBUTING.md](/steven-p-walsh/Possess/blob/main/CONTRIBUTING.md) covers adapter changes and\ncomments: explain the reason for the code, not what the next line does.", "url": "https://wpnews.pro/news/show-hn-possess-a-tui-to-browse-and-transfer-coding-sessions", "canonical_source": "https://github.com/steven-p-walsh/Possess", "published_at": "2026-09-07 18:13:05+00:00", "updated_at": "2026-09-07 18:32:00.729687+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools"], "entities": ["Steven P. Walsh", "Possess", "Codex", "Claude Code", "OpenCode", "Grok", "GitHub"], "alternates": {"html": "https://wpnews.pro/news/show-hn-possess-a-tui-to-browse-and-transfer-coding-sessions", "markdown": "https://wpnews.pro/news/show-hn-possess-a-tui-to-browse-and-transfer-coding-sessions.md", "text": "https://wpnews.pro/news/show-hn-possess-a-tui-to-browse-and-transfer-coding-sessions.txt", "jsonld": "https://wpnews.pro/news/show-hn-possess-a-tui-to-browse-and-transfer-coding-sessions.jsonld"}}