openloomi-loop
openloomi's Loop — the proactive execution brain that runs inside the OpenLoomi desktop app. Use this skill to inspect state, run a tick, schedule / cancel decision actions, tune preferences, and extend Loop with user-defined decision types, Composio-backed signal channels, or deterministic classifier rules. Triggers: 'openloomi loop', 'loop tick', 'loop schedule', 'loop inbox', 'loop run', 'proactive decisions', 'signal → decision → execute', 'pull signals', 'decision queue', 'register loop type', 'add loop decision type', 'register custom channel', 'add composio channel', 'add loop rule', 'r
npx skills add melandlabs/openloomi --skill openloomi-loop --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
> **Note:** If OpenLoomi readiness is unknown, use `openloomi-setup` first. If OpenLoomi Desktop is not installed, follow [Getting Started](https://openloomi.ai/docs/getting-started). # OpenLoomi Loop — The Proactive Execution Brain Loop pulls signals from connected integrations, classifies them into typed decisions, and lets the user approve execution from the pet or the web UI. This skill is a thin Claude-side wrapper around Loop's HTTP API. ## Where things live | Concern | Location | |---|---| | Business logic | Loop's TypeScript core (closed `DecisionType` + classifier + scheduler) | | HTTP API | `/api/loop/*` — `state`, `decisions`, `decision/[id]`, `card/[id]`, `connectors`, `brief`, `wrap`, `tick`, `preferences`, `action/*`, `types`, `types/[id]`, `channels`, `channels/[id]`, `classifier-rules`, `classifier-rules/[id]`, `classifier-rules/dry-run` | | Persistence | `~/.openloomi/loop/{signals.jsonl,decisions.json,status.json,connectors.json,config.json}` | | Scheduler | Three `ScheduledJob` rows: `loop.tick`, `loop.brief`, `loop.wrap` (registered by the loop scheduler) | | Pet surface | Tauri Rust thread `loomi-pet-decision-watcher` polls `decisions.json` mtime every 2s and e
- Where things live
- Base URL
- Auth
- API quick reference
- Examples
- Registering custom extensions
- Register a custom decision type
- Register a Composio-backed channel
- List / remove custom extensions
- Register a deterministic classifier rule
- How a tick flows
- Memory
- Constraints
- Legacy daemon cleanup
Dashboard snapshot curl -sS "$BASE/api/loop/state" -H "Authorization: Bearer $TOKEN" | jq . Run one tick curl -sS -X POST "$BASE/api/loop/tick" -H "Authorization: Bearer $TOKEN" List pending decisions curl -sS "$BASE/api/loop/decisions?status=pending" \ Read a single decision / card curl -sS "$BASE/api/loop/decision/dec_xxx" -H "Authorization: Bearer $TOKEN" curl -sS "$BASE/api/loop/card/dec_xxx" -H "Authorization: Bearer $TOKEN" Run a decision (returns action_id; cron fires it ~30s later)
What does the openloomi-loop skill do?
openloomi's Loop — the proactive execution brain that runs inside the OpenLoomi desktop app. Use this skill to inspect state, run a tick, schedule / cancel decision actions, tune preferences, and extend Loop with user-defined decision types, Composio-backed signal channels, or deterministic classifier rules. Triggers: 'openloomi loop', 'loop tick', 'loop schedule', 'loop inbox', 'loop run', 'proactive decisions', 'signal → decision → execute', 'pull signals', 'decision queue', 'register loop type', 'add loop decision type', 'register custom channel', 'add composio channel', 'add loop rule', 'r
How do I install it?
Run `npx skills add melandlabs/openloomi --skill openloomi-loop --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From melandlabs/openloomi, a repository with 764 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
