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.
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.
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.
/auth is returning 500sroutes/auth.ts… the JWT verify fails when the token claims field is missing. I need to check the test fixtures.One install command on your laptop. One app on your phone. Same flow powers both pillars.
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
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.
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.
Cross-cutting features that work the same whether you’re using permission control, Remote AI Chat, or both.
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.
Optional HMAC-CTR stream cipher with PBKDF2 key derivation. Tool inputs encrypt on your machine; the server only sees ciphertext. Stdlib-only, zero deps.
Every request, every decision, every edit — timestamped and searchable. Filter by tool type, export as CSV or JSON, all from the app.
Pending-count widget for iOS (WidgetKit) and Android (AppWidgetProvider). Glance at your lock screen to see what’s waiting — tap to jump straight in.
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.
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.
None of this is bolt-on. Each layer matches a specific attack you might worry about.
iOS and Android clients pin to ISRG Roots X1 + X2 for promptbeat.online. Rogue CAs can’t MITM you.
Pending approvals die after 2 minutes; the hook receives a clean deny. Stale prompts can’t come back to bite you a day later.
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.
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.
# 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.
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.
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.
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.
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.
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.
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.
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.
Five locales: English, Spanish, French, German, and Japanese — about 120 strings each.
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.
The PromptBeat app is launching on the App Store and Google Play. Download it the day it lands — no account, no email, no waitlist.
Direct line to the developer. Replies usually come within a few days. No tracking, no account needed.