DEV Community

Cover image for I built a mobile app to control Claude Code and Codex from my phone
K9i - Kota Hayashi
K9i - Kota Hayashi

Posted on

I built a mobile app to control Claude Code and Codex from my phone

I use Claude Code and Codex CLI for most of my side projects. The problem? Every time the agent needs approval or finishes a task, I have to walk over to my Mac. That's fine during work hours, but on weekends I just want to kick things off from the couch and check in from my phone.

There are terminal-sharing approaches and Claude Code now has /remote-control, but none of them felt right on a phone screen. So I built my own: CC Pocket — a mobile app designed specifically for controlling AI coding agents remotely.

CC Pocket overview

What makes it useful

Approve tool calls without opening a session

The #1 thing you do when monitoring Claude Code from your phone is tap "approve." CC Pocket puts the approval UI right on the session list — no need to open individual sessions. Running 3 agents in parallel? Just scroll and tap.

Approval UI on session list

Spin up new sessions from your phone

You're not limited to resuming sessions from your Mac. Pick a project, choose a permission mode and model, and go. You can even create a git worktree at session start — branch, worktree, and session, all without touching your laptop.

New session screen

Prompt input that doesn't suck on mobile

I spent a lot of time on this because phone keyboards + long prompts = pain. Here's what I built:

  • / command completion — Tap / to get an overlay of all available slash commands
  • @ file mentions — Browse and insert file paths instead of typing them
  • Bullet list mode — Auto-inserts - on newline with indent/dedent buttons. Handy for markdown-style prompts
  • Prompt history — Saved to SQLite, searchable by frequency or favorites. Stop retyping the same instructions

Rich prompt input

Name your sessions

Claude Code's session list shows IDs, which are useless for finding anything later. CC Pocket hooks into the CLI's /rename command so you can name sessions. Filter by named sessions only to quickly find the ones that matter.

Diff viewer (with image diffs!)

Review what the agent changed, right on your phone. Text diffs show in unified format with add/delete highlighting. Image diffs get three modes:

  • Side by side — Before and after, next to each other
  • Slider — Drag a divider across the image
  • Overlay — Adjust opacity to layer before/after

You can also select specific hunks and attach them to the chat — great for saying "change this part like so."

Diff viewer

Built with itself

Once CC Pocket could control Claude Code, I started developing CC Pocket through CC Pocket. The feedback loop is tight — I hit a UX annoyance, fix it through the app, and the fix ships in the same session. Dogfooding at its finest.

Architecture

Phone (CC Pocket) ←WebSocket→ Bridge Server (Mac) ←stdio→ Claude Code / Codex CLI
Enter fullscreen mode Exit fullscreen mode

CC Pocket talks to a lightweight bridge server on your Mac that manages agent processes via the Claude Code SDK and Codex CLI.

Setup (< 5 min)

1. Network: Your Mac and phone need to be reachable. Same Wi-Fi works. For anywhere-access, Tailscale is the easiest option — one-click mesh VPN, no port forwarding.

2. Bridge server: One command:

npx @ccpocket/bridge@latest
Enter fullscreen mode Exit fullscreen mode

It shows a QR code with connection details.

Bridge startup

Tip: Set BRIDGE_DEMO_MODE=true to strip sensitive info from the QR code — useful for screenshots and demos.

3. Connect: Scan the QR code from CC Pocket's launch screen. Then either tap + for a new session or pick one from your Mac's session history.

Launch and first connection

Install

Available on both stores:

The project is fully open source:

GitHub logo K9i-0 / ccpocket

Mobile client for Claude Code and Codex — control coding agents from your phone via WebSocket bridge

ccpocket

Mobile client for Claude Code and Codex. Remote control coding AI on your mac from your phone via a WebSocket bridge server.

日本語版 README

ccpocket screenshots

Features

  • Start Sessions from Your Phone — Launch new coding sessions directly from mobile — no desktop needed
  • Batch Approval — View all pending approvals across sessions and handle them at a glance
  • Mobile-Optimized UI — Answer questions, approve tools, and respond to agents with a UI built for touch
  • Rich Prompts — Write with Markdown formatting, bullet lists with auto-complete, and attach images from clipboard or gallery
  • Session Organization — Name your sessions and organize by project for easy navigation
  • Diff Viewer — Review every code change with syntax-highlighted diffs in one place
  • Real-Time Streaming — Watch your agent think and code live with streaming responses
  • Push Notifications — Get notified when your agent needs approval or completes a task
  • Machine Management — Register…




Tech Stack

Component Tech
Mobile app Flutter (Dart), BLoC, SQLite, FCM
Bridge server TypeScript, Node.js, WebSocket, @anthropic-ai/claude-agent-sdk, @openai/codex-sdk
Networking Tailscale / local Wi-Fi, mDNS auto-discovery

Try it out

If you use Claude Code or Codex for side projects, give it a spin. Approve tool calls from bed, start sessions from a coffee shop, review diffs on the train. Your Mac doesn't need you sitting in front of it.

Feedback, issues, and PRs are welcome on GitHub. And if you find it useful, a star goes a long way.


Now if only Apple would make an iPhone Fold so I could see more code on this screen...

Top comments (0)