close

DEV Community

김이더
김이더

Posted on

Happy — The Open-Source App That Puts Claude Code in Your Pocket

Code on GitHub. Live app at happy.engineering.
More posts at radarlog.kr.


I kicked off a refactoring job with Claude Code and went to grab lunch. Came back 20 minutes later. The terminal was sitting on a permission prompt. It had been doing nothing the entire time, just waiting for me to hit "yes."

If you use Claude Code, you've been there.

Happy solves this head-on. It's an open-source CLI wrapper that lets you control Claude Code from your phone. Over 17,000 GitHub stars, MIT licensed. But the first question everyone asks is the same one I had.

"Isn't this just Claude Cowork Dispatch?"

Short answer: completely different tools.

Dispatch vs Dispatch vs Happy

The word "Dispatch" shows up in at least three different contexts, and it's confusing. Let me untangle it.

First, there's Claude Cowork Dispatch — Anthropic's official feature announced in March 2026. You scan a QR code on your desktop, and your phone becomes a remote control for an AI agent. It connects with 38+ apps and is built for non-coding tasks: documents, emails, productivity tools. If you don't write code, this is your tool.

Then there's bassimeledath/dispatch — an open-source Claude Code skill. Type /dispatch and your main session becomes an orchestrator. Actual work fans out to background workers, each with a fresh context window. It's about making context windows 10x more efficient. Nothing to do with mobile.

And then there's Happy. It wraps Claude Code's CLI and lets you remote-control the terminal session itself from a mobile app or web browser.

Think of it this way. Cowork Dispatch is hiring an assistant. bassimeledath/dispatch is a team lead distributing tasks. Happy is putting your terminal in your pocket.

Zero overlap.

What Happy Actually Does

Installation:

npm install -g happy-coder
Enter fullscreen mode Exit fullscreen mode

That's it. Now type happy instead of claude.

# Before
claude

# After
happy

# Works with Codex too
happy codex
Enter fullscreen mode Exit fullscreen mode

Happy wraps the Claude Code process. Claude Code still runs locally — nothing changes there. But Happy encrypts the session's I/O and relays it through a server to your phone.

The architecture is three pieces. A CLI program on your machine starts and monitors Claude Code. A relay server passes encrypted blobs between devices. A mobile app decrypts and displays everything. The server only moves encrypted data around — it literally cannot read your code.

The encryption is solid. X25519 keypairs, ECDH key exchange, AES-256-GCM message encryption, ephemeral session keys for forward secrecy. If you're working with company code, this matters. Your code never exists in plaintext on anyone else's infrastructure.

Voice Coding — Skeptical Until I Wasn't

"Code with your voice" sounds like a gimmick. I thought so too. Dictating for (int i = 0; i < n; i++) into a microphone is obviously terrible.

But that's not what Happy's voice agent does.

It does exactly one thing: translates your rambling into structured requests that Claude Code can understand. You're not dictating code. You're saying things like "refactor the auth module to separate concerns" while walking your dog.

The docs make a good point. Sitting at your desk at 100% efficiency for zero hours beats walking around at 50% efficiency for three hours — wait, no. It's the other way around. 50% of three otherwise-wasted hours is infinitely more than 0% of them.

The voice agent prompts are customizable inside the app. No forking, no rebuilding. You can tune how it interprets your speech directly. That's practical.

For someone like me who runs UE5 builds that take ages, this means I can voice-control a Claude Code agent on a side project while waiting for shaders to compile. Build wait time just disappears.

Parallel Sessions and Why They Matter

Happy can run multiple Claude Code instances simultaneously. Frontend refactoring in one session, API test generation in another, infra work in a third. Switch between them on your phone.

Why this matters: Claude Code Max gives you unlimited tokens, but context contamination is real. Running five different tasks in one session means by task three, Claude is losing track of task one. Separate sessions keep each task in a clean context.

The bassimeledath/dispatch skill focuses on using context windows efficiently within a single session. Happy's multi-session approach physically isolates sessions so they don't interfere. Different strategy, complementary goals.

In practice, it looks like this. Session A runs a component refactoring. Session B generates missing tests. Both show up on your phone. A permission request comes in on Session A — you approve it while sipping coffee. Session B finishes — you review the output. Neither session knows the other exists.

Why Happy Won Over the Alternatives

Happy wasn't the first attempt at mobile Claude Code. CodeRemote, YoloCode, Omnara, Claudia, Conductor, Tonkotsu — they all tried. One user on X posted they'd tried every single one and Happy beat them all.

Three reasons, I think.

Open source means transparency. You can audit every line. No telemetry, no tracking. When you're piping company code through a tool, this is decisive. A closed-source app asking for terminal access to your codebase is a non-starter for most teams.

Self-hosting is straightforward. One Docker Compose file gives you PostgreSQL + Redis + Happy Server in about three minutes. Run it behind your company firewall and the relay server never touches the public internet.

services:
  happy-server:
    image: happy-server:latest
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgresql://postgres:postgres@postgres:5432/happy-server
      - REDIS_URL=redis://redis:6379
      - SEED=your-secure-seed
    depends_on:
      - postgres
      - redis
Enter fullscreen mode Exit fullscreen mode

And it's free. This alone beats everything else. When a free open-source tool is better than paid alternatives, the market corrects fast.

What's Still Missing

Being honest: Happy isn't perfect.

Cowork Dispatch integrates natively with 38+ apps. Happy is purely CLI terminal remote control. Sending Slack messages or editing Google Docs isn't what Happy does. That's Cowork Dispatch's territory.

The last official release (v1.4.0) was September 2025. The npm package rename and monorepo consolidation happened after that, but without formal release tags. Development continues on main, which is great for velocity but can be shaky for stability.

And there are edge cases. GitHub issues mention stdin-related crashes in background mode. The project is active — 1,500+ commits, 44 contributors — but it's community-driven, not backed by a company.

So What Should You Actually Use

Here's the decision tree.

You don't write code and want AI to automate documents, emails, and productivity tools → Claude Cowork Dispatch.

You want to maximize context efficiency within a single Claude Code session with parallel background workers → bassimeledath/dispatch skill.

You want to control your Claude Code terminal from anywhere with your phone → Happy.

These three aren't competing. They're different layers. You could even combine them: use Happy to access Claude Code from your phone, then run /dispatch inside that session to fan out work to background agents.

The real bottleneck in the AI coding agent era isn't model performance. It's whether you can control an already-running agent when you're not at your desk. Happy solves that with one CLI wrapper.

"We didn't need a better model. We needed a better remote."

Top comments (0)