Skip to content

feat(gojnimer6553): add happy module - #1039

Open
gojnimer6553 wants to merge 3 commits into
coder:mainfrom
gojnimer6553:add-happy-module
Open

feat(gojnimer6553): add happy module#1039
gojnimer6553 wants to merge 3 commits into
coder:mainfrom
gojnimer6553:add-happy-module

Conversation

@gojnimer6553

@gojnimer6553 gojnimer6553 commented Aug 5, 2026

Copy link
Copy Markdown

Description

Adds a new happy module, wrapping slopus/happy so a Coder workspace can be paired to a running Claude Code session from the Happy mobile/web app, end-to-end encrypted.

Happy has no non-interactive pairing mode -- the CLI always renders an interactive prompt and, for the mobile flow, a QR code / happy://terminal?... deep link in the terminal. Since there's also no way to request a fresh pairing link from an already-paired machine without a full re-pair, the module embraces that: it drives Happy's interactive prompt through a real tmux pty behind a coder_app tile, and every click mints a brand-new pairing link (rendered as both a scannable QR code and plain text), killing any previously paired session first.

tmux is a genuine runtime dependency (Happy's Ink UI needs a real terminal); the install script best-effort auto-installs it via the workspace's system package manager (apt-get/dnf/yum/apk/pacman) when root or passwordless sudo is available, and fails with a clear message otherwise -- so it works out of the box on most images without requiring a Dockerfile change.

Type of Change

  • New module
  • New template
  • Bug fix
  • Feature/enhancement
  • Documentation
  • Other

Module Information

Path: registry/gojnimer6553/modules/happy
New version: v0.0.1
Breaking change: [ ] Yes [x] No

Testing & Validation

  • Tests pass (bun test) -- 15 Terraform native tests (main.tftest.hcl) and 8 TypeScript/Docker tests (main.test.ts), including a real npm install of happy and a real pairing cycle against Happy's hosted auth API
  • Code formatted (bun fmt)
  • Changes tested locally -- deployed to a real Kubernetes-backed Coder workspace end-to-end: real happy install, real tmux-driven pairing automation, live QR code + deep link rendered, tmux auto-install verified on a clean container

Related Issues

None

gojnimer6553 and others added 3 commits August 5, 2026 05:51
Runs slopus/happy in a Coder workspace: a single app tile shows a QR
code and direct link for pairing the Happy mobile/web app to the
Claude Code session running in the workspace. Since happy has no
non-interactive pairing mode, the module drives its interactive
auth-method prompt through a real tmux pty on every click and mints a
fresh pairing link each time.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Best-effort installs tmux via the workspace's system package manager
(apt-get/dnf/yum/apk/pacman) when running as root or with passwordless
sudo, since tmux has no official portable static binary like Node does.
Falls back to a clear error when neither privilege path is available.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…convention

Reverts the icon default to /icon/happy.svg -- every module in the
registry uses this Coder-served path for coder_app/coder_script icons,
even when the icon isn't yet in Coder's built-in bundle (it will show
broken here until Coder adds it, same as the sibling t3code module).
A personal fork URL was an unprecedented, non-durable stopgap.

Also fixes README usage examples to start at version 0.0.1, matching
how other first-time module submissions are versioned (e.g.
matifali/omnigent, coder/agent-firewall), not 1.0.0.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant