Skip to content
Agent Workspaces
Skill

/happier-session-control

Manage Happier sessions (list/status/send/wait/history/stop + execution runs) via the happier CLI JSON contract.

From plugin
happier
2.2k1 skill8 agents37 commands2 MCP

Claude Code

$ npx -y skills add happier-dev/happier --skill happier-session-control --agent claude-code

SKILL.md

happier-session-control.SKILL.md
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
Read more
@happier-dev
Ships withhappier

Web, Desktop & Mobile client and orchestrator for Codex, Claude Code, OpenCode, Pi, Cursor, Grok, Antigravity, Kimi, Augment Code, Qwen, fully end-to-end encrypted

2.2k1 skill8 agents2 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
2.2k
Star history of happier-dev/happier on GitHub, a chart by star-history.com

More skills from other plugins.

paseo

paseo

Paseo reference for managing hosts, projects, workspaces, workspace scripts, agents, schedules, and heartbeats.

paseo10d23k
@getpaseo@getpaseoInstall Skill
10x
Auto-invoked

10x

Personalized audit that teaches the advanced Paradev (formerly Superset) features the user isn't using yet (automations, parallel…

paradev1d16k
@superset-sh@superset-shInstall Skill
capabilities

capabilities

Your capability catalog — read this at boot. Lists the temporal date-range skills and the external integrations (reached via the…

@chaitanyagiri@chaitanyagiriInstall Skill

Questions about happier-session-control.

Which coding agents can use happier-session-control?
happier-session-control installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.