self-hosted · for solo developers

Vibe coding,
on your terms.

Yours doesn't need to run in someone else's cloud. Kartā turns the ChatGPT plan you already pay for into a private coding agent on a server you own. ~$15/mo. Your code never leaves your disk. Every turn sandboxed.

Kartā cockpit, mid-session: agent reasoning streams live, PR view one click away

why bother

Three sharp opinions.

The hosted tools — Devin, zo.computer, Cursor's background agents — are real products. Pick one if you want zero setup and someone else's uptime to manage. Pick Kartā if any of these matter to you.

01 · privacy

Your code stays on your disk.

Tailscale-only. No public IP. Every secret encrypted at rest. Your repos live on a server you own — never a vendor's database, never a sandbox in someone else's data center.

02 · the unlock

You already own the agent.

Kartā runs on the ChatGPT plan you already pay for — Plus, Pro, Business, or Enterprise. No second AI subscription. The cockpit + the host: ~$15/mo on Hetzner, $0 → ~$60/mo on AWS Free Tier (≈3 months free), or €0 on a Raspberry Pi.

03 · ownership

One binary. Zero lock-in.

Walk away with your data any time — one command stops everything, your sessions and audit log stay on your disk. No SaaS contract, no hosted tenant to migrate out of, no "we're sunsetting that feature" notice on a Tuesday.

what it does

The actual cockpit, not a feature list.

Eight things that earn their pixels. Each one is the reason something else didn't quite fit your shape.

A session page mid-stream — agent commentary in chat bubbles, PR/Diagnostics tabs above
live worklog

Watch the agent think.

Every command, every file change, every reasoning step — streamed live as the agent writes them. Vibe coding, with receipts.

PR tab inside a session — title, branch, diff, checks, and Squash-and-merge dropdown, all inside the cockpit
PRs in-cockpit

Open. Review. Merge.

Click Open PR. The diff, bot reviews, and checks appear in the same page. Click Squash and merge. Done — no tab-hopping to GitHub mid-session.

Mobile home — clean composer, hamburger nav, slash chips
phone-first

Drive it from anywhere.

Deep-link any session, open it on your phone — the worklog picks up where the agent left off. Optional Telegram bridge: wire up your own bot and get pinged when long turns finish.

📲 indrasvat: [ 0:14 voice note ]

▸ whisper transcribed
"hey, also add a regression test for the
edge case I described earlier"


🪐 kartaa-bot: turn dispatched ✓
→ session 019de7…
voice → turn

Talk to it from the beach.

With the optional Telegram bridge wired up, send a voice note — it becomes a turn. Long prompts are faster spoken. Transcription happens on your server — your audio never leaves your tailnet.

Schedules tab — recurring task list, status counters, filter by repo
scheduled runs

Recurring agents, cron-shaped.

"Every Monday, open PRs for any dependency updates." Real agent sessions on cron, with overlap handling baked in. Telegram pings when each finishes.

Desktop tab inside a session — a real Linux desktop running a debugger UI, embedded in the cockpit
computer-use

A real Linux desktop, inside your session.

When the agent needs to test the UI it just built, a real Linux desktop sits inside the cockpit. A bundled browser-automation CLI lets it verify its own work, headlessly. No competitor ships this.

host · per-turn sandbox
turn starts
↳ docker run --runtime=runsc kartaa-session
✓ fresh container · gVisor kernel intercepts every syscall
rm -rf /home/ubuntu
↳ confined to container · host untouched
git push origin feature-x
✓ routed through bind-mounted token broker
turn completes
↳ container destroyed · disk + network state gone
sandboxed by default

Every turn, in a fresh sandbox.

Every prompt-to-completion cycle runs in a fresh gVisor-isolated container. A user-space kernel intercepts every syscall; when the turn ends, the container is destroyed. Always on, no toggle. Runaway scripts and malicious tool calls can't escape into your real workspace.

Sidebar search for "auth" — 10 matches in 43ms, highlighted snippets across yathaavat, nidhi, kartaa repos
instant search

Find any session, in 40ms.

Full-text across every title, every message, every turn — straight from the sidebar or ⌘K palette. Hit s to focus, type, see snippets with the match in context. It all runs on your box — your transcripts never leave the tailnet.

how it works · 30-sec version

Five boxes. That's it.

The only public-facing things are GitHub and OpenAI — both of which you already use. Kartā never serves a public IP. You reach the cockpit over your tailnet, which IS the firewall.

you
browser · phone · Telegram
your tailnet
the auth layer
your kartā server
AWS · Hetzner · Pi
github
your repos · the bot
+
openai
codex via your ChatGPT plan

three themes, one keystroke

Tuned, not templated.

Three carefully-paired dark palettes. Switch via the dots in the sidebar. Saved per device.

Midnight theme
midnight · default
Ember theme
ember · for late-night vibe
Moss theme
moss · forgiving on the eyes

vs the alternatives

Everyone's solving the same problem.

Different bets on who manages what. The honest, qualitative cut — pricing and feature parity in this space shifts monthly.

Kartā

your ChatGPT plan + ~$15/mo

  • uses the ChatGPT plan you already pay for
  • code stays on your disk · tailnet-only
  • every turn in a fresh gVisor sandbox
  • real Linux desktop in the cockpit
  • mobile-first · voice → turn via Telegram
  • three swappable themes, hand-tuned
  • walk away with one command

Devin

$500+/mo · hosted

  • zero setup time
  • full VM per session
  • Cognition manages uptime
  • GitLab / Bitbucket support
  • multi-user / SSO / teams
  • code lives in their cloud

zo.computer

subscription · browser sandbox

  • zero setup time
  • browser-accessible from anywhere
  • they manage uptime
  • vendor-managed sandbox
  • state lives in their cloud
  • session ends = sandbox resets

getting started

Two windows. ~30 minutes.

Plan to spend ~10 min collecting credentials in your browser, ~20 min watching the provisioning ladder run. The TUI walks you through every prereq in-line — no separate checklist. See the full install guide →

  • Hetzner EU-friendly. Just a VPS that works. Recommended for new users. ~$15/mo
  • AWS EC2 Already on AWS? $200 credits = ~3 months free. $0 → ~$60/mo
  • Raspberry Pi You have one at home. Want €0/month. €0
~/code · zsh
# 1. download the installer — picks your platform automatically $ open https://kartaa.pages.dev/getting-started/ # 2. mark it runnable, launch — full-screen TUI takes over $ chmod +x ~/Downloads/kartaa-install_* $ ~/Downloads/kartaa-install_* # 3. ~20 min of watching the worklog scroll… tailscale joined 11 systemd units enabled kartaa-doctor: all green # 4. it prints your URL. open it. $ → https://kartaa-<you>.<tailnet>.ts.net/
The agent runs on someone else's GPU. Everything else can run on a server you own.

— that's the whole bet