mirror of
https://github.com/wu736139669/hapi.git
synced 2026-08-05 06:24:37 +00:00
docs: update all README files with comprehensive documentation
Update documentation across the project to reflect current state of codebase: - cli/README.md: Add all commands (codex, gemini, daemon subcommands, doctor, mcp), configuration options, storage locations, and source structure references - server/README.md: Add complete HTTP API reference, Socket.IO events, Telegram bot features, core logic descriptions, and source structure - web/README.md: Add all routes, feature descriptions, authentication flow, data fetching, real-time updates, and source structure - README.md: Improve feature list clarity, add HTTPS exposure instructions in quickstart, add multi-agent support section
This commit is contained in:
+89
-25
@@ -1,56 +1,107 @@
|
||||
# hapi CLI
|
||||
|
||||
Run Claude Code or Codex sessions from your terminal and control them remotely through the hapi server.
|
||||
Run Claude Code, Codex, or Gemini 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.
|
||||
- Starts Gemini mode via ACP (Anthropic Code Plugins).
|
||||
- Provides an MCP stdio bridge for external tools.
|
||||
- Manages a background daemon for long-running sessions.
|
||||
- Includes diagnostics and auth helpers.
|
||||
|
||||
## Typical flow
|
||||
|
||||
1. Start the server and set env vars (see ../server/README.md).
|
||||
2. Set the same CLI_API_TOKEN on this machine or run `hapi auth login`.
|
||||
3. Run `hapi` to start a session.
|
||||
4. Use the web app or Telegram Mini App to monitor and control.
|
||||
|
||||
## Quickstart
|
||||
```bash
|
||||
# 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 mode
|
||||
- `hapi mcp` - start MCP stdio bridge
|
||||
- `hapi auth` - login/status/logout for CLI_API_TOKEN
|
||||
- `hapi server` - start the bundled server (single binary workflow)
|
||||
- `hapi daemon` - manage background service
|
||||
- `hapi doctor` - diagnostics and cleanup
|
||||
|
||||
### Session commands
|
||||
|
||||
- `hapi` - Start a Claude Code session (passes through Claude CLI flags). See `src/index.ts`.
|
||||
- `hapi codex` - Start Codex mode. See `src/codex/runCodex.ts`.
|
||||
- `hapi gemini` - Start Gemini mode via ACP. See `src/agent/runners/runAgentSession.ts`.
|
||||
|
||||
### Authentication
|
||||
|
||||
- `hapi auth status` - Show authentication configuration and token source.
|
||||
- `hapi auth login` - Interactively enter and save CLI_API_TOKEN.
|
||||
- `hapi auth logout` - Clear saved credentials.
|
||||
|
||||
See `src/commands/auth.ts`.
|
||||
|
||||
### Daemon management
|
||||
|
||||
- `hapi daemon start` - Start daemon as detached process.
|
||||
- `hapi daemon stop` - Stop daemon gracefully.
|
||||
- `hapi daemon status` - Show daemon diagnostics.
|
||||
- `hapi daemon list` - List active sessions managed by daemon.
|
||||
- `hapi daemon stop-session <sessionId>` - Terminate specific session.
|
||||
- `hapi daemon logs` - Print path to latest daemon log file.
|
||||
- `hapi daemon install` - Install daemon as system service.
|
||||
- `hapi daemon uninstall` - Remove daemon system service.
|
||||
|
||||
See `src/daemon/run.ts`.
|
||||
|
||||
### Diagnostics
|
||||
|
||||
- `hapi doctor` - Show full diagnostics (version, daemon status, logs, processes).
|
||||
- `hapi doctor clean` - Kill runaway HAPI processes.
|
||||
|
||||
See `src/ui/doctor.ts`.
|
||||
|
||||
### Other
|
||||
|
||||
- `hapi mcp` - Start MCP stdio bridge. See `src/codex/happyMcpStdioBridge.ts`.
|
||||
- `hapi server` - Start the bundled server (single binary workflow).
|
||||
|
||||
## Configuration
|
||||
Required:
|
||||
- `CLI_API_TOKEN` - shared secret; must match the server
|
||||
- `HAPI_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).
|
||||
See `src/configuration.ts` for all options.
|
||||
|
||||
Optional:
|
||||
- `HAPI_HOME` - config/data directory (default: ~/.hapi)
|
||||
- `HAPI_EXPERIMENTAL` - enable experimental features (true/1/yes)
|
||||
- `HAPI_HTTP_MCP_URL` - default MCP target for `hapi mcp`
|
||||
- `HAPI_CLAUDE_PATH` - path to a specific `claude` executable
|
||||
### Required
|
||||
|
||||
- `CLI_API_TOKEN` - Shared secret; must match the server. Can be set via env or `~/.hapi/settings.json` (env wins).
|
||||
- `HAPI_BOT_URL` - Server base URL (default: http://localhost:3006).
|
||||
|
||||
### Optional
|
||||
|
||||
- `HAPI_HOME` - Config/data directory (default: ~/.hapi).
|
||||
- `HAPI_EXPERIMENTAL` - Enable experimental features (true/1/yes).
|
||||
- `HAPI_CLAUDE_PATH` - Path to a specific `claude` executable.
|
||||
- `HAPI_HTTP_MCP_URL` - Default MCP target for `hapi mcp`.
|
||||
|
||||
### Daemon
|
||||
|
||||
- `HAPI_DAEMON_HEARTBEAT_INTERVAL` - Heartbeat interval in ms (default: 60000).
|
||||
- `HAPI_DAEMON_HTTP_TIMEOUT` - HTTP timeout for daemon control in ms (default: 10000).
|
||||
|
||||
### Gemini/Agent
|
||||
|
||||
- `HAPPY_GEMINI_COMMAND` - Gemini executable command (default: gemini).
|
||||
- `HAPPY_GEMINI_ARGS` - Gemini arguments (default: --acp).
|
||||
|
||||
## Storage
|
||||
|
||||
Data is stored in `~/.hapi/` (or `$HAPI_HOME`):
|
||||
|
||||
- `settings.json` - User settings (machineId, token, onboarding flag). See `src/persistence.ts`.
|
||||
- `daemon.state.json` - Daemon state (pid, port, version, heartbeat).
|
||||
- `logs/` - Log files.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Claude CLI installed and logged in (`claude` on PATH).
|
||||
- Bun for building from source.
|
||||
|
||||
## Build from source
|
||||
|
||||
From the repo root:
|
||||
|
||||
```bash
|
||||
bun install
|
||||
bun run build:cli
|
||||
@@ -58,10 +109,23 @@ bun run build:cli:exe
|
||||
```
|
||||
|
||||
For an all-in-one binary that also embeds the web app:
|
||||
|
||||
```bash
|
||||
bun run build:single-exe
|
||||
```
|
||||
|
||||
## Source structure
|
||||
|
||||
- `src/api/` - Bot communication (Socket.IO + REST).
|
||||
- `src/claude/` - Claude Code integration.
|
||||
- `src/codex/` - Codex mode integration.
|
||||
- `src/agent/` - Multi-agent support (Gemini via ACP).
|
||||
- `src/daemon/` - Background service.
|
||||
- `src/commands/` - CLI command handlers.
|
||||
- `src/ui/` - User interface and diagnostics.
|
||||
- `src/modules/` - Tool implementations (ripgrep, difftastic, git).
|
||||
|
||||
## Related docs
|
||||
|
||||
- `../server/README.md`
|
||||
- `../web/README.md`
|
||||
|
||||
Reference in New Issue
Block a user