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
- 6
- requests
- 4
- upvotes
- 534
- planned
- 4,982
- shipped
- (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
- (motir-core · test) Story E2E — a real MCP client against the running app lists every tool with its title and hints, a read-only call and a destructive call behave as their hints say, and the recorded `tools/list` is published as the story's receiptMotir 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 — the coverage floor over the changed MCP surface, `tools/list` through the real `/api/mcp` route with a PAT against Claude's directory criteria, the catalogue agreeing with the handshake, and the guard that a read-only tool's handler writes nothingMotir 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 published tool catalogue carries each tool's title and hints — `GET /api/docs/mcp-tools.json` rows gain `title` and `annotations` without breaking the route's dependency-graph rule, and `docs/mcp.md` says what the hints promiseMotir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- (motir-core) Every MCP tool declares its hints — a total `TOOL_ANNOTATIONS` table over `McpToolName`, each row checked against the tool's handler, injected at the `registerTool` seam, which also refuses a tool with no title or one over 64 charactersMotir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- Claude asks before Motir writes — every MCP tool carries a human title and a read-only or destructive hintMotir 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) My agents, delta — the Chat tab beside Terminal: the transcript with prompts, a streaming reply, collapsed and expanded tool-call rows (a read, an edit with its diff, a command with its output), the end-of-turn and stopped states; the prompt box with Send and Stop; the session list and a resumed session; aider's disabled tab, Claude Code refused on a subscription sign-in, not signed in, no chat server, waking, connecting and lost; the narrow widthYour 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 · decision) Chat with your agent — each CLI's headless stream read from its docs and shipped binary and the supported set it yields, whether a Motir-rendered chat on a subscription sign-in is within Anthropic's terms, the `/v1/chat` protocol behind the relay token, one transcript event shape and the adapter contract, a turn's start and stop, the session list and resume from the CLI's own store, activity, and what is never loggedYour 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