npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@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-coder

Usage

Claude (default)

boujot

This will:

  1. Start a Claude Code session
  2. Display a QR code to connect from your mobile device
  3. Allow real-time session sharing between Claude Code and your mobile app

Gemini

boujot gemini

Start a Gemini CLI session with remote control capabilities.

First time setup:

# Authenticate with Google
boujot connect gemini

Architecture & Dependencies

Boujot has five core pieces:

  1. happy-app (mobile app)
  2. Metro (only when developing happy-app)
  3. @boujot/happy-coder (boujot command)
  4. boujot daemon (background mode of the CLI)
  5. 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 daemon is the process that keeps your computer registered as an online machine and routes work to local agent processes.
  • boujot interactive 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):

  1. Server reachable
  2. CLI authenticated (boujot auth login)
  3. Daemon running (boujot daemon start)
  4. App authenticated to the same account
  5. Machine selected in the app

Commands

Main Commands

  • boujot – Start Claude Code session (default)
  • boujot gemini – Start Gemini CLI session
  • boujot codex – Start Codex mode

Utility Commands

  • boujot auth – Manage authentication
  • boujot connect – Store AI vendor API keys in Happy cloud
  • boujot notify – Send a push notification to your devices
  • boujot daemon – Manage background service
  • boujot 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 vendors

Gemini 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 ID

Available 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 URL
  • BOUJOT_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 to true, 1, or yes)
  • HAPPY_EXPERIMENTAL - Enable experimental features (set to true, 1, or yes)

Gemini Configuration

  • GEMINI_MODEL - Override default Gemini model
  • GOOGLE_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 gemini

Google Workspace Account

Google Workspace (organization) accounts require a Google Cloud Project:

  1. Create a project in Google Cloud Console
  2. Enable the Gemini API
  3. Set the project ID:
boujot gemini project set your-project-id

Or use environment variable:

GOOGLE_CLOUD_PROJECT=your-project-id boujot gemini

Guide: 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 beta

Notes:

  • The helper requires a clean working tree.
  • It creates boujot-cli-release/<version>, bumps the CLI version, runs yarn rebrand, runs build/tests (unless skipped), and commits the result.
  • For publishing, you can set NPM_TOKEN or put NPM_GRANULAR_ACCESS_TOKEN=... in packages/happy-cli/.env (gitignored).

Requirements

  • Node.js >= 20.0.0

For Claude

  • Claude CLI installed & logged in (claude command available in PATH)

For Gemini

  • Gemini CLI installed (npm install -g @google/gemini-cli)
  • Google account authenticated via boujot connect gemini

License

MIT