[CC]
All posts
·4 min read

Why I Built a Desktop App for Claude Code — Then Killed It

I spent weeks building a Tauri + React GUI to make Claude Code accessible to non-developers. Here's what happened, what I learned, and why I stopped.

claude-codedesktop-apptauripost-mortem

I sell Claude Code orchestration templates — bundles of agents, skills, and hooks that turn Claude Code into a multi-agent dev team. A few weeks ago, I started building a desktop app called CC Desktop: a GUI wrapper for Claude Code, so people who aren't comfortable with the terminal could use it too.

I just killed the project. Here's the full story.

The idea

Claude Code is powerful, but it runs in the terminal. That's fine for developers. But I kept thinking about people who aren't developers — designers, PMs, small business owners — who could benefit from Claude Code but won't touch a terminal.

The idea was simple: build a desktop app (Tauri + React) that wraps claude -p in a nice chat interface. No terminal required. Pick a project folder, type a message, get work done.

What I built

Over about 3 weeks, CC Desktop got to a working state:

  • Tauri v2 + React 19 + TypeScript — cross-platform desktop app
  • Chat UI with markdown rendering, syntax highlighting, code copy
  • Project management — open folders, create new projects, recent projects list
  • Auto-discovery — scans .claude/agents/ and .claude/skills/ in any project and shows them in a sidebar
  • Slash command palette — type / and see available skills from the project
  • Permission dialog — approve or deny tool calls from Claude
  • Auto-approve toggle — let Claude work freely without interrupting
  • Onboarding wizard — 4-step setup for first-time users
  • i18n — Korean and English language support
  • Light/dark theme

It worked. You could open a folder, send a message, and Claude would respond. Skills from templates showed up automatically.

What went wrong

1. Performance was terrible

CC Desktop spawns claude -p as a child process. This is the fundamental architecture problem.

If you're already running Claude Code in a terminal (which developers do), now you have two Claude Code processes fighting for resources. The numbers from GitHub issues confirm this isn't just my machine:

The official Claude Code Desktop avoids this by integrating the engine natively — no subprocess. I couldn't do that. The CLI is the only public interface.

2. Anthropic shipped the same thing — but better

While I was building CC Desktop, Anthropic released two products that made it unnecessary:

Claude Code Desktop — an official GUI with visual diffs, parallel sessions, live app preview, PR monitoring, and GitHub integration. Free with Pro/Max subscription. Native engine integration, no subprocess overhead.

Claude Cowork (January 2026) — described as "Claude Code without the code." Chat-based file operations for non-technical users. Exactly the audience I was targeting.

Both are free. Both are better resourced. Both solve the problem more fundamentally than wrapping a CLI.

3. The market was already crowded

I knew about Opcode (20K+ GitHub stars, same Tauri + React stack, free and open source). What I didn't fully appreciate was how many others existed — Codexia, CodePilot, Claude Code WebUI, Yume, CC Switch. All free, all open source, all targeting the same audience.

I was building yet another Claude Code GUI in a market that already had too many.

What I'd do differently

Research the competitive landscape before writing code. I checked Opcode and thought "I can differentiate with template integration." I didn't check what Anthropic was building. I didn't count how many open-source alternatives existed. I started coding too fast.

Question the architecture earlier. The subprocess approach (claude -p) has documented resource problems. I could have found the GitHub issues in 10 minutes of searching. Instead I discovered the performance problem after weeks of building UI features.

Be honest about the moat. A GUI wrapper over a CLI is not a defensible product. Anyone can build it. The CLI owner (Anthropic) will always build a better one because they control the engine.

What's still there

The code is on GitHub. It's a working Tauri + React app with chat, project management, agent/skill discovery, i18n, and onboarding. If someone finds it useful as a reference or starting point, great.

One thing CC Desktop did that the official tools don't: **auto-discover agents and skills from .claude/ and show them in a sidebar**. The official Claude Code Desktop doesn't support agent teams or multi-agent orchestration — that's still CLI-only. If that changes, the last reason for CC Desktop to exist disappears entirely.


If you're thinking about building a GUI wrapper for an AI CLI tool: check what the CLI maker is building first. If they're shipping their own GUI, your wrapper has a short shelf life.

Try it yourself

Get a pre-built agent team and start orchestrating Claude Code in minutes — no setup from scratch.