{"slug": "turbo-vision-style-ui-for-claude-code", "title": "Turbo Vision-style UI for Claude Code", "summary": "Developer runvnc released tvclaude, a fork of magiblot's tvterm terminal emulator built on the modern Turbo Vision port, which runs multiple Claude Code sessions in overlapping DOS-style windows on a blue desktop with a menu bar and status line. The tool tracks each session's state through Claude Code hooks — working (●), needs you (!), done (✓) or idle (○) — and adds workspaces, an Alt-0 Session List, F8 to jump to the next session needing attention, and desktop persistence to ~/.config/tvclaude/desktop that reopens windows with claude --resume. It is installable from source via git clone --recursive, cmake and a Release build.", "body_md": "Claude Code sessions in Turbo Vision windows: a blue DOS-style desktop with a menu bar, numbered overlapping windows and a status line, in the spirit of Turbo Pascal and Turbo C++.\n\ntvclaude is a fork of [tvterm](https://github.com/magiblot/tvterm) by\nmagiblot, a terminal emulator built on the modern\n[Turbo Vision](https://github.com/magiblot/tvision) port. The original tvterm\nREADME is in [README.tvterm.md](https://github.com/runvnc/tvclaude/blob/main/README.tvterm.md).\n\n- **Several Claude sessions at once** , each in its own window. Tile, cascade,\nzoom (F5), next (F6), close (Alt-F3), and Alt-1…9 to jump to a window.\n- **Session status at a glance.** Each session reports, through Claude Code\nhooks, whether it is working (●), needs you (!), is done (✓) or idle (○).\nThe window title shows it, the menu bar counts it, the**Session List** (Alt-0) lists every session, and**F8** jumps to the next one that needs you.\n- **Window names** : a Claude window is named after the folder Claude is\nworking in, and follows it when Claude`cd` s elsewhere. Session > Rename\ngives a window your own name (leave it empty to go back to the folder);\nthe name is saved with the desktop. After the name, the title shows what\nthe conversation is about, as /resume lists it (its /rename title, else\nClaude's own title, else the last prompt).\n- **Workspaces** : separate desktops of windows, e.g. one per project.\nWorkspace > New workspace names one and can start a Claude session in its\nfolder; F7 / Shift-F7 or the Workspace menu switch between them. Every\nsession keeps running while hidden; the Session List and F8 reach sessions\nin any workspace, and the menu bar shows the workspace on screen.\n- **Cascade that stays readable** : after Window > Cascade, bringing a window\nforward re-cascades in the new order, so every title bar stays in view.\nMoving or resizing a window by hand leaves cascade mode.\n- **New Claude session** (F3) asks for a folder and can continue the last\nconversation there.**New shell** opens a plain terminal window.\n- **Resume** (File > Resume) lists your 9 most recent Claude conversations\nby title, folder and age, from any project;**More sessions...** lists them\nall. Each opens in a new window with`claude --resume` , in its folder.\n- **Turbo colors inside the windows** : yellow text on dark blue, a matching\nClaude Code theme, and your own prompts drawn black on teal.\n- **The desktop comes back.** Like Turbo Pascal's`TURBO.DSK` , tvclaude\nsaves every workspace and window (folder, place, number and Claude\nconversation) to`~/.config/tvclaude/desktop` every few seconds and on exit. Started with\nno folders, it reopens them, each resuming its conversation with`claude --resume` .\n- **Detach and reattach** with[dtach](https://github.com/crigler/dtach) : run\nthe desktop under dtach, close the terminal, and every session keeps running.\n\n| Menu | Items | \n|---|---|\n| File | New Claude session (F3), Resume ▸, New shell, Export conversation, Change dir, DOS shell, Exit (Alt-X) | \n| Edit | Undo (rewind), Copy reply, Select text, Paste | \n| Session | Session list (Alt-0), Next needing you (F8), Rename, New conversation, Compact, Context, Review changes, New Claude session | \n| Options | Model, Permissions, Config | \n| Info | Usage, Stats | \n| Workspace | New workspace, Rename, Close workspace, Next (F7), Previous (Shift-F7), one entry per workspace | \n| Window | Tile, Tile rows, Cascade, Size/Move (Ctrl-F5), Zoom (F5), Next (F6), Previous (Shift-F6), Close (Alt-F3), Grab input | \n| Help | About, Claude status | \n\nThe Claude items (Export, Undo, Copy reply, New conversation, Compact, Context, Review changes, the Options and Info menus and Claude status) type their slash command, shown beside each, into the Claude window in front.\n\nF10 opens the menu bar. The desktop keeps these keys for itself; every other key goes to the session in the front window.\n\n```\ngit clone --recursive https://github.com/runvnc/tvclaude.git\ncd tvclaude\ncmake . -B ./build -DCMAKE_BUILD_TYPE=Release\ncmake --build ./build\n```\n\nRequirements: CMake, a C++14 compiler, `libncursesw`, optionally `libgpm`\n(Linux), Perl (for the bundled libvterm), and\n[Claude Code](https://code.claude.com) on your `PATH`.\n\n```\n./build/tvclaude                 # one Claude session in the current folder\n./build/tvclaude ~/a ~/b ~/c     # one session per folder, tiled\n```\n\nTo keep sessions running when the terminal closes:\n\n```\ndtach -A \"$XDG_RUNTIME_DIR/tvclaude.sock\" -r winch -z ./build/tvclaude\n```\n\nRun the same command again to reattach.\n\n- Each session runs `claude --settings '<json>' --plugin-dir plugin/` . The\nsettings select the`tvclaude` theme and add hooks that write the session's\nstate to a file under`$XDG_RUNTIME_DIR` ; tvclaude polls those files.\nNothing in your own Claude Code settings changes.\n- On start, tvclaude writes the theme to `~/.claude/themes/tvclaude.json` (Claude Code reads themes only from there).\n- `plugin/` is a small Claude Code plugin that draws your prompts black on\nteal while running inside tvclaude.\n- Sessions see `TURBOVISION=1` in their environment.\n\nMIT, as tvterm. See [COPYRIGHT](https://github.com/runvnc/tvclaude/blob/main/COPYRIGHT).", "url": "https://wpnews.pro/news/turbo-vision-style-ui-for-claude-code", "canonical_source": "https://github.com/runvnc/tvclaude", "published_at": "2026-11-14 17:18:14+00:00", "updated_at": "2026-11-14 17:53:20.549060+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-agents", "ai-products"], "entities": ["tvclaude", "runvnc", "Claude Code", "tvterm", "magiblot", "Turbo Vision", "dtach", "Anthropic"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/turbo-vision-style-ui-for-claude-code", "markdown": "https://wpnews.pro/news/turbo-vision-style-ui-for-claude-code.md", "text": "https://wpnews.pro/news/turbo-vision-style-ui-for-claude-code.txt", "jsonld": "https://wpnews.pro/news/turbo-vision-style-ui-for-claude-code.jsonld"}}