weishu 705933e17b refactor: extract message utilities to shared module
Consolidate RoleWrappedRecord type and message envelope utilities into
a new shared module to reduce duplication across server and web packages.
2026-01-03 22:23:29 +08:00
2026-01-03 11:05:14 +08:00
2026-01-03 22:22:45 +08:00
2026-01-03 16:13:01 +08:00
2026-01-03 14:43:59 +08:00
2026-01-02 16:26:40 +08:00
2025-12-16 15:03:50 +08:00

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
S
Description
GitHub 镜像: wu736139669/hapi(每日自动同步)
Readme AGPL-3.0
103 MiB
Languages
TypeScript 99.5%
CSS 0.2%
JavaScript 0.2%
HTML 0.1%