{"slug": "show-hn-rezoom-one-chat-list-for-all-your-claude-code-sessions", "title": "Show HN: Rezoom – one chat list for all your Claude Code sessions", "summary": "Rezoom, a native C++/Qt6 desktop app released on Show HN, presents every Claude Code, Codex, SSH, tmux and shell session on a machine as a single chat list showing live state, title and latest output. Rezoom reads the session registry Claude Code writes to ~/.claude/sessions/, detects states including working, waiting, frozen on a usage limit and suspended, and resumes each chat with its exact original command; it runs entirely locally and never calls an API, with opt-in exceptions for a freeze-detection hook in ~/.claude/settings.json and skipping Claude's \"trust this folder?\" prompt. The app ships as a .deb for Debian/Ubuntu 25.04 or newer for KF6 and supports adopting remote claude and tmux sessions over SSH via a \"Scan remote\" action.", "body_md": "**One chat list for every AI coding session on your machine.** Rezoom shows each\nagent, ssh, tmux or shell session as a chat: what it's doing right now, what it last\nsaid, and one click to bring it back. Native C++/Qt6, follows your KDE light/dark\ntheme, embeds real Konsole terminals.\n\n| Agent | What Rezoom knows | \n|---|---|\n| **Claude Code** | live state (working, waiting, frozen), live title and output, auto-adopt, freeze detection | \n| **Codex** | found in history, adopted, resumed with `codex resume` , detected when started in a pane | \n| **Any other CLI agent** (aider, Gemini CLI, opencode…) | runs as a terminal chat; resumable through a command template in Settings | \n| **Agents on other machines, over SSH** | the ssh you typed is remembered as the way back in; **Scan remote** finds claude and tmux sessions on a host and adopts each as a chat that resumes over ssh | \n\n- **See everything at once.** Rezoom reads the registry Claude Code already writes\n(`~/.claude/sessions/` ). Every session shows its state: Claude's orange spinner\nwhile working (a still star when it's stuck), green when it finished and it's your\nturn, grey idle, blue at a shell, red frozen on a usage limit, hollow\nresumable — its live title, and its latest output while it works. New sessions\nappear on their own; tool-spawned ones (in`/tmp` , or started by another claude)\nare left out.\n- **Find the one you mean.** Each running session shows the name other agents\ncall it by (`bex-6b` ), external sessions carry their Konsole window title, and\nsearch matches names, titles, messages and folders.\n- **Never lose a session.** Every chat keeps the exact command that brings it back.\nWhatever was running comes back when Rezoom starts, even after a crash.\n- **Move sessions without killing them.** A session running in some other Konsole\nwindow gets a ⤵ on its row: one click beams it into Rezoom live (reptyr), and the\nold window is closed for you. Or jump to its window. \"Restart to update\" is one\nkeystroke per session.\n- **Rezoom over SSH.** An`ssh` typed in any pane is recorded as that chat's way back\nin; an ssh open in any Konsole tab shows up as a chat, with the remote claude's\nworking/your-turn state read from its title;**Scan remote** lists the claude and tmux\nsessions on a host and adopts each one, resuming with`ssh -t host 'claude --resume …'` .\nNothing connects until you click.\n- **More than one Claude login? Optional.** Right-click a chat →**Run under another\nClaude account…** (`Ctrl+Shift+K` ) creates a separate account (`~/.claude-<name>` ,\noptionally sharing your settings and CLAUDE.md), and you`/login` inside claude once.\nThose chats carry a small account tag and always resume under their account.\nWith a single login, none of this appears.\n- **Group across screens.** Float chats into their own tabbed windows and pull them\nback; the layout survives restarts.\n- **Know when something's wrong.** A session frozen by Ctrl+Z shows as*suspended* (the kernel says so; claude's own status can't) with**▶ Continue** in its own\nterminal or*Resume in Rezoom instead* ; a \"busy\" session whose transcript hasn't\nmoved for two hours shows*no progress* ; an ssh that ends inside a Rezoom pane\ngets a bar with**Reconnect** (a click, never automatic).\n- **Know when you're blocked.** One click in Settings installs a Claude Code\nNotification hook; sessions frozen on a usage limit turn red with the reset time.\n- **Keyboard first.** Everything has a`Ctrl+Shift` chord (`Ctrl+Shift+/` lists them),\nso plain Ctrl keys still reach your shell.\n\nRezoom runs entirely on your machine and never calls an API. It reads Claude's own\nfiles and writes only its own. The two exceptions are opt-in and say so in Settings:\nthe freeze-detection hook (added to `~/.claude/settings.json`, with a backup) and\nskipping Claude's \"trust this folder?\" prompt for folders you already use (off by\ndefault). SSH chats never connect until you click.\n\n**Debian/Ubuntu (25.04 or newer, for KF6)** — download the `.deb` from the\n[latest release](https://github.com/BEX-Robotics/rezoom/releases/latest):\n\n```\nsudo apt install ./rezoom_1.2.0_amd64.deb   # pulls Qt6/KF6/konsole-kpart via apt\n```\n\n**Fedora/openSUSE** — build from the spec: `rpmbuild -ba dist/rezoom.spec`.\n\n**Arch** — `dist/PKGBUILD`: `makepkg -si` from a directory containing it.\n\nPackages depend on your distro's Qt/KF6; nothing is bundled.\n\nOptional: `reptyr` for moving live sessions\n(`sudo setcap cap_sys_ptrace+ep $(which reptyr)` to allow it under Yama — Settings\nshows whether it's ready), `tmux`, `jq` for the freeze-detection hook.\n\nLinux:\n\n```\nsudo apt install qt6-base-dev libkf6parts-dev libkf6service-dev \\\n                 libkf6coreaddons-dev libkf6i18n-dev extra-cmake-modules\ncmake -B build -G Ninja\nninja -C build\nbuild/rezoom\n```\n\nmacOS:\n\n```\nbrew install cmake ninja qt\ncmake -B build -G Ninja -DCMAKE_PREFIX_PATH=\"$(brew --prefix qt)\"\nninja -C build\nbuild/rezoom\n```\n\nKF6/Konsole is KDE-only, so chats open in Terminal.app windows instead of embedded panes. Presence, titles, search, auto-adopt, auto-resume, restart, archive, templates and freeze detection work the same: Claude Code writes the same registry on macOS. Beam-in and \"Go to its window\" need Linux (reptyr, KWin) and don't appear on macOS, and single-instance is off there (the session store stays consistent anyway).\n\n```\nrezoom-cli list                  # chats + live presence + agent name (TSV)\nrezoom-cli resume <query>        # reopen a chat; query = agent name (bex-6b), id or title\nrezoom-cli resume <query> --print\nrezoom-cli adopt-running         # adopt every untracked running claude\nrezoom-cli prune                 # drop dead chats stranded in /tmp\nrezoom --resume <query>          # GUI: select + launch (forwards to a running instance)\n```\n\n| Path | What | \n|---|---|\n| `~/.local/share/rezoom/sessions.json` | chat records (multi-process safe) | \n| `~/.local/share/rezoom/notifications.jsonl` | freeze-detection capture | \n| `~/.config/rezoom/rezoom.conf` | templates, preferences, window layout | \n| `~/.claude/sessions/<pid>.json` | live registry (written by claude, read-only) | \n| `~/.claude/projects/*/<uuid>.jsonl` | transcripts (read-only) | \n\n`$REZOOM_DATA_DIR` and `$REZOOM_CLAUDE_DIR` point the app at other locations, and\n`$REZOOM_SCREENSHOT=<file.png>` renders the window to a PNG and quits — that's how\nthe screenshots above were made, from demo data.\n\nMIT.", "url": "https://wpnews.pro/news/show-hn-rezoom-one-chat-list-for-all-your-claude-code-sessions", "canonical_source": "https://github.com/BEX-Robotics/rezoom", "published_at": "2026-10-11 08:53:56+00:00", "updated_at": "2026-10-11 09:23:27.058125+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "ai-products"], "entities": ["Rezoom", "Claude Code", "Codex", "Konsole", "KDE", "Qt6", "aider", "Gemini CLI"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-rezoom-one-chat-list-for-all-your-claude-code-sessions", "markdown": "https://wpnews.pro/news/show-hn-rezoom-one-chat-list-for-all-your-claude-code-sessions.md", "text": "https://wpnews.pro/news/show-hn-rezoom-one-chat-list-for-all-your-claude-code-sessions.txt", "jsonld": "https://wpnews.pro/news/show-hn-rezoom-one-chat-list-for-all-your-claude-code-sessions.jsonld"}}