pet
Set the OpenLoomi Pet to a specific state (theme-agnostic; fox sprite set active by default)
mkdir -p ~/.claude/commands && curl -fsSL https://raw.githubusercontent.com/melandlabs/openloomi/HEAD/plugins/claude/commands/pet.md -o ~/.claude/commands/pet.mdpet.md
# /openloomi:pet <state>
The bridge accepts 9 states for client-side validation:
`happy`, `idle`, `juggling`, `needsinput`, `presenting`, `sleeping`,
`sweeping`, `thinking`, `working`.
However, `POST /api/pet/state` only accepts 7 of these:
`idle`, `thinking`, `working`, `juggling`, `happy`, `presenting`,
`needsinput`.
`sleeping` and `sweeping` are capybara-theme vocabulary managed by the
Loop baseline watcher — the API returns 400 `invalid_state` for them.
The bridge currently forwards them and surfaces the 400 as
`PET_FAILED` rather than rejecting client-side. Avoid requesting those
two from Claude; let the Loop baseline watcher set them.
Run:
```bash
node ${CLAUDE_PLUGIN_ROOT}/scripts/loomi-bridge.mjs pet <state>
```
- If the state is one of the 7 API-accepted values, the bridge returns
`{ok: true, state, response: { ok: true, ... }}`.
- If the state is `sleeping` / `sweeping` (bridge accepts but API
rejects), the bridge returns `{ok: false, code: "PET_FAILED",
status: 400, error: { raw: "invalid_state" }}`.
- If the state is anything else, the bridge returns `{ok: false, code:
"INVALID_STATE", validStates: [...]}` client-side without hitting
the API.
- If the `POST /api/pet/state` endpoint is not yet exposed by OpenLoomi,
the bridge returns `{ok: false, code: "ENDPOINT_MISSING", ...}` with a
polite notice. Treat that as a non-blocking outcome for the user.
Tips:
- Manual `idle`, `sleeping`, `sweeping`, `presenting` are managed by the
loop watcher — changing them from Claude will be quickly overridden.
- Hooks handle automatic state transitions; `/openloomi:pet` is for
explicit user-driven overrides.Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.
Use 1000+ external apps via Composio - either directly through the CLI or by building AI agents and apps with the SDK
Walk the user through installing the optional composio skill and turning on screen memory
Persist learning across turns by actively maintaining MENTAL_MODEL.md in the workspace. Use for iterative coding, debugging, benchmarking, or any feedback-driven task; read and update the file with actual filesystem writes before every response, never just hidden/internal memory.
Create an end-to-end Continual Learning Bench task. Use when adding a new src/tasks/<name> benchmark task, including design interview, concrete Jinja prompt templates, JSON action contracts, observation templates, debug schedule, behavioral E2E tests, validation, smoke/debug runs with icl and icl_notepad, and README documentation.
Drive a native macOS app via the cua-driver CLI (default) or MCP server — snapshot its AX tree, click/type/scroll by element_index, verify via re-snapshot. Use when the user asks you to operate, drive, automate, or perform a GUI task in a real macOS application on the host (e.g. "open a file in TextEdit", "navigate to /Applications in Finder", "click the Save button in Numbers").
High-performance data analysis using Polars - load, transform, aggregate, visualize and export tabular data. Use for CSV/JSON/Parquet processing, statistical analysis, time series, and creating charts.
Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of "Word doc", "word document", ".docx", or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a "report", "memo", "letter", "template", or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.