
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
enjoy-coding
Advanced tools
Code on the go — control AI coding agents from your mobile device.
Free. Open source. Code anywhere.
npm install -g enjoy-coding
From a repo checkout:
# repository root
yarn cli --help
# package directory
yarn cli --help
happy
This will:
happy gemini
Start a Gemini CLI session with remote control capabilities.
First time setup:
# Authenticate with Google
happy connect gemini
happy – Start Claude Code session (default)happy gemini – Start Gemini CLI sessionhappy codex – Start Codex modehappy acp – Start a generic ACP-compatible agenthappy 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 & troubleshootinghappy 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 vendors
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 ID
Available models: gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite
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 directly
happy sandbox configure # Interactive sandbox setup wizard
happy sandbox status # Show current sandbox configuration
happy sandbox disable # Disable sandboxing
-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-h, --help - Show help-v, --version - Show version--no-sandbox - Disable sandbox for the current Claude/Codex runHAPPY_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 to true, 1, or yes)HAPPY_EXPERIMENTAL - Enable experimental features (set to true, 1, or yes)By default, happy / enjoy connects to the official server (https://api.cluster-fluster.com).
If you deploy your own compatible Happy Server, point the CLI to it via HAPPY_SERVER_URL before running any auth/daemon commands:
# bash / zsh
export HAPPY_SERVER_URL="https://happy.example.com"
enjoy login
enjoy updatestart
# PowerShell
$env:HAPPY_SERVER_URL="https://happy.example.com"
enjoy login
enjoy updatestart
In the mobile App, open Settings → Server Configuration and set the same URL. With client-side end-to-end encryption plus your own hosted relay/server, this is the highest data security setup. After switching servers, it’s recommended to log out and log in again.
GEMINI_MODEL - Override default Gemini modelGOOGLE_CLOUD_PROJECT - Google Cloud Project ID (required for Workspace accounts)Personal Gmail accounts work out of the box:
happy connect gemini
happy gemini
Google Workspace (organization) accounts require a Google Cloud Project:
happy gemini project set your-project-id
Or use environment variable:
GOOGLE_CLOUD_PROJECT=your-project-id happy gemini
Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca
Interested in contributing? See CONTRIBUTING.md for development setup and guidelines.
claude command available in PATH)npm install -g @google/gemini-cli)happy connect geminiMIT
FAQs
Mobile and Web client for Claude Code and Codex
We found that enjoy-coding demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.