/happier-session-control
Manage Happier sessions (list/status/send/wait/history/stop + execution runs) via the happier CLI JSON contract.
$ npx -y skills add happier-dev/happier --skill happier-session-control --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/happier-session-control
Context preview
The summary Claude sees to decide when to auto-load this skill.
Manage Happier sessions (list/status/send/wait/history/stop + execution runs) via the happier CLI JSON contract.
SKILL.md
happier-session-control.SKILL.mdname: happier-session-control
description: Manage Happier sessions (list/status/send/wait/history/stop + execution runs) via the happier CLI JSON contract.
metadata: {"openclaw":{"requires":{"bins":["happier"]},"homepage":"https://github.com/happier-dev/happier"}}Happier Session Control (CLI JSON)
This skill enables an agent framework (for example OpenClaw) to control Happier sessions using the **existing** `happier` CLI in `--json` mode.
Prerequisites
- The `happier` CLI is installed and authenticated.
- If using multiple servers/profiles, pass server selection flags **before** `session` (prefix-only):
- `happier --server <profile-id-or-name> session list --json`
- `happier --server-url <url> --webapp-url <url> session list --json`
Contract
All JSON outputs are a pure-stdout envelope:
{ "v": 1, "ok": true, "kind": "...", "data": {} }or:
{ "v": 1, "ok": false, "kind": "...", "error": { "code": "..." } }Common error codes to handle:
- `not_authenticated`: run `happier auth login` on the host (or mount/provide a valid `HAPPIER_HOME_DIR`).
- `session_id_ambiguous`: pick deterministically from `error.candidates` (prefer exact id; otherwise ask the user).
- `session_not_found`: call `happier session list --json` and retry.
- `unsupported`: feature disabled by server policy or backend doesn’t support the requested intent.
Auth Commands (JSON)
Check auth status without scraping human output:
happier auth status --json
Session Commands
List sessions:
happier session list --json
Inspect session status (server snapshot):
happier session status <session-id-or-prefix> --json
Inspect session status with a best-effort live refresh:
happier session status <session-id-or-prefix> --live --json
Create/load a session by tag:
happier session create --tag <tag> --json
Send a message to a session:
happier session send <session-id-or-prefix> "<message>" --json
Send a message and wait until the session is idle:
happier session send <session-id-or-prefix> "<message>" --wait --timeout 300 --json
Wait for a session to become idle:
happier session wait <session-id-or-prefix> --timeout 300 --json
Stop a session:
happier session stop <session-id-or-prefix> --json
Read session history (compact is recommended for prompt stuffing):
happier session history <session-id-or-prefix> --limit 50 --format compact --json
Execution Run Commands
Start an execution run:
happier session run start <session-id-or-prefix> --intent review --backend claude --json
List runs for a session:
happier session run list <session-id-or-prefix> --json
Get a run:
happier session run get <session-id-or-prefix> <run-id> --include-structured --json
Send input to a run:
happier session run send <session-id-or-prefix> <run-id> "<message>" --json
Stop a run:
happier session run stop <session-id-or-prefix> <run-id> --json
Execute an action on a run:
happier session run action <session-id-or-prefix> <run-id> <action-id> --input-json '<json>' --json
Wait for a run to finish:
happier session run wait <session-id-or-prefix> <run-id> --timeout 300 --json
Stream turn IO for a streaming run (e.g. `intent=voice_agent`):
happier session run stream-start <session-id-or-prefix> <run-id> "<message>" --json
happier session run stream-read <session-id-or-prefix> <run-id> <stream-id> --cursor 0 --json
happier session run stream-cancel <session-id-or-prefix> <run-id> <stream-id> --json
Server Commands (JSON)
List server profiles:
happier server list --json
Current active server:
happier server current --json
Add a server profile non-interactively:
happier server add --name "My Server" --server-url https://example.com --webapp-url https://example.com --use --json
Switch active server:
happier server use <id-or-name> --json
Remove a server profile:
happier server remove <id-or-name> --force --json
Probe server reachability/version:
happier server test [<id-or-name>] --json
Set a one-off custom server as active:
happier server set --server-url https://example.com --webapp-url https://example.com --json
Read more
name: happier-session-control
description: Manage Happier sessions (list/status/send/wait/history/stop + execution runs) via the happier CLI JSON contract.
metadata: {"openclaw":{"requires":{"bins":["happier"]},"homepage":"https://github.com/happier-dev/happier"}}Happier Session Control (CLI JSON)
This skill enables an agent framework (for example OpenClaw) to control Happier sessions using the **existing** `happier` CLI in `--json` mode.
Prerequisites
- The `happier` CLI is installed and authenticated.
- If using multiple servers/profiles, pass server selection flags **before** `session` (prefix-only):
- `happier --server <profile-id-or-name> session list --json`
- `happier --server-url <url> --webapp-url <url> session list --json`
Contract
All JSON outputs are a pure-stdout envelope:
{ "v": 1, "ok": true, "kind": "...", "data": {} }or:
{ "v": 1, "ok": false, "kind": "...", "error": { "code": "..." } }Common error codes to handle:
- `not_authenticated`: run `happier auth login` on the host (or mount/provide a valid `HAPPIER_HOME_DIR`).
- `session_id_ambiguous`: pick deterministically from `error.candidates` (prefer exact id; otherwise ask the user).
- `session_not_found`: call `happier session list --json` and retry.
- `unsupported`: feature disabled by server policy or backend doesn’t support the requested intent.
Auth Commands (JSON)
Check auth status without scraping human output:
happier auth status --json
Session Commands
List sessions:
happier session list --json
Inspect session status (server snapshot):
happier session status <session-id-or-prefix> --json
Inspect session status with a best-effort live refresh:
happier session status <session-id-or-prefix> --live --json
Create/load a session by tag:
happier session create --tag <tag> --json
Send a message to a session:
happier session send <session-id-or-prefix> "<message>" --json
Send a message and wait until the session is idle:
happier session send <session-id-or-prefix> "<message>" --wait --timeout 300 --json
Wait for a session to become idle:
happier session wait <session-id-or-prefix> --timeout 300 --json
Stop a session:
happier session stop <session-id-or-prefix> --json
Read session history (compact is recommended for prompt stuffing):
happier session history <session-id-or-prefix> --limit 50 --format compact --json
Execution Run Commands
Start an execution run:
happier session run start <session-id-or-prefix> --intent review --backend claude --json
List runs for a session:
happier session run list <session-id-or-prefix> --json
Get a run:
happier session run get <session-id-or-prefix> <run-id> --include-structured --json
Send input to a run:
happier session run send <session-id-or-prefix> <run-id> "<message>" --json
Stop a run:
happier session run stop <session-id-or-prefix> <run-id> --json
Execute an action on a run:
happier session run action <session-id-or-prefix> <run-id> <action-id> --input-json '<json>' --json
Wait for a run to finish:
happier session run wait <session-id-or-prefix> <run-id> --timeout 300 --json
Stream turn IO for a streaming run (e.g. `intent=voice_agent`):
happier session run stream-start <session-id-or-prefix> <run-id> "<message>" --json happier session run stream-read <session-id-or-prefix> <run-id> <stream-id> --cursor 0 --json happier session run stream-cancel <session-id-or-prefix> <run-id> <stream-id> --json
Server Commands (JSON)
List server profiles:
happier server list --json
Current active server:
happier server current --json
Add a server profile non-interactively:
happier server add --name "My Server" --server-url https://example.com --webapp-url https://example.com --use --json
Switch active server:
happier server use <id-or-name> --json
Remove a server profile:
happier server remove <id-or-name> --force --json
Probe server reachability/version:
happier server test [<id-or-name>] --json
Set a one-off custom server as active:
happier server set --server-url https://example.com --webapp-url https://example.com --json
Web, Desktop & Mobile client for Codex, Claude Code, OpenCode, Kimi, Augment Code, Qwen, fully end-to-end encrypted
Repo: happier-dev/happier
Other skills on happier.
- /attack-conclusion
Adversarial self-review of your own conclusion, fix, or root-cause verdict before handoff — alternative causes, neighboring cases, blast radius, environment gap, hypothesis lock, subtraction, and a scan for fake-competence patterns. Use as a compact author check before
Open skill - /decompose-gates
Decompose a hard or multi-part task into independently checkable pieces with explicit verification gates and risk-weighted ordering. Use when planning corridor-sized work, writing lane briefs for subagents or Codex, or whenever a task is too large to verify as a whole.
Open skill - /handoff-report
Output contract for substantive deliverables — outcome first, evidence-pointed reasoning, observed/derived/assumed labels, residual risk last, failures never buried, and an optional evidence-backed retrospective for explicit requests or major program closeout. Use when reporting
Open skill - /happier-compatibility
Audit, design, implement, and verify Happier compatibility across UI, CLI, daemon, server, installers, and persisted state. Use when changes affect wire or semantic contracts, serialization, sessions/settings/queues, schemas or migrations, capability negotiation, mixed-version
Open skill - /happier-diagnose
Diagnose and explain a Happier runtime, session, daemon, provider (Claude/Codex/OpenCode), authentication, or connectivity incident from logs, structured diagnostics, runtime state, and source evidence without modifying repository implementation. Use for support investigation,
Open skill - /happier-github-ops
Run GitHub CLI commands as the Happier bot account via `yarn ghops` (environment override or validated macOS Keychain PAT + non-interactive).
Open skill

