DEV Community

Cover image for I kept missing Claude Code's permission prompts, so I built a desktop around it
Fred 🍓
Fred 🍓

Posted on

I kept missing Claude Code's permission prompts, so I built a desktop around it

I usually have two or three Claude Code sessions open: a frontend, an API, sometimes a side project. And the most annoying thing wasn't the model or the cost. It was this:

One session finishes. Another one is working. And the third one has been sitting there for fifteen minutes, asking "Do you want to run npm test?" in a window I wasn't looking at.

So I built VibeDesk, a full-screen Windows desktop around the real Claude Code CLI.

The idea: one dot per session

Every session gets a short name in a dock and a colored dot:

  • green: Claude is working
  • yellow (pulsing): Claude is waiting for you
  • blue: done

That alone fixed most of my problem. I glance down, see a yellow dot, click it.

Permission prompts as cards

When Claude wants to run a command, VibeDesk shows a card with the command and four buttons: In terminal, Deny, Always, Allow. One click, and the session keeps going. No hunting for the right terminal.

The same card shows up on your phone if you pair it (6-digit code, local network by default). Your phone buzzes, you tap Allow from the kitchen.

A memory for each project

Claude Code forgets your project between sessions. VibeDesk gives every project a small "brain": Markdown notes with links between them (Obsidian-compatible) that Claude reads and writes through MCP. Decisions, pitfalls, conventions. New sessions start from there instead of exploring the whole repo again.

Claude can drive the desktop

VibeDesk also ships an MCP server for the desktop itself. In any session you can say "sort my windows", "zen mode on" or "tokyo scene with more rain", and Claude does it. It can even open your local dev server in the preview window after starting it.

How it's built

Electron, React, xterm.js with WebGL, node-pty. It doesn't replace or proxy anything: each terminal runs the normal claude command with your own Pro/Max plan or API key. MIT licensed, Windows 10/11, no telemetry.

And yes, most of the code was written by Claude Code itself, with me steering, testing and saying no a lot.

Try it

Windows SmartScreen will warn because the installer isn't signed yet ("More info" → "Run anyway").

VibeDesk 2.0 ships on November 1, and the most-upvoted wish on GitHub goes in. I'd love feedback from people who run several sessions in parallel: what would you want to see at a glance?

Top comments (1)

Collapse
 
autenai profile image
Auten •

Putting the permission card on the phone too is a nice touch. Most of my lost time is exactly that yellow-dot case.

To your question, from the Auten team (we build a computer-use MCP server, so our sessions click and type on the real screen): what I'd want at a glance is which session is currently driving the mouse and keyboard. Two sessions running a screen-control tool at once fight over focus, and a dot that says "this one holds the screen", plus a way to make the others wait, would save a lot of confusion.

A smaller one: how long each yellow dot has been waiting. Fifteen minutes vs fifteen seconds changes which one I click first.

Can the desktop MCP server see the other sessions' states, or only the windows and scenes?