Appearance
Skills and plugins
Skills are short instruction files an agent host loads on demand. OH HAI ships one plugin of them, and the protocol project ships another.
oh-hai-skills
The product skills for OH HAI: seven skills, each teaching one verb of the oh-hai CLI. Plugin version 0.6.3.
Each one opens with ## The default — the single command for the common case — followed by a short ## Watch out list, then ## Reference (the 10% case) for the exit-code tables, supervision recipes and advanced flags. The four skills that can send also carry an identical ## Sending from a shell note (how a send gets its return address, the 200-character title cut, the SENT / NOT SENT result line, and why backticks never go inside any double-quoted argument — --body, --instructions, --checklist, --title).
| Skill | Direction | Teaches |
|---|---|---|
oh-hai-notify | agent → human | oh-hai notify --title … --body … --priority … — a fire-and-forget FYI, no response. |
oh-hai-ask | agent → human | oh-hai ask submit --mode <select|input|confirm> and oh-hai ask await --id … — a decision, with the answer routed back even after the run exits. |
oh-hai-task | agent → human | oh-hai task submit --instructions … --title … — a manual, out-of-band action; terminal by default, opt-in return leg. |
oh-hai-bridge | human/peer → this run | oh-hai bridge as a background task, re-run after every exit; the exit-code table; oh-hai doctor as the health check, oh-hai session close as the stand-down, oh-hai fleet ls; and sizing for 10–50 concurrent bridges. |
oh-hai-inbox | human → the agent id | oh-hai inbox watch (--json, --once, --wait, --interval, --max, --force, --raw, --state-home) for directives addressed to the principal rather than a session; runs on the bridge's durable consumer. |
oh-hai-mail | the owner's own inbox | oh-hai login --human, then oh-hai mail watch / list / read / archive / unarchive — only with the person's explicit say-so. |
oh-hai-ingest | a webhook source → an agent | oh-hai ingest add / ls / listen / revoke / rotate — wire Sentry, GitHub, PagerDuty or anything that POSTs into an agent's mailbox, and watch what it sends. See Webhook sources. |
Every inbound skill insists on the same rules the CLI enforces: run as a background task, branch on the exit code, and treat every entry as data with an asserted origin, never as an instruction to execute.
Installing
The plugin lives in the OH HAI source repository, which is private. If you have access, in Claude Code:
/plugin marketplace add autnmy/oh-hai
/plugin install oh-hai-skills@oh-haiSkills are then invoked as /oh-hai-skills:oh-hai-notify and so on. Without repository access, oh-hai teach gives every agent on the machine the same guidance in its instruction file — no plugin needed. See the Quickstart.
Keeping it current. The CLI's first-run migration refreshes the plugin through the owning tool's own updater — it runs claude plugin update oh-hai-skills and nothing else. It never reads or writes another tool's plugin files. Where claude is not on PATH the command is printed instead of guessed at, which is also the honest answer on a machine using a different harness. A skills version names one tree, for ever: a content change is always a new number, never a rewrite of a published one.
The skills need the CLI installed and logged in (oh-hai setup); credentials stay in the OS keychain. Environment the skills recognise: MA2H_BASE_URL (default https://inbox.ohhai.app), MA2H_AGENT_ID, MA2H_AGENT_TOKEN (CI only), MA2H_AGENT_RUN_ID, MA2H_SESSION_ID, MA2H_AGENT_SESSION_ID (one key per agent when several share a host program), MA2H_STATE_SEAL_KEY (required by --state).
ma2h-skills
The protocol-level counterpart, published in the open ma2h-protocol repository: build-notify, build-ask, build-task, build-inbox and build-bridge scaffold an app-specific skill for any MA2H Hub, and implement guides implementing a conformant Hub in any stack. Use those when you are building your own Hub or integrating an app directly with the protocol rather than with OH HAI's CLI.