mirror of
https://github.com/wu736139669/hapi.git
synced 2026-08-05 06:24:37 +00:00
34cfe49f87a5d2b5b32e267857b3fdfc447b9147
- Split normalize.ts into focused modules: normalizeAgent, normalizeUser, normalizeUtils - Extract reducer.ts into specialized modules: reducerCliOutput, reducerEvents, reducerTimeline, reducerTools - Remove legacy credentials support (zod schema, readCredentials, writeCredentialsLegacy) - Refactor NewSession component from monolithic file into modular subcomponents - Improves code organization and maintainability across chat and authentication layers
HAPI
HAPI means "哈皮" a Chinese transliteration of Happy. Great credit to the original project.
Run Claude Code / Codex / Gemini sessions locally and control them remotely through a Web / PWA / Telegram Mini App.
Why HAPI? HAPI is a local-first alternative to Happy. See Why Not Happy? for the key differences.
Features
- Seamless Handoff - Work locally with native Claude Code or Codex, switch to remote when needed, switch back anytime.
- Start AI coding sessions from any machine.
- Monitor and control sessions from your phone or browser.
- Approve or deny tool permissions remotely.
- Browse files and view git diffs.
- Track session progress with todo lists.
- Supports multiple AI backends: Claude Code, Codex, and Gemini.
Getting Started
npx @twsxtd/hapi server # start the server locally
npx @twsxtd/hapi # run claude code
Open http://<server-ip>:3006 and login with the token, if you need to access it remotely, see Remote access
More options: Quick Start | Installation
Docs
Build from source
bun install
bun run build:single-exe
Languages
TypeScript
99.5%
CSS
0.2%
JavaScript
0.2%
HTML
0.1%