For Claude Code, Codex, Gemini & Copilot CLI

Code with AI.
From your phone, end to end.

Approve every tool call your laptop’s agent fires — under 2 seconds, biometric every time. Or skip the laptop entirely and drive Claude Code, Codex, or Gemini from your phone with streaming responses and a real terminal underneath.

60-second setup Free, iOS & Android Optional E2E encryption
9:41
PromptBeat — 3 pending
Claude Code just now
git push origin main
Deny
Allow
Codex 2s ago
rm -rf ./build
Deny
Allow
Gemini 4s ago
npm install lodash
Deny
Allow

Built for the AI agents you already use

Pillar 1 — Permission control

Every tool call. On your phone. In under 2 seconds.

A tiny Python hook sits in front of your AI agent. The instant it tries to run a shell command, write a file, or fetch a URL, the request hits PromptBeat’s server and arrives on your phone over WebSocket plus push.

  • Biometric on every decision. Face ID or Touch ID gates Allow, Deny, and Edit — even if the phone is unlocked.
  • Edit before approve. Rewrite the command or file content before letting it run. Optional custom deny message goes back to the agent verbatim.
  • Approve once, by session, or forever. Long-press the Session button for a pattern picker (exact / prefix / tool-wide). Or build durable rules with regex, glob, rate limits, and 8 built-in templates.
  • Pending requests auto-expire in 2 minutes. Stale approvals can’t come back to bite you, and the agent gets a clean deny back if you’re offline.
9:41
PromptBeat — 3 pending
Claude Code just now
git push origin main
Deny
Allow
Codex 2s ago
rm -rf ./build
Deny
Allow
Gemini 4s ago
npm install lodash
Deny
Allow
Pillar 2 — Remote AI Chat

Drive a full Claude Code session from a couch.

A small background agent runs on your machine and connects to PromptBeat over WebSocket. From your phone, you pick a project directory, type a prompt, and watch your AI tool run on your laptop with real terminal output streaming back live. Stop tethering yourself to a desk.

  • Real PTY underneath. Not a pipe wrapper — a full pseudo-terminal. Colors, resize, and interactive prompts behave exactly like they would on your laptop.
  • Project-aware, multi-session. Pick any directory; the agent runs in context. Run several conversations in parallel — one debugging API code, another writing tests.
  • Voice input. Tap the mic, talk to your agent. Useful when you’re away from a keyboard but the bug isn’t.
  • Inline approvals during chat. When your agent fires a tool call mid-conversation, the approval card renders right in the chat thread. Resolve it, the stream picks back up. Background the app and it pushes a notification instead.
9:41
Claude Code ~/projects/api
Live
Find why /auth is returning 500s
Looking at routes/auth.ts… the JWT verify fails when the token claims field is missing. I need to check the test fixtures.
Tool call · awaiting approval
grep -rn "claims" tests/fixtures/
Deny
Allow
Ask Claude…

Three pieces. Sixty seconds to set up.

One install command on your laptop. One app on your phone. Same flow powers both pillars.

1

Install the hook

One curl command. The installer detects Claude Code, Codex, Gemini, and Copilot CLI on your machine, wires up the hooks, and (optionally) starts the local agent that powers Remote AI Chat.

curl -sS https://promptbeat.online/public/promptbeat-installer.sh | bash
2

Pair your phone

Run promptbeat-agent install — a QR appears in your terminal. Scan it from the app. An API key gets minted, tagged to your machine’s hostname, and revocable from Settings any time.

3

Get back to work

Run your agent on the laptop and approve from your phone. Or open the PromptBeat app, hit New chat, and drive your agent from your phone instead.

Plus everything else you’d expect.

Cross-cutting features that work the same whether you’re using permission control, Remote AI Chat, or both.

Smart rule engine

Auto-approve or auto-deny by pattern (contains, glob, regex). Priorities, rate limits, 8 built-in templates. Rules evaluate at intake — auto-resolved requests never broadcast.

End-to-end encryption

Optional HMAC-CTR stream cipher with PBKDF2 key derivation. Tool inputs encrypt on your machine; the server only sees ciphertext. Stdlib-only, zero deps.

Audit log

Every request, every decision, every edit — timestamped and searchable. Filter by tool type, export as CSV or JSON, all from the app.

Home-screen widget

Pending-count widget for iOS (WidgetKit) and Android (AppWidgetProvider). Glance at your lock screen to see what’s waiting — tap to jump straight in.

Multi-device pairing

Pair iPhone, iPad, and an Android phone to the same account. See your devices in Settings, swipe to revoke any one of them. Per-device JWT, refresh-rotated, force-invalidated on password reset.

Webhooks & integrations

Wire approvals into Slack, Discord, or any HTTPS endpoint. Retry queue with exponential backoff (30s → 2h, 5 attempts max). Use it to log high-risk approvals to a team channel without compromising your phone-first flow.

Security is the whole product.

None of this is bolt-on. Each layer matches a specific attack you might worry about.

TLS pinned to ISRG

iOS and Android clients pin to ISRG Roots X1 + X2 for promptbeat.online. Rogue CAs can’t MITM you.

120-second expiry

Pending approvals die after 2 minutes; the hook receives a clean deny. Stale prompts can’t come back to bite you a day later.

Per-machine API keys

Each laptop gets its own pb_ key, tagged to its hostname, hashed at rest, swipe-to-revoke from the app. Lose a laptop? Revoke and you’re done.

HMAC-signed responses

Hook polling responses are HMAC-SHA256 signed with the bearer key. A network attacker on a self-hosted http:// deploy still can’t forge an Allow.

One command on your laptop. That’s the whole setup.

~ — bash
# 1. Install the hook
curl -sS https://promptbeat.online/public/promptbeat-installer.sh | bash

# 2. Open the PromptBeat app on your phone, scan the pairing QR.
# 3. Run your agent. Approvals land on your phone.

Common questions

What’s the difference between the two pillars?

Permission control is for when you’re running an AI agent on your laptop and want a checkpoint before every dangerous tool call — the agent runs on your machine, the approvals come to your phone. Remote AI Chat is for when you’re away from your machine entirely and want to drive the agent from your phone — the agent still runs on your laptop in a real PTY, but the conversation is on your phone. The same app, the same audit log, the same hooks. Use whichever fits the moment.

Which AI agents are supported?

Claude Code (Anthropic), OpenAI Codex CLI, Google Gemini CLI, and GitHub Copilot CLI — for both pillars. Each connects through a small Python hook that ships with the installer; the Codex integration uses a JSON-RPC wrapper. No patching, no monkey-patching.

How does Remote AI Chat actually work?

A small Python agent runs on your laptop and connects to the PromptBeat server over WebSocket. When you start a chat from your phone, the agent spawns Claude Code (or Codex / Gemini / Copilot CLI) inside a real pseudo-terminal in the project directory you picked. Output streams to your phone live. Tool calls fire the same permission hooks as before, so approvals show up inline in the chat thread — the conversation pauses, you tap Allow, the stream picks back up.

Does my laptop need to stay awake for Remote AI Chat?

The local agent automatically asserts a sleep-prevention assertion (macOS IOPMAssertion, Linux logind Inhibit, Windows SetThreadExecutionState) for the duration of an active session. It respects lid-close and skips on battery by default — flip keepalive_on_battery if you want it on the road. When the session ends, the assertion releases.

Is it really free?

Yes — the core product is free for solo developers. No subscription, no usage cap, no team-tier upsell. The hosted service on promptbeat.online is free for as long as it stays small enough to run on a single tiny VPS. To support ongoing development we may introduce third-party advertising on the website or inside the apps in the future; if that happens, the privacy policy is updated with the specifics first.

What can the server actually see?

By default it sees the tool name and arguments so they can render on your phone — that’s how the approval card works. With optional HMAC-CTR end-to-end encryption enabled (a shared key derived via PBKDF2), the arguments are encrypted on your machine before transmission. The server only sees ciphertext; only your phone can decrypt. Chat messages are stored for session continuity but can be deleted from the app any time.

What happens if my phone goes offline?

Permission requests auto-expire after 2 minutes; the hook returns a clean deny so nothing executes silently. Chat sessions hold open for 30 minutes of inactivity before the local agent reaps them. Decisions you queued offline flush automatically when the app reconnects.

What languages is the app available in?

Five locales: English, Spanish, French, German, and Japanese — about 120 strings each.

Where do I sign up?

Account creation lives inside the iOS and Android app — there’s no web portal. Download the app and pick one of three options: Continue with Google, Continue with Apple (iOS), or classic email + password. Then run the laptop installer. Total setup is about a minute.

Ready to take back control?

The PromptBeat app is launching on the App Store and Google Play. Download it the day it lands — no account, no email, no waitlist.

Tell us what’s broken — or what to build next.

Direct line to the developer. Replies usually come within a few days. No tracking, no account needed.

Feedback