mirror of
https://github.com/wu736139669/hapi.git
synced 2026-08-05 06:24:37 +00:00
251b04ec2dc7f161e8e976953a26477ca57e0eeb
Codex elicitation requests from MCP use the 'message' field (from ElicitRequest schema), not 'command' or 'cwd'. Update the permission handler to extract and pass this field, and display it as the card subtitle with fallback to command.
HAPI
HAPI means "哈皮" a Chinese transliteration of Happy. Great credit to the original project.
Run Claude Code / Codex / Gemini sessions locally 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 with native Claude Code or Codex, switch to remote when needed, switch back anytime.
- AFK Without Stopping - Step away from your desk? Keep approving AI requests from your phone. HAPI pushes permission requests to Telegram or your browser—approve or deny with one tap.
- See What AI Sees - Browse project files and Git diffs directly in the web app. No SSH needed—just open the session and check what changed.
- Stay in the Loop - Real-time todo progress shows you exactly where AI is in a multi-step task. No more guessing if it's stuck or making progress.
- Your AI, Your Choice - Switch between Claude Code, Codex, and Gemini from the same interface. Different models for different tasks, one unified workflow.
- Terminal Anywhere - Need to run a quick command? Access a real terminal session from your phone or browser, directly connected to the working machine.
Getting Started
npx @twsxtd/hapi server # start the server locally
npx @twsxtd/hapi # run claude code
Open http://<server-ip>:3006 and login with the token, if you need to access it remotely, see Remote access
More options: Quick Start | Installation
Docs
Build from source
bun install
bun run build:single-exe
Languages
TypeScript
99.5%
CSS
0.2%
JavaScript
0.2%
HTML
0.1%