@boujot/happy-coder
v0.15.3
Published
Mobile and Web client for Claude Code and Codex
Readme
Boujot
Code on the go — control AI coding agents from your mobile device.
Open source. Code anywhere.
Installation
npm install -g @boujot/happy-coderUsage
Claude (default)
boujotThis will:
- Start a Claude Code session
- Display a QR code to connect from your mobile device
- Allow real-time session sharing between Claude Code and your mobile app
Gemini
boujot geminiStart a Gemini CLI session with remote control capabilities.
First time setup:
# Authenticate with Google
boujot connect geminiArchitecture & Dependencies
Boujot has five core pieces:
happy-app(mobile app)- Metro (only when developing
happy-app) @boujot/happy-coder(boujotcommand)boujot daemon(background mode of the CLI)- Boujot server (
HAPPY_SERVER_URL)
How they depend on each other:
- The server is the shared source of truth for account, sessions, and machines.
boujot daemonis the process that keeps your computer registered as an online machine and routes work to local agent processes.boujotinteractive sessions (Claude/Codex/Gemini) also sync via the server, which is why they appear in the app.- The app talks to the server, selects a machine, and sends actions that are handled by the daemon on that machine.
- Metro is only needed for app development/hot reload; it is not part of production runtime and not required for CLI/daemon operation.
Minimal end-to-end requirements (app controlling your machine):
- Server reachable
- CLI authenticated (
boujot auth login) - Daemon running (
boujot daemon start) - App authenticated to the same account
- Machine selected in the app
Commands
Main Commands
boujot– Start Claude Code session (default)boujot gemini– Start Gemini CLI sessionboujot codex– Start Codex mode
Utility Commands
boujot auth– Manage authenticationboujot connect– Store AI vendor API keys in Happy cloudboujot notify– Send a push notification to your devicesboujot daemon– Manage background serviceboujot doctor– System diagnostics & troubleshooting
Connect Subcommands
boujot connect gemini # Authenticate with Google for Gemini
boujot connect claude # Authenticate with Anthropic
boujot connect codex # Authenticate with OpenAI
boujot connect status # Show connection status for all vendorsGemini Subcommands
boujot gemini # Start Gemini session
boujot gemini model set <model> # Set default model
boujot gemini model get # Show current model
boujot gemini project set <id> # Set Google Cloud Project ID (for Workspace accounts)
boujot gemini project get # Show current Google Cloud Project IDAvailable models: gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite
Options
Claude Options
-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
Global Options
-h, --help- Show help-v, --version- Show version
Environment Variables
Happy Configuration
HAPPY_SERVER_URL- Required. Server URLBOUJOT_WEBAPP_URL- Custom web app URL (default: https://app.happy.engineering)BOUJOT_HOME_DIR- Custom home directory for Happy data (default: ~/.boujot)HAPPY_DISABLE_CAFFEINATE- Disable macOS sleep prevention (set totrue,1, oryes)HAPPY_EXPERIMENTAL- Enable experimental features (set totrue,1, oryes)
Gemini Configuration
GEMINI_MODEL- Override default Gemini modelGOOGLE_CLOUD_PROJECT- Google Cloud Project ID (required for Workspace accounts)
Gemini Authentication
Personal Google Account
Personal Gmail accounts work out of the box:
boujot connect gemini
boujot geminiGoogle Workspace Account
Google Workspace (organization) accounts require a Google Cloud Project:
- Create a project in Google Cloud Console
- Enable the Gemini API
- Set the project ID:
boujot gemini project set your-project-idOr use environment variable:
GOOGLE_CLOUD_PROJECT=your-project-id boujot geminiGuide: https://goo.gle/gemini-cli-auth-docs#workspace-gca
Contributing
Interested in contributing? See CONTRIBUTING.md for development setup and guidelines.
Boujot Fork: Release Helper
This repo includes an internal helper script to cut a versioned Boujot CLI release branch from the current commit:
cd packages/happy-cli
npm run release:boujot -- 0.14.0-4 --tag betaNotes:
- The helper requires a clean working tree.
- It creates
boujot-cli-release/<version>, bumps the CLI version, runsyarn rebrand, runs build/tests (unless skipped), and commits the result. - For publishing, you can set
NPM_TOKENor putNPM_GRANULAR_ACCESS_TOKEN=...inpackages/happy-cli/.env(gitignored).
Requirements
- Node.js >= 20.0.0
For Claude
- Claude CLI installed & logged in (
claudecommand available in PATH)
For Gemini
- Gemini CLI installed (
npm install -g @google/gemini-cli) - Google account authenticated via
boujot connect gemini
License
MIT
