General
What is HAPI?
What is HAPI?
HAPI is a local-first, self-hosted platform for running and controlling AI coding agents (Claude Code, Codex, Gemini, OpenCode) remotely. It lets you start coding sessions on your computer and monitor/control them from your phone.
What does HAPI stand for?
What does HAPI stand for?
HAPI (哈皮) is a Chinese transliteration of “Happy”, reflecting the project’s goal of making AI coding assistance a happier experience by freeing you from the terminal.
Is HAPI free?
Is HAPI free?
Yes, HAPI is open source and free to use under the AGPL-3.0-only license.
What AI agents does HAPI support?
What AI agents does HAPI support?
HAPI supports:
- Claude Code (recommended)
- OpenAI Codex
- Cursor Agent
- Google Gemini
- OpenCode
Setup & Installation
Do I need a hub?
Do I need a hub?
HAPI includes an embedded hub. Just run
hapi hub on your machine - no external hub required.hapi server remains supported as an alias.How do I access HAPI from my phone?
How do I access HAPI from my phone?
For local network access:For internet access:
- If the hub has a public IP, access it directly (use HTTPS via reverse proxy for production)
- If behind NAT, set up a tunnel (Cloudflare Tunnel, Tailscale, or use the built-in relay with
hapi hub --relay)
What's the access token for?
What's the access token for?
The
CLI_API_TOKEN is a shared secret that authenticates:- CLI connections to the hub
- Web app logins
- Telegram account binding
~/.hapi/settings.json.Do you support multiple accounts?
Do you support multiple accounts?
Yes. HAPI supports lightweight multi-account access via namespaces for shared team hubs. See the Namespace documentation for details.
Can I use HAPI without Telegram?
Can I use HAPI without Telegram?
Yes. Telegram is optional. You can use the web app directly in any browser or install it as a PWA.
Usage
How do I approve permissions remotely?
How do I approve permissions remotely?
- When your AI agent requests permission (e.g., to edit a file), you’ll see a notification
- Open HAPI on your phone
- Navigate to the active session
- Approve or deny the pending permission
How do I receive notifications?
How do I receive notifications?
HAPI supports two methods:
- PWA Push Notifications - Enable when prompted, works even when app is closed
- Telegram Bot - Set up a Telegram bot for instant notifications
PWA notifications work even when the app is closed on your device.
Can I start sessions remotely?
Can I start sessions remotely?
Yes, with runner mode:
- Run
hapi runner starton your computer - Your machine appears in the “Machines” list in the web app
- Tap to spawn new sessions from anywhere
How do I see what files were changed?
How do I see what files were changed?
In the session view, tap the “Files” tab to:
- Browse project files
- View git status
- See diffs of changed files
Can I send messages to the AI from my phone?
Can I send messages to the AI from my phone?
Yes. Open any session and use the chat interface to send messages directly to the AI agent.
Can I access a terminal remotely?
Can I access a terminal remotely?
Yes. Open a session in the web app and tap the Terminal tab for a remote shell.
How do I use voice control?
How do I use voice control?
Set
ELEVENLABS_API_KEY, open a session in the web app, and click the microphone button. See the Voice Assistant documentation for details.Security
Is my data safe?
Is my data safe?
Yes. HAPI is local-first:
- All data stays on your machine
- Nothing is uploaded to external servers
- The database is stored locally in
~/.hapi/
How secure is the token authentication?
How secure is the token authentication?
The auto-generated token is 256-bit (cryptographically secure). For external access, always use HTTPS via a tunnel.
Can others access my HAPI instance?
Can others access my HAPI instance?
Only if they have your access token. For additional security:
- Use a strong, unique token
- Always use HTTPS for external access
- Consider Tailscale for private networking
Comparison
HAPI vs Happy
HAPI vs Happy
| Aspect | Happy | HAPI |
|---|---|---|
| Design | Cloud-first | Local-first |
| Users | Multi-user | Single user |
| Deployment | Multiple services | Single binary |
| Data | Encrypted on server | Never leaves your machine |
HAPI vs running Claude Code directly
HAPI vs running Claude Code directly
| Feature | Claude Code | HAPI + Claude Code |
|---|---|---|
| Remote access | No | Yes |
| Mobile control | No | Yes |
| Permission approval | Terminal only | Phone/web |
| Session persistence | No | Yes |
| Multi-machine | Manual | Built-in |
Contributing
How can I contribute?
How can I contribute?
Visit the GitHub repository to:
- Report issues
- Submit pull requests
- Suggest features
Where do I report bugs?
Where do I report bugs?
Open an issue on GitHub Issues.