mirror of
https://github.com/wu736139669/hapi.git
synced 2026-08-05 06:24:37 +00:00
Migrate HAPI CLI from npm-based distribution to Bun single-executable format: - Remove npm bin wrappers (bin/happy.mjs, bin/happy-mcp.mjs) - Simplify package.json: remove npm publish config (exports, main, module, types, files, publishConfig) - Update bin entry to point to TypeScript source (src/index.ts) - Migrate shebang from Node to Bun (#!/usr/bin/env bun) - Simplify build scripts: remove npm-specific steps (pkgroll, prepublishOnly, release-it) - Update spawnHappyCLI to support compiled binaries and development TypeScript mode - Update daemon/doctor diagnostics for new process detection logic - Production: use `bun build --compile` for single-executable releases - Development: run TypeScript directly via `bun src/index.ts` or `tsx src/index.ts`
hapi CLI
Run Claude Code or Codex sessions from your terminal and control them remotely through the hapi server.
What it does
- Starts Claude Code sessions and registers them with hapi-server.
- Starts Codex mode for OpenAI-based sessions.
- Provides an MCP stdio bridge for external tools.
- Manages a background daemon for long-running sessions.
- Includes diagnostics and auth helpers.
Typical flow
- Start the server and set env vars (see ../server/README.md).
- Set the same CLI_API_TOKEN on this machine or run
hapi auth login. - Run
hapito start a session. - Use the web app or Telegram Mini App to monitor and control.
Quickstart
# Point to the server if it is not on localhost:3006
export HAPI_BOT_URL="https://your-server-domain"
hapi # prompts for CLI_API_TOKEN and saves it locally
Commands
hapi- start a Claude Code session (passes through Claude CLI flags)hapi codex- start Codex modehapi mcp- start MCP stdio bridgehapi auth- login/status/logout for CLI_API_TOKENhapi server- start the bundled server (single binary workflow)hapi daemon- manage background servicehapi doctor- diagnostics and cleanup
Configuration
Required:
CLI_API_TOKEN- shared secret; must match the serverHAPI_BOT_URL- server base URL (default: http://localhost:3006)
CLI_API_TOKEN can be set via env or stored in ~/.hapi/settings.json (env wins).
Optional:
HAPI_HOME- config/data directory (default: ~/.hapi)HAPI_EXPERIMENTAL- enable experimental features (true/1/yes)HAPI_HTTP_MCP_URL- default MCP target forhapi mcpHAPI_CLAUDE_PATH- path to a specificclaudeexecutableHAPI_USE_BUNDLED_CLAUDE- set to 1 to prefer node_modules claudeHAPI_USE_GLOBAL_CLAUDE- set to 1 to prefer global claude
Requirements
- Claude CLI installed and logged in (
claudeon PATH). - Bun for building from source.
Build from source
From the repo root:
bun install
bun run build:cli
bun run build:cli:exe
For an all-in-one binary that also embeds the web app:
bun run build:single-exe
Related docs
../server/README.md../web/README.md