Files
hapi/cli
weishu c2b886896b feat: add interactive CLI token configuration with settings persistence
Implements comprehensive token management with intelligent priority resolution.
Token sources (highest to lowest priority): environment variable, settings file,
interactive prompt. Changes include:

- Updated home directory from ~/.happy to ~/.config/hapi (env var: HAPI_HOME_DIR)
- Added cliApiToken field to Settings interface for persistent storage
- Made cliApiToken mutable in Configuration class (private field with getter/setter)
- Created ui/tokenInit.ts module for token initialization with fallback prompt
- Enhanced auth command: login (interactive input), logout (clear token), status (show source)
- Updated doctor command to correctly identify token source and mask saved token in output
- Token initialization called early in startup flow to ensure availability before API use
2025-12-16 21:54:55 +08:00
..
2025-12-16 15:03:50 +08:00
2025-12-16 15:03:50 +08:00
2025-12-16 15:03:50 +08:00
2025-12-16 15:03:50 +08:00
2025-12-16 15:03:50 +08:00
2025-12-16 15:03:50 +08:00
2025-12-16 15:03:50 +08:00
2025-12-16 15:03:50 +08:00
2025-12-16 15:03:50 +08:00
2025-12-16 15:03:50 +08:00
2025-12-16 15:03:50 +08:00
2025-12-16 15:03:50 +08:00
2025-12-16 15:03:50 +08:00
2025-12-16 15:03:50 +08:00
2025-12-16 15:03:50 +08:00
2025-12-16 15:03:50 +08:00
2025-12-16 15:03:50 +08:00
2025-12-16 15:03:50 +08:00

hapi

Code on the go controlling Claude Code from your mobile device.

Free. Open source. Code anywhere.

Installation

npm install -g hapi

Usage

hapi

This will:

  1. Start a Claude Code session
  2. Register the session with your hapi-server instance
  3. Allow real-time session control from the Telegram Mini App

Commands

  • hapi auth Manage authentication
  • hapi codex Start Codex mode
  • hapi connect Not available in direct-connect mode
  • hapi notify Not available in direct-connect mode
  • hapi daemon Manage background service
  • hapi doctor System diagnostics & troubleshooting

Options

  • -h, --help - Show help
  • -v, --version - Show version
  • -m, --model <model> - Claude model to use (default: sonnet)
  • -p, --permission-mode <mode> - Permission mode: auto, default, or plan
  • --claude-env KEY=VALUE - Set environment variable for Claude Code
  • --claude-arg ARG - Pass additional argument to Claude CLI

Environment Variables

  • HAPPY_BOT_URL - Bot URL (default: http://localhost:3006)
  • CLI_API_TOKEN - Shared secret for bot authentication (required)
  • HAPPY_HOME_DIR - Custom home directory for hapi data (default: ~/.happy)
  • HAPPY_DISABLE_CAFFEINATE - Disable macOS sleep prevention (set to true, 1, or yes)
  • HAPPY_EXPERIMENTAL - Enable experimental features (set to true, 1, or yes)

Requirements

  • Node.js >= 20.0.0
    • Required by eventsource-parser@3.0.5, which is required by @modelcontextprotocol/sdk, which we used to implement permission forwarding to mobile app
  • Claude CLI installed & logged in (claude command available in PATH)

License

MIT