Sandbox
@tiann/hapi

Remote control for Claude Code and other agent sessions

HAPI runs official agent sessions and lets you control them from a web app, PWA, Telegram Mini App, or native phone app. It keeps the agent on the working machine and adds a relay, so you can approve requests, send commands, and resume the same session without restarting.

5,040 stars558 forksTypeScriptUpdated 7d ago
Who it's for

Builders who run Claude Code, Codex, Cursor Agent, or other supported agents and want to keep working from a phone or browser.

What it delivers

You can switch between local and remote control of the same agent session without losing context.

What it does

Remote session handoff

Move between local and remote control without restarting the session or losing context.

Mobile approvals

Approve agent requests from your phone instead of staying at your desk.

Terminal control from anywhere

Send commands to the working machine from the web app or phone.

Voice assistant

Talk to the agent hands-free through the built-in voice control.

Workspace browser

Browse allowed workspace subdirectories when started with `hapi runner start --workspace-root <path>`.

Encrypted relay

Use the relay path with WireGuard and TLS for end-to-end encryption.

How to get it

  1. 1Run
    npx @twsxtd/hapi hub --relay     # start hub with E2E encrypted relay
    npx @twsxtd/hapi                 # run claude code

README

HAPI

Run official Claude Code / Codex / Cursor Agent / Grok Build / OpenCode / Kimi / Copilot / Antigravity / Pi / DeepSeek Harness sessions and control them remotely through a Web / PWA / Telegram Mini App.

Why HAPI? HAPI is a local-first alternative to Happy. See Why Not Happy? for the key differences.

Features

  • Seamless Handoff - Work locally, switch to remote when needed, switch back anytime. No context loss, no session restart.
  • Native First - HAPI wraps your AI agent instead of replacing it. Same terminal, same experience, same muscle memory.
  • AFK Without Stopping - Step away from your desk? Approve AI requests from your phone with one tap.
  • Your AI, Your Choice - Claude Code, Codex, Cursor Agent, Grok Build, OpenCode, Kimi, Copilot, Antigravity, Pi, DeepSeek Harness—different agents, one unified workflow.
  • Terminal Anywhere - Run commands from your phone or browser, directly connected to the working machine.
  • Voice Control - Talk to your AI agent hands-free using the built-in voice assistant.
  • Workspace Browser - Opt-in via one or more hapi runner start --workspace-root <path> flags: browse scoped file trees from the web and start sessions in allowed subdirectories.

Demo

https://github.com/user-attachments/assets/38230353-94c6-4dbe-9c29-b2a2cc457546

Getting Started

npx @twsxtd/hapi hub --relay     # start hub with E2E encrypted relay
npx @twsxtd/hapi                 # run claude code

hapi server remains supported as an alias.

The terminal will display a URL and QR code. Scan the QR code with your phone or open the URL to access.

The relay uses WireGuard + TLS for end-to-end encryption. Your data is encrypted from your device to your machine.

For self-hosted options (Cloudflare Tunnel, Tailscale), see Installation

Docs

Native apps (iOS / Android)

Fully native SwiftUI and Kotlin Compose clients are in development under ios/ and android/. They pair with your hub by scanning the same terminal QR code as the web app, and follow the same protocol — see the client contract docs.

Build from source

Requires Bun 1.4.0.

bun install
bun run build:single-exe

Credits

HAPI means "哈皮" a Chinese transliteration of Happy. Great credit to the original project.

Files in the repo

Repository payload24 top-level entries
  • .github
  • android
  • assets
  • cli
  • docs
  • e2e
  • hub
  • ios
  • relay
  • scripts
  • shared
  • web
  • website
  • .gitignore
  • AGENTS.md
  • bun.lock
  • bunfig.toml
  • CONTRIBUTING.md
  • LICENSE
  • package.json
  • playwright.config.ts
  • README.md
  • SECURITY.md
  • tsconfig.base.json

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More tools

JuliusBrussee/
caveman

🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman

105k
1 add
MemPalace/
mempalace

The best-benchmarked open-source AI memory system. And it's free.

59k
stablyai/
orca

Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

66k

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

132k

Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors

64k
headroomlabs-ai/
headroom

Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.

71k