moooon
Motir
Vibe the project. Bring an idea — Motir's three AI layers plan it, track it, and ship it, end to end. You're looking at Motir, built in Motir.
- Vibe Project
- Open Source
- AI Agent
- AI Loop
- 5
- richieste
- 0
- voti
- 382
- pianificate
- 4103
- rilasciate
- The plugin declares the `motir` MCP server — `plugin.json` gains an http `mcpServers.motir` at app.motir.co/api/mcp with no headers, moves to 0.4.0, and `validate.py` plus CI's `plugin validate --strict` hold it to the directory's shape (no top-level `bin/`, no bundled code, every path inside)Motir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- One install in Claude Code — the `motir` plugin carries the Motir MCP (signed into over OAuth) and a pinned `motir` CLI runner beside the six skills, and validates clean for Claude's plugin directoryMotir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- (human) Sign in through the plugin — install from the story branch's clone into a clean Claude Code, authenticate `motir` over OAuth against app.motir.co, see Motir's tools, and `motir next` read the ready set through the plugin's own MCPMotir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- Acceptance shard 4 runs at its 40-minute job timeout, so a slow runner dequeues green PRs
- (motir-ai) The indexer labels a motir-ai refusal at the grant as motir-ai's, not "object storage" — and the failure report carries its HTTP status
- ReviewAgentCard test flakes: it reads the switch's disabled state before the save transition ends
- (motir-core) Every job definition's cadence comment stops citing the retired :00/:30 cluster — the `lib/jobs/definitions/*` headers and `docs/jobs.md`'s Scheduled jobs section say what each cadence is for
- (motir-core) A conflicting pull request whose new head got no CI flaps its card In Review ↔ Implemented on every reconcile tick and raises an approve-to-merge gate over the OLD head — the head is read from the last check run, not the pull request
- (motir-ai) The upload grant checks the UNCOMPRESSED graph against its own ceiling, not the 512 MiB compressed-snapshot envelope
- (motir-ai) Hydrate a snapshot by STREAMING it to disk while hashing — never the whole compressed and decompressed graph in memory
- (motir-core · test) Story E2E + acceptance video — a client connects, the person signs in, picks a workspace and approves, the client reads, then Revoke in Connected apps cuts it off; and the Deny pathMotir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- (motir-core · test) Story integration gate — coverage floor over the OAuth surface, a real MCP SDK client through discovery → registration → PKCE → token → tools/call → refresh → revoke, PAT parity, grant narrowing and cross-workspace isolationMotir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- (motir-core) Build CONNECTED APPS on Account settings — the list and revoke routes over the person's own grants, and the pane from its design, where Revoke makes the next MCP call 401Motir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- (motir-core) Build the CONSENT screen from its design — the page the authorize step lands on, its workspace picker and permission list, Approve writing the grant, Deny returning `access_denied`, and every state the design drawsMotir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- (motir-core) Sweep the OAuth leftovers — a scheduled job deletes expired codes and tokens and dynamically registered clients that never received consentMotir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- (motir-core) A connection IS a grant — consent records (person, workspace, permission keys, client), an OAuth access token resolves to it, and `verifyMcpToken` accepts it beside a PAT and answers 401 with `resource_metadata`Motir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- (motir-core) The OAuth authorization server — `@better-auth/oauth-provider` wired into the Better-Auth instance, its tables migrated, dynamic registration / authorize / token / revoke, both `.well-known` metadata documents, PKCE S256 and the MCP `resource` enforcedMotir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- Sign in with Motir from Claude — the MCP becomes an OAuth resource: discovery, client registration, a consent screen that picks one workspace and its permissions, refreshable tokens, and connected apps you can revokeMotir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- (motir-core · design) Run in my agent, delta — the control and agent picker beside Run hosted on a ready card, waking then starting, every refusal in words (not signed in, other project, card not ready, credits cannot wake, a run already active naming it, image too old, coding agent cannot run cards), the run section and run modal for a run in an agent (agent · coding agent, machine time only), and the My agents panel showing the agent's live run and its session to watchYour own agent instances — host Claude Code, Codex or any sandbox agent in Motir's cloud on your own credential, see them on one page, work with one beside it, and let idle ones hibernate
- (motir-core) Pressing a PRIMARY gate (acceptance, design, decision) approves and merges a CONFLICTING pull request — the at-press mergeability read runs only on the merge gate's own press