mirror of
https://github.com/wu736139669/hapi.git
synced 2026-11-09 01:51:39 +00:00
Consolidate CLI and server runtime directories from ~/.config/hapi/ (CLI) and ~/.hapi-server/ (Server) to a single ~/.hapi/ directory. Unify environment variables from HAPI_HOME_DIR (CLI) and HAPI_BOT_DATA_DIR (Server) to a single HAPI_HOME variable across both applications. Update all documentation and configuration references accordingly. Bump bun-types to 1.3.5.
79 lines
2.0 KiB
Markdown
79 lines
2.0 KiB
Markdown
# hapi
|
|
|
|
HAPI means "哈皮," a Chinese transliteration of [happy](https://github.com/slopus/happy), great credit to the original Happy project.
|
|
|
|
Run Claude Code / Codex / Coding Agent sessions locally and control them remotely through a Web / PWA / Telegram mini App.
|
|
|
|
## Quickstart (single executable)
|
|
|
|
1. Download the prebuilt `hapi` binary for your platform and put it on your PATH.
|
|
|
|
2. Start the server on a machine you control:
|
|
|
|
```bash
|
|
export TELEGRAM_BOT_TOKEN="..."
|
|
export ALLOWED_CHAT_IDS="12345678"
|
|
export CLI_API_TOKEN="shared-secret"
|
|
export WEBAPP_URL="https://your-domain.example" # required for Telegram Mini App
|
|
|
|
hapi server
|
|
```
|
|
|
|
3. If the server has no public IP, expose it over HTTPS:
|
|
- Cloudflare Tunnel docs: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/
|
|
- Tailscale docs: https://tailscale.com/kb/
|
|
- Telegram Mini Apps require HTTPS.
|
|
|
|
4. Run the CLI on the machine where you want sessions:
|
|
|
|
```bash
|
|
# If the server is not on localhost:3006
|
|
export HAPI_BOT_URL="https://your-domain.example"
|
|
|
|
hapi
|
|
```
|
|
|
|
The CLI will prompt for `CLI_API_TOKEN` and save it locally.
|
|
|
|
5. Open the UI:
|
|
- In Telegram, run `/app` in the bot chat.
|
|
- In a browser, open `WEBAPP_URL` and log in with `CLI_API_TOKEN`.
|
|
|
|
## CLI config file
|
|
You can store the token in `~/.hapi/settings.json` instead of an env var.
|
|
Environment variables take priority over the file.
|
|
|
|
Example:
|
|
```json
|
|
{
|
|
"cliApiToken": "shared-secret"
|
|
}
|
|
```
|
|
|
|
## Requirements
|
|
- Claude CLI installed and logged in (`claude` on PATH).
|
|
- A Telegram bot token from @BotFather (for Mini App access).
|
|
- Bun if building from source.
|
|
|
|
## Build from source
|
|
```bash
|
|
bun install
|
|
bun run build
|
|
```
|
|
|
|
Build a single binary with embedded web assets:
|
|
```bash
|
|
bun run build:single-exe
|
|
```
|
|
|
|
Build CLI-only binaries:
|
|
```bash
|
|
bun run build:cli:exe
|
|
bun run build:cli:exe:all
|
|
```
|
|
|
|
## Docs
|
|
- `cli/README.md` - CLI usage and config
|
|
- `server/README.md` - server setup and architecture
|
|
- `web/README.md` - web app behavior and dev workflow
|