setup
Run OpenLoomi one-time setup — auto-chains install → launch → guest login → ready in one call
mkdir -p ~/.claude/commands && curl -fsSL https://raw.githubusercontent.com/melandlabs/openloomi/HEAD/plugins/claude/commands/setup.md -o ~/.claude/commands/setup.mdsetup.md
# /openloomi:setup
The bridge is now an **end-to-end** wizard. A single `setup` invocation
walks the full state machine:
```
install OpenLoomi.app
→ launch the desktop app (`open -a <desktopMarker>`)
→ wait for the local HTTP API to come up
→ mint a guest bearer (one-tap sign-in)
→ { ready: true }
```
Each transition is automatic. **Do not** ask the user to click anything in
the GUI. The bridge only surfaces a stop condition when the next step
truly requires human action (e.g. no selected execution runtime is ready and
no direct AI provider is configured — if Claude is selected, point the user at
`claude auth login`; otherwise use OpenLoomi Desktop → API Settings).
## Steps
1. If the install needs explicit consent (the bridge returns
`setup: install_attempted` is the only case where this matters —
normally `--yes` is passed straight through), confirm with the user
before re-running.
2. Run: `node ${CLAUDE_PLUGIN_ROOT}/scripts/loomi-bridge.mjs setup --yes [--max-wait <ms>]`
3. Read the JSON. The bridge writes an audit trail of what it did into
`steps[]`. Surface that to the user so they can see which transitions
fired.
4. If `setup: ready` → done.
5. If `setup: awaiting_user_action` → the chain hit a step that genuinely
needs the user (e.g. `nextAction: login_openloomi` but `canGuestLogin:
false` because the local runtime didn't come up, or `nextAction:
configure_ai_provider` because the runtime reports no ready selected
execution provider and no per-user provider row). Explain what the
user needs to do and stop.
## Flags
| Flag | Default | Meaning |
| ---------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--yes` | off | Pre-approve install (otherwise the bridge prompts y/N — but in Claude Code's Bash tool there is no TTY, so without `--yes` the install would silently cancel). |
| `--max-wait` | 120000 | Global cap across all wait stages (in milliseconds). Defaults to 120s to absorb the first-run install + TCC prompts. |
| `--api-timeout` | 120000 | Per-stage budget for "waiting for local API". Independent of `--max-wait`. |
| `--install-timeout` | 300000 | Per-stage budget for "installing OpenLoomi". Covers download + copy on a 50 Mbps link. |
| `--launch-timeout` | 10000 | Per-stage budget for `open -a <bundle>`. Almost never actually hit; included for symmetry. |
| `--permission-timeout` | 60000 | Extra wait after `--api-timeout` if the desktop process is up but the API never woke up — typical macOS TCC/Accessibility prompt path. |
| `--bin-path` | _auto_ | Override the discovered helper binary path (advanced). |
## Live status
While the wizard is inside a long stage, the bridge writes a throttled
1 Hz line to **stderr** so the user can see progress:
```
· installing OpenLoomi (12s / max 5m) …
· waiting for local API (4s / max 2m) …
· waiting on macOS permission prompt (3s / max 1m) …
```
Stdout is reserved for the final JSON result — do not mix it.
## `api_not_ready` payload
When `--api-timeout` elapses, the wizard returns an **actionable** JSON
payload you can use to drive chat-side guidance. The original
`setup: "api_not_ready"` shape is preserved for backwards compatibility;
new fields are added alongside it.
| Field | Type | Meaning |
| ------------------- | -------- | ------------------------------------------------------------------------------------------------------------------- |
| `ok` | bool | Always `false` for this stop condition. |
| `setup` | string | Always `"api_not_ready"` here. |
| `code` | string | Stable machine code: `"API_NOT_READY"` or `"PERMISSION_PROMPT_LIKELY"` (when desktop process is up but API is not). |
| `stage` | string | Always `"wait_api"`. Reserved for future per-stage error codes. |
| `elapsedMs` | number | Wall-clock time since `/openloomi:setup` started. |
| `effectiveBudgetMs` | number | Total wait budget actually granted (api + permission grace if it kicked in). |
| `canResume` | bool | Always `true`. Re-running the slash command is the supported "keep waiting" action. |
| `resumeCommand` | string | A pre-built slash command the user can paste — already uses a sensible raised `--max-wait`. |
| `hints` | string[] | 1–3 hints, safe to print verbatim. Includes the macOS TCC prompt hint on Darwin. |
| `overCap` | bool | `true` if the elapsed time exceeded the global `--max-wait` cap (informational). |
| `steps` | Step[] | The existing audit trail. |
| `wait`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.
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").
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.
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.
openloomi HTTP API reference (local-first, served from the OpenLoomi Desktop app at http://localhost:3414). Use when working with openloomi backend routes — auth, AI, files, integrations, RAG, memory, Loop, pet, workspace, platform callbacks. Triggers: API endpoints, backend routes, /api/*, local API, port 3414, integrations REST, OAuth start, RAG search, loop state, memory search, pet state, audit logs
openloomi Connectors tools - manage the native 7 messaging integrations and pair with the composio skill for the 1000+ apps OAuth layer (Slack, Discord, X, Gmail, Outlook, Google Calendar/Drive/Docs, GitHub, Notion, Linear, HubSpot, LinkedIn, Jira, Asana). Triggers: connect platform, integration status, list accounts, disconnect, list-accounts, status, connect, send-reply, native vs composio, 1000+ apps, list connections.
Use this when users ask about openloomi features, capabilities, or how to use it. Examples: 'openloomi 怎么用', '你能做什么', 'What can you do?', 'How does openloomi work?', 'Tell me about openloomi features', 'What platforms does openloomi support?', 'How do I use scheduled tasks?', 'What is Loop?', 'How does the attention agent work?', 'What is a Decision Card?', 'How do connectors work?', 'How do I extend Loop with custom types?', 'What is a classifier rule?', 'How do I plug openloomi into Claude Code / Codex?'
openloomi Memory tools - search and manage the holistic context (people, projects, decisions, knowledge base, chat insights). Triggers: memory search, knowledge base, search documents, list insights, who is John, what did we decide about X, tiered memory, knowledge graph, people/projects/decisions, search-all, conversation memory