App for Codex / Claude Code / Pi / OpenCode / Kimi Code / Grok Build, vibe coding anytime, anywhere https://hapi.run
  • TypeScript 75.8%
  • Swift 12.7%
  • Kotlin 11.1%
  • CSS 0.1%
  • JavaScript 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Matvey Rudoy 99cd3d4172
feat(android): add Russian locale (#1963)
* feat(android): add Russian locale

Translate all 518 app strings into values-ru/strings.xml, register ru in
locales_config.xml, and add AppLanguage.RUSSIAN to the in-app language
picker.

* fix(android): use count-agnostic Russian forms for dynamic counts

The *_many strings used a genitive-plural noun after the number, which is
wrong for 2-4 (e.g. "2 инструментов"). The house style avoids <plurals>,
so phrase these labels with the noun first ("Инструменты: %1") instead:
tool groups, review findings, queued/new messages, agent steps, questions,
lines, chars, edits, usage requests, scratchlist count and attachment cap.

* fix(android): make the process-steps label count-safe

* fix(android): use a count-safe token label in the usage tooltip

---------

Co-authored-by: mrudy <mrudy@local>
2026-10-05 17:14:11 +08:00
.github fix(runner,hub): cross-platform orphan reap on archive / tracking loss (#1911) 2026-09-25 09:15:08 +01:00
android feat(android): add Russian locale (#1963) 2026-10-05 17:14:11 +08:00
assets/brand fix(brand): sharpen iOS and PWA icons 2026-08-20 11:06:59 +08:00
cli fix(runner,hub): cross-platform orphan reap on archive / tracking loss (#1911) 2026-09-25 09:15:08 +01:00
docs fix(kimi): discover configured models dynamically (#1873) 2026-09-21 13:58:59 +08:00
e2e fix(web): synchronize assistant runtime and history loading (#1893) 2026-09-21 13:56:14 +08:00
hub fix(runner,hub): cross-platform orphan reap on archive / tracking loss (#1911) 2026-09-25 09:15:08 +01:00
ios feat(ios): add Russian locale (#1964) 2026-10-05 17:12:57 +08:00
relay feat(android): enable default push through official relay 2026-09-12 17:52:53 +08:00
scripts feat(media): add audio and file display (#1405) 2026-08-08 13:46:59 +08:00
shared fix(runner,hub): cross-platform orphan reap on archive / tracking loss (#1911) 2026-09-25 09:15:08 +01:00
web feat(web): add Russian locale and detect initial language (#1958) 2026-10-05 17:13:53 +08:00
website docs: refresh native app guides and contracts 2026-09-13 10:43:59 +08:00
.gitignore chore(ios): track privacy manifest and dependency lockfile 2026-09-12 11:45:40 +08:00
AGENTS.md docs: streamline agent guidance and scope verification 2026-09-12 22:19:32 +08:00
bun.lock fix(web): synchronize assistant runtime and history loading (#1893) 2026-09-21 13:56:14 +08:00
bunfig.toml chore: upgrade Bun to 1.4.0 2026-08-25 13:31:59 +08:00
CONTRIBUTING.md docs: align documentation with current implementation 2026-09-12 22:19:32 +08:00
LICENSE chore: migrate to AGPL-3.0-only 2026-01-04 20:45:15 +08:00
package.json chore: upgrade Bun to 1.4.0 2026-08-25 13:31:59 +08:00
playwright.config.ts feat(media): add audio and file display (#1405) 2026-08-08 13:46:59 +08:00
README.md docs: refresh native app guides and contracts 2026-09-13 10:43:59 +08:00
SECURITY.md Update SECURITY.md 2026-03-29 09:47:17 +08:00
tsconfig.base.json init 2025-12-16 15:03:50 +08:00

HAPI

Run official Claude Code / Codex / Cursor Agent / Grok Build / OpenCode / Kimi / Copilot / Antigravity / Pi / DeepSeek Harness sessions and control them remotely through native iOS / Android apps, Web / PWA, or 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, switch to remote when needed, switch back anytime. No context loss, no session restart.
  • Shared Codex Sessions - Use Codex from your terminal and phone at the same time. Requires Codex 0.154.0+. Usage and limits.
  • Native First - HAPI wraps your AI agent instead of replacing it. Same terminal, same experience, same muscle memory.
  • AFK Without Stopping - Step away from your desk? Approve AI requests from your phone with one tap.
  • Your AI, Your Choice - Claude Code, Codex, Cursor Agent, Grok Build, OpenCode, Kimi, Copilot, Antigravity, Pi, DeepSeek Harness—different agents, one unified workflow.
  • Terminal Anywhere - Run commands from your phone's browser or desktop web app, directly connected to the working machine.
  • Voice Control - Use dictation in native apps, or talk to your AI agent hands-free with the web voice assistant.
  • Workspace Browser - Opt-in via one or more hapi runner start --workspace-root <path> flags: browse scoped file trees from the web and start sessions in allowed subdirectories.

Demo

https://github.com/user-attachments/assets/38230353-94c6-4dbe-9c29-b2a2cc457546

Getting Started

npx @twsxtd/hapi hub --relay     # start hub with E2E encrypted relay
npx @twsxtd/hapi                 # choose an agent and start a session

hapi server remains supported as an alias.

Use hapi <agent> [options] to start an agent directly, for example hapi claude or hapi codex. Scripts must specify the agent explicitly. hapi --help shows HAPI's commands and supported agents.

The hub displays a URL and two QR codes. Open the web URL in a browser, or pair a native app using the companion QR. See Native apps for build and pairing instructions.

The relay uses WireGuard + TLS for end-to-end encryption. Your data is encrypted from your device to your machine.

For self-hosted options (Cloudflare Tunnel, Tailscale), see Installation

Docs

Native apps (iOS / Android)

The repository includes SwiftUI/UIKit and Kotlin Compose clients with chat, approvals, session creation, files, dictation, and push notifications. See the native app guide for capabilities, platform differences and pairing. Build instructions: iOS and Android. Developer protocol: client contract.

Build from source

Requires Bun 1.4.0.

bun install
bun run build:single-exe

Credits

HAPI means "哈皮" a Chinese transliteration of Happy. Great credit to the original project.