Agent skill

Happy Monorepo Dev Guide

by slopus in slopus/happy

Local development guide for the Happy pnpm monorepo: install, build, test and run the CLI, server, Expo app and Tauri desktop packages.

MITAuto-check passedDevelopment

Install Happy Monorepo Dev Guide

skills CLI
$ npx skills add slopus/happy --skill dev -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install slopus/happy dev --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/slopus/happy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/dev .claude/skills/dev && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
dev
GitHub stars
24k
Token cost
~1.8k tokens
SKILL.md length
677 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
MIT

At a glance

Local development guide for the Happy pnpm monorepo: install, build, test and run the CLI, server, Expo app and Tauri desktop packages.

  • Setting up the Happy monorepo for the first time
  • SKILL.md covers First-time setup, Packages, happy-cli and happy-server, plus 6 more sections
  • Calls pnpm, npm and osascript
  • Rebuilding and relinking the happy CLI after a code change

What it does

Happy is a pnpm monorepo, so everything goes through pnpm workspaces rather than npm or yarn. First-time setup installs dependencies and runs the CLI's cli:install script, which builds happy-cli, links it as the global happy binary and restarts the daemon, using the same ~/.happy folder as production. The guide gives the undo command and lists the packages: the CLI and daemon, a Node and Prisma server, an Expo app for iOS, Android, web and Tauri desktop, an agent runtime and shared Zod wire schemas.

Work loops show how to rebuild and relink the CLI, check daemon status and run doctor, run a single vitest file or only the unit project, and treat flaky integration tests as on-demand. A HAPPY_HOME_DIR variable creates a separate data sandbox so two versions can run side by side, and HAPPY_SERVER_URL points the CLI or app at a local server started with the standalone dev script, which uses embedded PGlite and no Docker.

When your agent uses it

  • Setting up the Happy monorepo for the first time
  • Rebuilding and relinking the happy CLI after a code change
  • Running one test file or only the unit tests in a package
  • Pointing the CLI or app at a local development server

Example prompts

  • “Set up the Happy monorepo locally and link the CLI.”
  • “Run just the unit tests for the happy package.”
  • “Start the local server and point the CLI at it without touching my production auth.”

Requirements

  • pnpm and Node
  • A checkout of the slopus/happy monorepo

What it can do on your machine

Read from SKILL.md and the folder at commit 7ea7017. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm
    • npm
    • osascript
    • yarn

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm, npm and yarn, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Happy Monorepo Dev Guide loads about 1.8k tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 677 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~64
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from slopus/happy at commit 7ea7017, republished under its MIT licence (© slopus). 677 words, ~1,846 tokens.

Download SKILL.mdSave it as .claude/skills/dev/SKILL.md (or your agent's skills folder).
name
dev
description
Local development guide for the Happy monorepo. How to build, install, test, and run the CLI, server, mobile app, and desktop (Tauri) locally. Use when the user types /dev, asks how to "build", "start dev", "install locally", or "run the ___ package".

/dev - Local Development

Happy is a pnpm monorepo. Everything uses pnpm workspaces — do not use npm or yarn directly.

First-time setup

bash
pnpm install                       # installs deps for every package
pnpm --filter happy cli:install    # builds happy-cli + links it as the global `happy` binary

cli:install replaces whatever happy is on your PATH (npm-installed or not) with a symlink to packages/happy-cli/. Daemon is restarted as part of the script. Uses ~/.happy/ — same as production.

To undo: npm unlink -g happy && npm i -g happy@latest.

Packages

packages/happy-cli     # the `happy` CLI and daemon, published to npm
packages/happy-server  # Node + Prisma server, deployed via TeamCity
packages/happy-app     # Expo app: iOS, Android, web, Tauri desktop
packages/happy-agent   # agent runtime
packages/happy-wire    # shared Zod schemas + wire types

happy-cli

packages/happy-cli
scripts in package.json:
  typecheck      # tsc --noEmit
  build          # rm -rf dist && tsc --noEmit && pkgroll
  test           # build + vitest run
  cli:install    # build + stop daemon + npm link + start daemon
  prepublishOnly # pnpm test (runs build inside test)
  postinstall    # unpacks difft + rg binaries into tools/unpacked/

Work loop:

bash
pnpm --filter happy cli:install   # rebuild + relink + restart daemon
happy daemon status               # confirm your build is running
happy doctor                      # list all happy processes
tail -f ~/.happy/logs/$(ls -t ~/.happy/logs/ | head -1)

Run a single test file quickly:

bash
pnpm --filter happy exec vitest run src/path/to/file.test.ts

Unit-only (fast, ~1 min):

bash
pnpm --filter happy exec vitest run --project unit

Integration tests hit real APIs and are flaky — run on demand, never in the release gate.

Dev data sandbox (optional)

happy reads HAPPY_HOME_DIR to override ~/.happy/. To run two versions side-by-side without touching your prod auth:

bash
HAPPY_HOME_DIR=~/.happy-dev happy daemon start
HAPPY_HOME_DIR=~/.happy-dev happy auth

Point at a local server the same way:

bash
HAPPY_SERVER_URL=http://localhost:3005 happy daemon start

happy-server

bash
pnpm --filter happy-server standalone:dev   # localhost:3005, embedded PGlite, no Docker

App auto-reloads on source changes. Point the CLI or the Expo app at it with HAPPY_SERVER_URL=http://localhost:3005 / EXPO_PUBLIC_HAPPY_SERVER_URL=....

happy-app (Expo)

bash
pnpm --filter happy-app start           # expo start (Metro bundler)
pnpm --filter happy-app ios:dev         # iOS simulator, development variant
pnpm --filter happy-app android:dev
pnpm --filter happy-app web             # web build, served locally
pnpm --filter happy-app tauri:dev       # macOS desktop app

Variants:

development    com.slopus.happy.dev       # hot reload, internal
preview        com.slopus.happy.preview   # OTA / beta testing
production     com.ex3ndr.happy           # App Store
Rebuild and reinstall the desktop .app

When the user asks to "rebuild the desktop app", "kill the running one and reinstall", or anything in that shape — do all four steps in order, do not stop after building.

Variants → product name → build script:

production    Happy.app           pnpm --filter happy-app tauri:build:production
preview       Happy (preview).app pnpm --filter happy-app tauri:build:preview
dev           Happy (dev).app     pnpm --filter happy-app tauri:build:dev

Build output for all variants:

packages/happy-app/src-tauri/target/release/bundle/macos/<ProductName>.app

If the variant is ambiguous, check what's running with ps aux | grep "/Applications/.*Happy" | grep -v grep and match. Production is the default.

Steps (substitute $NAME with the product name, e.g. Happy or Happy (dev)):

bash
# 1. build (slow: ~3–10 min, expo web export then cargo release build)
pnpm --filter happy-app tauri:build:production

# 2. quit the running app gracefully (no-op if not running)
osascript -e 'tell application "$NAME" to quit' || true

# 3. replace the installed bundle
rm -rf "/Applications/$NAME.app"
cp -R "packages/happy-app/src-tauri/target/release/bundle/macos/$NAME.app" /Applications/

# 4. relaunch
open -a "$NAME"

Notes:

  • Run the build in the background (run_in_background: true on Bash) and poll the output file. It prints Finished \release` profile` near the end.
  • osascript ... to quit is graceful — it gives the app a chance to flush state. Only fall back to pkill -f "/Applications/$NAME.app/Contents/MacOS/app" if the quit hangs.
  • Do NOT skip the rm -rf before cp — cp -R over an existing .app merges directories and leaves stale files.
  • If macOS Gatekeeper complains on relaunch, xattr -dr com.apple.quarantine "/Applications/$NAME.app" clears it. Local builds are unsigned.
Show full SKILL.md (212 more words)Show less

happy-app-logs (remote log receiver)

bash
pnpm --filter happy-app-logs dev       # starts on http://0.0.0.0:8787

Receives POST requests to /logs from the mobile app's patched console (see consoleLogging.ts). Logs to stdout and ~/.happy/app-logs/<timestamp>.log.

To connect: set the log server URL in the app's dev settings to http://<LAN_IP>:8787. The app's consoleLogging.ts sends all console.log/warn/error to this endpoint when configured.

Console output must be enabled in the app (dev/preview variants default on, production defaults off, togglable from the dev settings screen).

Cross-cutting

  • Hoisted deps: pnpm hoists node_modules to the repo root. packages/*/node_modules/ is mostly empty. Node's resolution walks up, so imports work transparently.
  • Workspace deps: "@slopus/happy-wire": "workspace:*" resolves to packages/happy-wire/ — edits are picked up live.
  • $npm_execpath: legacy; happy-cli uses pnpm literally. Windows cmd.exe doesn't expand $VAR.
  • Build before tests: tests spawn the built CLI binary (for daemon integration), so pnpm test runs build first. Do not remove.

Releasing

Do not publish by hand. Use /release — it handles npm publish, git tags, GitHub releases, and the smoke check.

Troubleshooting

happy: command not found     → pnpm --filter happy cli:install
daemon won't start           → happy daemon stop; rm ~/.happy/daemon.state.json.lock; happy daemon start
wrong `happy` version        → which happy && ls -la $(which happy) — confirms where it resolves to
tools/unpacked missing       → pnpm install (postinstall re-extracts)
stale deps after branch swap → pnpm install (pnpm is picky about lockfile drift)

Rules

  • Never use npm install or yarn install — only pnpm.
  • Never add a dev / cli tsx-based script back to happy-cli. The build step is not optional — daemon spawns the built binary and would desync.
  • Never bring back release-it. Releases go through /release.
  • Never introduce ~/.happy-dev as a default. It exists as an opt-in via HAPPY_HOME_DIR, nothing more.

© slopus, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/dev of slopus/happy.

Open the folder on GitHubat commit 7ea7017

Compare with similar skills

Happy Monorepo Dev Guide next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Happy Monorepo Dev Guide compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Happy Monorepo Dev Guide this skillslopus/happy24k—~1.8kAutomated safety check: PassMIT
Angular Developerradix-ng/primitives274—~1.2kAutomated safety check: PassMIT
Ever Worksever-works/ever-works158—~2.2kAutomated safety check: PassAGPL-3.0
Ckeditor5 TestingTriliumNext/Trilium38k—~3.3kAutomated safety check: PassAGPL-3.0
Project Scaffoldingaiskillstore/marketplace430—~2kAutomated safety check: PassNone
Create Saleor Packagesaleor/apps162—~608Automated safety check: PassCustom licence

Similar skills

  • Angular Developer

    radix-ng/primitives

    Angular framework reference for building this signals-first, headless directive library.

    274 GitHub stars~1.2k tokensUpdated 8 days ago
    DevelopmentAuto-check passed
  • Ever Works

    ever-works/ever-works

    Repo-specific guide to the Ever Works monorepo (ever-works/ever-works) — its pnpm + Turborepo layout, the per-workspace test runners (Jest vs Vitest vs Playwright), file-naming and import-alias…

    158 GitHub stars~2.2k tokensUpdated 2 days ago
    Testing & QAAuto-check passed
  • Ckeditor5 Testing

    TriliumNext/Trilium

    Testing CKEditor 5 plugins in the Trilium monorepo. An agent skill from TriliumNext/Trilium.

    38k GitHub stars~3.3k tokensUpdated today
    Testing & QAAuto-check passed
  • Project Scaffolding

    aiskillstore/marketplace

    IDE-grade project scaffolding wizard for creating new projects with comprehensive configuration.

    430 GitHub stars~2k tokensUpdated today
    DevelopmentAuto-check passed
  • Scaffold a new shared package in the saleor-apps monorepo under ./packages/.

    162 GitHub stars~608 tokensUpdated 6 days ago
    DevelopmentAuto-check passed
  • Turborepo Monorepo

    giuseppe-trisciuoglio/developer-kit

    Provides comprehensive Turborepo monorepo management guidance for TypeScript/JavaScript projects.

    355 GitHub stars~2.3k tokensUpdated 27 days ago
    DevelopmentAuto-check: notes

More from slopus/happy

All 8 skills in this repo
  • Searches past Claude Code, Codex and Cursor sessions and summarizes what was worked on, tried or decided, using extraction scripts instead of reading raw logs.

    24k GitHub stars~3.1k tokensUpdated today
    Auto-check passed
  • Agent Browser CLI

    slopus/happy

    Drives a real browser from the shell with the agent-browser CLI: open pages, snapshot elements by ref, click, fill and extract, for testing web flows.

    24k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Traces how an action moves through your code and draws it as a compact ASCII tree: functions called, payload types, state changes and components that re-render.

    24k GitHub stars~654 tokensUpdated today
    Auto-check passed
  • Queries live Prometheus metrics and manages Grafana dashboards as code for Happy's infrastructure, using the grafanactl CLI and the Grafana datasource proxy API.

    24k GitHub stars~2k tokensUpdated today
    Auto-check: notes
  • Tests interactive CLI and TUI programs with Microsoft's tui-test, driving prompts, arrow keys and screen output in a real pseudo-terminal.

    24k GitHub stars~603 tokensUpdated today
    Auto-check passed
  • Walks you through releasing a component of the Happy monorepo (CLI, mobile, web or server) from a clean local main that matches origin/main.

    24k GitHub stars~6.6k tokensUpdated today
    Auto-check passed

Questions about Happy Monorepo Dev Guide

What does Happy Monorepo Dev Guide do?

Local development guide for the Happy pnpm monorepo: install, build, test and run the CLI, server, Expo app and Tauri desktop packages. Happy is a pnpm monorepo, so everything goes through pnpm workspaces rather than npm or yarn.happy folder as production.

When should I use Happy Monorepo Dev Guide?

Happy Monorepo Dev Guide fits situations like: setting up the Happy monorepo for the first time; rebuilding and relinking the happy CLI after a code change; running one test file or only the unit tests in a package; pointing the CLI or app at a local development server.

How do I install Happy Monorepo Dev Guide in Claude Code?

Run `npx skills add slopus/happy --skill dev -a claude-code`. Or copy the skill folder (.agents/skills/dev in slopus/happy) into .claude/skills/dev in your project. Claude Code loads it when a task matches its description.

How do I install Happy Monorepo Dev Guide in Codex?

Run `npx skills add slopus/happy --skill dev -a codex`. Or copy the skill folder (.agents/skills/dev in slopus/happy) into .agents/skills/dev in your project. Codex loads it when a task matches its description.

Can I use Happy Monorepo Dev Guide in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add slopus/happy --skill dev -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dev, .gemini/skills/dev, .github/skills/dev and .opencode/skills/dev in your project.

What does Happy Monorepo Dev Guide need to run?

Going by SKILL.md and its folder, Happy Monorepo Dev Guide needs the command-line tools its instructions call (pnpm, npm, osascript and yarn). Our summary lists: pnpm and Node; A checkout of the slopus/happy monorepo.

Does Happy Monorepo Dev Guide access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Happy Monorepo Dev Guide safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Happy Monorepo Dev Guide use?

Happy Monorepo Dev Guide is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Happy Monorepo Dev Guide use?

About 1.8k tokens (SKILL.md is roughly 7.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Happy Monorepo Dev Guide?

Skills that share tags, products or a category with Happy Monorepo Dev Guide: Angular Developer (radix-ng/primitives, 274 stars), Ever Works (ever-works/ever-works, 158 stars), Ckeditor5 Testing (TriliumNext/Trilium, 38k stars) and Project Scaffolding (aiskillstore/marketplace, 430 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Happy Monorepo Dev Guide?

slopus (a GitHub organization) maintains it in slopus/happy, which has 24,039 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 7, 2026.

Source: slopus/happy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.