happier-session-control

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

487 stars

Best use case

happier-session-control is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

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

Teams using happier-session-control should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/happier-session-control/SKILL.md --create-dirs "https://raw.githubusercontent.com/happier-dev/happier/main/openclaw/happier-session-control/skills/happier-session-control/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/happier-session-control/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How happier-session-control Compares

Feature / Agenthappier-session-controlStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

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

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 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:

```json
{ "v": 1, "ok": true, "kind": "...", "data": {} }
```

or:

```json
{ "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:

```bash
happier auth status --json
```

## Session Commands

List sessions:

```bash
happier session list --json
```

Inspect session status (server snapshot):

```bash
happier session status <session-id-or-prefix> --json
```

Inspect session status with a best-effort live refresh:

```bash
happier session status <session-id-or-prefix> --live --json
```

Create/load a session by tag:

```bash
happier session create --tag <tag> --json
```

Send a message to a session:

```bash
happier session send <session-id-or-prefix> "<message>" --json
```

Send a message and wait until the session is idle:

```bash
happier session send <session-id-or-prefix> "<message>" --wait --timeout 300 --json
```

Wait for a session to become idle:

```bash
happier session wait <session-id-or-prefix> --timeout 300 --json
```

Stop a session:

```bash
happier session stop <session-id-or-prefix> --json
```

Read session history (compact is recommended for prompt stuffing):

```bash
happier session history <session-id-or-prefix> --limit 50 --format compact --json
```

## Execution Run Commands

Start an execution run:

```bash
happier session run start <session-id-or-prefix> --intent review --backend claude --json
```

List runs for a session:

```bash
happier session run list <session-id-or-prefix> --json
```

Get a run:

```bash
happier session run get <session-id-or-prefix> <run-id> --include-structured --json
```

Send input to a run:

```bash
happier session run send <session-id-or-prefix> <run-id> "<message>" --json
```

Stop a run:

```bash
happier session run stop <session-id-or-prefix> <run-id> --json
```

Execute an action on a run:

```bash
happier session run action <session-id-or-prefix> <run-id> <action-id> --input-json '<json>' --json
```

Wait for a run to finish:

```bash
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`):

```bash
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:

```bash
happier server list --json
```

Current active server:

```bash
happier server current --json
```

Add a server profile non-interactively:

```bash
happier server add --name "My Server" --server-url https://example.com --webapp-url https://example.com --use --json
```

Switch active server:

```bash
happier server use <id-or-name> --json
```

Remove a server profile:

```bash
happier server remove <id-or-name> --force --json
```

Probe server reachability/version:

```bash
happier server test [<id-or-name>] --json
```

Set a one-off custom server as active:

```bash
happier server set --server-url https://example.com --webapp-url https://example.com --json
```

Related Skills

happier-testing

487
from happier-dev/happier

Repo-specific TDD and test-validation workflow for Happier changes, with lane selection, fixture policy, and anti-flake guardrails.

happier-github-ops

487
from happier-dev/happier

Run GitHub CLI commands as the Happier bot account via `yarn ghops` (forced PAT auth + non-interactive).

hig-components-controls

31392
from sickn33/antigravity-awesome-skills

Check for .claude/apple-design-context.md before asking questions. Use existing context and only ask for information not already covered.

Design GuidanceClaude

Pest Control Operations Agent

3891
from openclaw/skills

You are an expert pest control business operations advisor. Help operators with licensing, EPA/FIFRA compliance, pricing, route optimization, seasonal planning, technician management, and growth strategy.

Business Management

Export Compliance & Trade Controls

3891
from openclaw/skills

Analyze products, destinations, and end-users against US export control regulations (EAR, ITAR, OFAC sanctions). Generate classification recommendations, license requirements, and compliance checklists.

Regulatory Compliance

ecovacs-robot-control

3891
from openclaw/skills

Control Ecovacs/DEEBOT robot vacuums via the Ecovacs IoT API. Use when the user wants to control a robot vacuum, check battery, start/stop/pause cleaning, return to dock, check clean status, set suction/water level, manage schedules, check consumables, or control auto-empty station. Covers all mainstream Ecovacs protocols including clean_V2, charge, getBattery, getCleanInfo_V2, getStats, getSpeed/setSpeed, getWaterInfo/setWaterInfo, getWorkMode/setWorkMode, getLifeSpan, getAutoEmpty/setAutoEmpty, getCachedMapInfo, getMapSet, getSched_V2/setSched_V2.

Smart Home & IoT

unified-session

3891
from openclaw/skills

Unify all chat channels into one shared AI session for seamless cross-device continuity. Start a conversation on your laptop, continue from your phone — same context, same memory, zero loss. Use this skill whenever: - User wants multiple messaging channels (DingTalk, Feishu/Lark, Telegram, Discord, WhatsApp, Signal, Slack, webchat) to share one conversation - User mentions "shared session", "cross-device", "multi-channel", "unified session", "continue conversation", "seamless", "context lost", "memory lost", "上下文丢失", "记忆丢失", "多端共享" - User says their bot "forgets" what was said when they switch from one app to another - User asks how to make Telegram/Discord/DingTalk/Feishu/WhatsApp share context with webchat - User wants to switch between desktop and mobile without losing conversation history - User mentions dmScope, session routing, channel isolation, or session merging - User describes wanting to pick up where they left off on a different device or chat app - User complains about having separate conversations on each channel when they only have one agent - Even if the user doesn't use technical terms — if they describe the pain of "switching apps and the AI doesn't remember", this is the skill to use

session-guardian

3891
from openclaw/skills

Never lose a conversation again. Auto-backup, smart recovery, and health monitoring for OpenClaw sessions. Protects against gateway crashes, model disconnections, and token overflow. Use this skill when: - User worries about losing conversations after gateway restart or model crash - User mentions session backup, conversation recovery, session protection, or data loss - User's agent is slow or timing out (likely token overflow from large sessions) - User runs multiple agents and needs to track collaboration across sessions - User asks about session health, backup strategy, or disaster recovery - User mentions "对话丢失", "会话备份", "上下文溢出", "token超限", "Gateway重启后记忆丢失" - Even if user just says "my agent lost everything after a restart" — this is the skill

General Utilities

session-rotate-80

3880
from openclaw/skills

Auto-create a new session when OpenClaw context usage reaches 80% without requiring Mem0 or file memory systems. Use when users want default OpenClaw to proactively rotate sessions and avoid context overflow in long chats.

Workflow & Productivity

session-pack

89
from ten-builder/ten-builder

세션 종료 시 Memory, Handoff를 자동 정리. /pack

Workflow & ProductivityClaude

mijia-control

40
from lllooollpp/clawdbot-cn

Control and monitor Xiaomi Mijia smart home devices. Use this skill when the user wants to: 1) Switch device status (on/off, brightness, etc.) 2) List available home devices 3) Run automation scenes 4) Check environmental statistics.

Smart Home & IoT

session-handoff

24269
from davila7/claude-code-templates

Creates comprehensive handoff documents for seamless AI agent session transfers. Triggered when: (1) user requests handoff/memory/context save, (2) context window approaches capacity, (3) major task milestone completed, (4) work session ending, (5) user says 'save state', 'create handoff', 'I need to pause', 'context is getting full', (6) resuming work with 'load handoff', 'resume from', 'continue where we left off'. Proactively suggests handoffs after substantial work (multiple file edits, complex debugging, architecture decisions). Solves long-running agent context exhaustion by enabling fresh agents to continue with zero ambiguity.