# Run Claude, Codex, and Gemini in One Unified Desktop App

> Source: <https://dev.to/davekurian/run-claude-codex-and-gemini-in-one-unified-desktop-app-2jl1>
> Published: 2026-08-03 09:05:07+00:00

Running Claude Code in one window, Codex in another, and the Gemini CLI in a third is fine until the third concurrent session. Then it's not fine. Each agent wants its own working directory, its own auth, its own scrollback, and its own opinion about which model card you should be reading. Patapim, shipped last week on [BetaList](https://betalist.com/startups/patapim), is the first desktop app I've seen that admits the multi-agent workflow is the workflow — and organises around it instead of apologising for it.

That is the right call, and the rest of this post is why, plus how to actually use it today.

The naive version is: open three Terminal tabs, paste the same prompt into each, read three streams of output. The first time it works. The fifth time it doesn't, because:

`cd`

into a project, run `claude`

, and the next tab still thinks it lives in `~/`

. State doesn't share.`--resume`

flag works, Codex's session id works, Gemini CLI's checkpoint works, and none of them agree on what "resume" means.That last one is the real productivity leak. You tab back, the agent's been idle for 20 minutes waiting for a yes/no, and the rest of the day slides.

Patapim wraps the three CLIs in a desktop app with project organisation at the root. That's the headline feature, and the only one that matters until you've used it. Each project gets its own workspace, its own embedded terminal running the real `claude`

/ `codex`

/ `gemini`

binary — not a reimplementation, not a webview pretending — and its own session history.

Per the [launch post](https://betalist.com/startups/patapim), the rest of the surface area is:

Every one of those is a thing you'd otherwise glue together with tmux, a VNC viewer, a Tailscale funnel, and a custom Telegram bot. Patapim bundles them under one binary.

[[DIAGRAM: Patapim project cockpit with three embedded terminals running Claude, Codex, and Gemini side by side; a phone pinging the user with a tap-to-resume prompt; Telegram and WhatsApp bots reaching the same notification surface]]

The download is Windows + macOS only — no Linux build yet. The free tier gets you the project cockpit and the three CLI integrations; Pro adds the remote-control surface and the bots.

```
# 1. Pull the app from the official site (linked from the BetaList page).
#    Install like any signed macOS / Windows app.

# 2. Point Patapim at your existing CLIs. It shells out to the real binaries,
#    so the auth you already have keeps working:
which claude      # Claude Code CLI
which codex       # OpenAI Codex CLI
which gemini      # Gemini CLI

# 3. Each project in Patapim maps to a directory. Pick the root:
mkdir ~/work/payments-svc && cd ~/work/payments-svc
git init
# Inside the Patapim project, point the workspace at this folder.

# 4. Inside the embedded terminal, run any of the three natively:
claude   "refactor the charge handler to use the new error type"
codex    "write a migration for the schema in db/schema.sql"
gemini   "diff these two files and propose a test plan"
```

The killer detail is that Patapim doesn't proxy or wrap the API. Your tokens stay with Anthropic, OpenAI, and Google. You're paying your existing subscriptions, not a Patapim markup. Pro is $6.99/mo or $59.99 lifetime — flat, predictable, no per-token meter on top of what the model vendor already charges.

The tap-to-resume phone flow is the single feature that justifies the download for anyone who runs agents unattended. The pattern it solves: you kick off a long-running refactor at 5pm, you leave the desk, the agent hits an ambiguity at 5:12, and for the next three hours it's been staring at a `Y/n`

prompt it can't answer.

With Patapim, that prompt lands on your phone. You tap. The desktop resumes the same session. You never lost context. You never opened a laptop. The on-device voice dictation is the second-best thing in the same category — useful when you're pair-debugging with an agent and don't want to type a 200-word prompt about why the migration is wrong.

This is the bit Cursor and Claude Code can't do, because they're already inside your editor; the moment you close the editor, the agent loses its seam to the rest of your life. Patapim makes the agent a first-class citizen of your devices, not a tab.

Here's the part that doesn't change when the agent harness changes. Patapim manages the conversation loop. It doesn't — and shouldn't — own the components your agent is producing. The UI primitives the agent builds against — the same `Card`

on web, iOS, and Android; the same theme tokens; the same auth-gated route — are a separate concern. They outlive the agent wrapper. They outlive the model.

That's where a cross-platform component kit earns its place: the agent can drop a `<DataTable>`

and know it'll render identically in a Next.js route and inside an Expo screen, because the API surface is one and the same. Patapim is the cockpit. The components are the airframe. You want both, and neither replaces the other.

The mistake to avoid is conflating the two. The minute your agent starts hand-rolling `div`

soup because the harness doesn't know what a `Card`

is, you're back in bespoke-UI territory and the cross-platform story is dead. The agent harness and the design system have to ship together, even if they ship from different repos.

Two things, neither of which the launch post claims:

Neither of those blocks adoption today. The project cockpit, the three CLIs in one window, and the phone remote are already a clear win over three terminals and a prayer. Patapim is a wrapper, and wrappers earn their place when they remove a real piece of glue. This one does.
