enjoy-coding
v0.14.0-3
Published
Mobile and Web client for Claude Code and Codex
Readme
Happy
Code on the go — control AI coding agents from your mobile device.
Free. Open source. Code anywhere.
Installation
npm install -g enjoy-codingRun From Source
From a repo checkout:
# repository root
yarn cli --help
# package directory
yarn cli --helpUsage
Claude (default)
happyThis 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
happy geminiStart a Gemini CLI session with remote control capabilities.
First time setup:
# Authenticate with Google
happy connect geminiCommands
Main Commands
happy– Start Claude Code session (default)happy gemini– Start Gemini CLI sessionhappy codex– Start Codex modehappy acp– Start a generic ACP-compatible agent
Utility Commands
happy auth– Manage authenticationhappy connect– Store AI vendor API keys in Happy cloudhappy sandbox– Configure sandbox runtime restrictionshappy notify– Send a push notification to your deviceshappy daemon– Manage background servicehappy doctor– System diagnostics & troubleshooting
Connect Subcommands
happy connect gemini # Authenticate with Google for Gemini
happy connect claude # Authenticate with Anthropic
happy connect codex # Authenticate with OpenAI
happy connect status # Show connection status for all vendorsGemini Subcommands
happy gemini # Start Gemini session
happy gemini model set <model> # Set default model
happy gemini model get # Show current model
happy gemini project set <id> # Set Google Cloud Project ID (for Workspace accounts)
happy gemini project get # Show current Google Cloud Project IDAvailable models: gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite
Generic ACP Commands
happy acp gemini # Run built-in Gemini ACP command
happy acp opencode # Run built-in OpenCode ACP command
happy acp opencode --verbose # Include raw backend/envelope logs
happy acp -- custom-agent --flag # Run any ACP-compatible command directlySandbox Subcommands
happy sandbox configure # Interactive sandbox setup wizard
happy sandbox status # Show current sandbox configuration
happy sandbox disable # Disable sandboxingOptions
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--no-sandbox- Disable sandbox for the current Claude/Codex run
Environment Variables
Happy Configuration
HAPPY_SERVER_URL- Custom server URL (default: https://api.cluster-fluster.com)HAPPY_WEBAPP_URL- Custom web app URL (default: https://app.happy.engineering)HAPPY_HOME_DIR- Custom home directory for Happy data (default: ~/.happy)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:
happy connect gemini
happy 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:
happy gemini project set your-project-idOr use environment variable:
GOOGLE_CLOUD_PROJECT=your-project-id happy geminiGuide: https://goo.gle/gemini-cli-auth-docs#workspace-gca
Contributing
Interested in contributing? See CONTRIBUTING.md for development setup and guidelines.
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
happy connect gemini
License
MIT
