Skip to content
crymetrPublic

About

Lightweight Windows desktop shell for Claude Code: session tabs, live file tree with unread marks, usable app preview

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

CryDeck

A lightweight Windows desktop shell for Claude Code. Tabs of Claude sessions, a live file tree, and a preview pane where you can actually use what Claude builds.

Not an IDE. No editor, no LSP, no debugger, no extension host. Claude does the writing; CryDeck is where you watch, steer, and try the result. That omission is the entire reason it stays light (~250MB working set, single small binary).

CryDeck trailer

Watch the trailer with sound

CryDeck: Claude editing a project on the left, the resulting app running live in the preview pane

┌─ tabs: one Claude Code session per tab, each its own folder ────────┐
├──────────────┬──────────────────────────────┬──────────────────────┤
│ file tree    │ terminal (Claude Code TUI)   │ preview              │
│ live, unread │ real PTY via ConPTY          │ File | App | Feed    │
│ marks        │ pwsh 7 + predictions         │ live localhost apps  │
├──────────────┴──────────────────────────────┴──────────────────────┤
│ status: model | effort | context % | 5h/weekly limits | cost       │
└─────────────────────────────────────────────────────────────────────┘

Getting started (never used a terminal before? start here)

  1. Download CryDeck_x64-setup.exe from the latest release and run it. Windows SmartScreen may warn about an unknown publisher — choose "More info" → "Run anyway".
  2. First launch. CryDeck checks your machine. If Git or Claude Code are missing it offers to install them — click Install and watch it happen in a terminal tab (approve the Windows permission popup if one appears). The tab flows straight into Claude Code's login: you need a Claude account with a Pro or Max plan (https://claude.ai). Already have everything installed? You'll never see any of this.
  3. Make a projects folder. Anywhere you like, e.g. C:\Projects, with one subfolder per project (C:\Projects\my-first-app). A CryDeck tab = Claude working inside one such folder.
  4. Open a session. Click Open a folder, pick your project folder, and type what you want in plain words ("build me a page that tracks my expenses"). Claude writes the files; the tree on the left shows what it touched; the preview pane on the right runs the result.
  5. Updates are automatic. CryDeck checks for new versions on launch and asks before installing.

What it does

  • Zero-setup on a fresh PC. First launch installs PowerShell 7, Git, and Claude Code for you (winget or direct installers, run visibly in a tab) and flows into Claude's login. On a machine that already has them, you see none of it.
  • Tabs are sessions. One working directory + one Claude Code process per tab (cap 6), restored on relaunch with their conversations (each tab resumes its own session id, so several tabs on one folder stay separate). Sessions launch with Remote Control on, so your phone can pick any of them up. The tab dot is a four-state badge: blue working, amber done, red waiting on you (a permission or a question), or none when idle.
  • Orchestration — drive sessions from a session. A crydeck CLI on every session's PATH: crydeck spawn <folder> [prompt] opens a new session (and can seed its first message — this is how you open new work from your phone), crydeck list lists them, crydeck read <id> reads another session's recent output, crydeck send <id> <text> messages it. It's the Windows-native stand-in for Claude Code's cross-session messaging, over a loopback-only, token-authed gateway. See ROADMAP.md.
  • Remote Control tab (opt-in). A pinned 📡 tab runs claude remote-control so your phone or claude.ai/code can start brand-new sessions on this PC. It updates Claude Code first and restarts itself if it stops (About card ⓘ).
  • GitHub Copilot CLI, side by side. + copilot opens Copilot sessions in their own tabs (restored with their own conversation; GitHub Enterprise host set in the About card). With the bridge turned on, any session can ask Copilot a question headlessly: crydeck consult "question" prints Copilot's final answer (read-only unless --write, follow-ups with --session <id>), and crydeck spawn --copilot <folder> [prompt] opens a Copilot tab.
  • Keyboard palettes. Ctrl+Shift+P fuzzy file finder, Ctrl+Shift+F search in files (git grep), Ctrl+Shift+E open the folder in VS Code, Ctrl+Shift+K a saved-prompt library. The finders insert @path into the session so you can reference files to Claude. Ctrl+Shift+* on purpose, so shell readline keys stay untouched.
  • Desktop notifications. When a background session goes quiet or rings for you, CryDeck raises a notification, so you can look away and get pulled back.
  • Start with Windows (on by default, toggle in the About card) and one-click signed auto-update from GitHub Releases.
  • The tree is live and knows what Claude touched. Files Claude edits glow amber; open one and it turns green (seen); a re-edit flips it back; blue dots mark uncommitted git changes. Powered by Claude Code's own hook events, not filesystem guessing. The watcher tracks only the root + expanded folders, so a tab on a huge parent dir is cheap, and a project folder Claude scaffolds appears the moment it lands.
  • Preview pane, three modes. File: read-only viewer (code, rendered markdown, images) with a Content|Diff switch; files Claude just changed default to the diff. App: a real embedded webview with page tabs; the first dev server the session starts loads automatically and stays alive across tab switches; selecting an HTML file renders it as a page (file://, auto by default, toggleable). Feed: everything Claude produced, newest first. Review: a supervision queue grouping edits under the prompt that caused them, with unreviewed counts and per-task sign-off.
  • Point at things, literally. Element select (🎯): click any element in the running app and its selector, text and position are typed into Claude's prompt. Annotations (✏️): draw numbered boxes on the page, hit Send, and Claude gets the coordinates plus a screenshot with your boxes on it.
  • Extra terminals (⌨): up to three plain pwsh terminals per session in a strip under the preview.
  • Auto-continue after rate limits. Right-click a tab and schedule a continue for one minute after the limit resets (CryDeck knows the reset time from the statusLine hook) or any custom delay. Always set by you, never automatic; countdown in the status bar.
  • OS integration. Double-click opens files in their default app (docx to Word, xlsx to Excel) and folders in Explorer. Right-click a folder to spin it up as a new session.
  • Status bar from Claude Code's statusLine hook: model, effort, context %, 5h/weekly rate limits, session cost. The Claude TUI status line inside the terminal shows a compact version of the same.

How the hook wiring works (please read before installing)

On first launch CryDeck merges its entries into ~/.claude/settings.json: a statusLine command, a PostToolUse hook, a UserPromptSubmit hook (the review queue's task boundaries), and SessionStart / Notification / Stop / SessionEnd hooks (tab state: working, done, waiting on you, exited). Each is a single direct curl.exe call to a loopback-only gateway (fixed port range 48620-48639, per-install token). Your original settings file is backed up once as settings.json.pre-cockpit; an existing statusLine you wrote yourself is never replaced; entries are never duplicated. Outside CryDeck the hooks fail in milliseconds (connection refused) and Claude carries on unaffected. Each command also carries &tab=$COCKPIT_TAB_ID (set per tab) so events land on the exact tab whose shell started that Claude; a shell that doesn't expand the variable just falls back to session-id + folder matching.

Why not --settings? Claude Code on Windows executes hook commands through git-bash and does not trust hooks from flag-supplied settings files. The shell-agnostic single-line curl form is the only shape that survives cmd, bash and PowerShell alike. The scars are documented in PLAN.md.

Requirements

  • Windows 11 (WebView2, ConPTY)
  • A Claude account (Pro or Max plan) for the login
  • Claude Code and Git — installed for you on first launch if missing (official installer / winget, run visibly in a terminal tab)
  • PowerShell 7 (pwsh) recommended for inline prediction ghost text; falls back to Windows PowerShell

Build from source (developers)

Users should just grab the installer; this is for hacking on CryDeck itself. Needs Rust (MSVC toolchain) + pnpm.

pnpm install
pnpm tauri build --no-bundle
# binary lands in src-tauri/target/release/

Run it bare, or pass a folder to open a session there:

crydeck.exe C:\dev\myproject

Dev mode: pnpm tauri dev. Always build releases through the Tauri CLI — a raw cargo build produces a binary that points at a dev server that is not running (PLAN.md, Phase 0 defect 4).

Known limitations

  • Windows-only by design (ConPTY, cmd/Explorer integration).
  • Closing a tab kills its whole process tree via a kill-on-close Job Object — that's the leak protection. The conversation itself survives: the tab resumes it by session id on next launch.
  • A session's shell is pwsh (or Windows PowerShell); Claude launches automatically in each new tab.

License

MIT

About

Lightweight Windows desktop shell for Claude Code: session tabs, live file tree with unread marks, usable app preview

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages