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) Start a run in my agent — `agentInstanceRunService.start`: the owner, project, readiness, one-active-run, image-capability and sign-in refusals; wake through the lifecycle with its refusals passed through; open the run `origin: instance` with its legs, claim and stamp the cards, mint the run credential and no gateway key, and launch through the terminal server; its route and the read of my agents offered for a cardYour 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 · cli) The agent's terminal server starts and stops a run — a local launch command that opens a run-tagged PTY session running `motir run` and returns at once, stop for that session, a sign-in query answered by the same credential check the panel sees, the run session listed so the terminal can attach to it, and the capability the boot probe readsYour 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 · cli) `motir run` inside an agent — each offered profile's unattended agent command in `agentProfiles.ts`, and an agent mode that adopts the server-opened run with that command and its run token, with the git credential helper scoped to the run's process and never written into the agent's home or the developer's own git configYour 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) The run record knows its agent — `DispatchRunOrigin.instance`, `DispatchRun.agentInstanceId` with at most one running run per agent enforced by the database, the active-run read by agent, the DTO and mappers carrying the agent's name and coding agent, and every switch on `origin` made total over the new valueYour 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
- Send a ready card to one of your instances — Run in my instance runs `motir run` there with the instance's own agent, recorded on the shared run record, and ends in a pull requestYour 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) A production P2028 reports its pool tags as `unmeasured` — the Sentry hook reads a different copy of `transactionStall.ts` from the one `lib/db.ts` hands the pool to
- IndexDispatchFailedError: Indexing moooon-B-V/motir-core into project cmqfb4d8q000e2d0i6n62otyc failed (upload_failed): the graph was built but object storage refused or dropped the upload
- (research) Why motir-core's code graph is ~530 MB uncompressed when it measured ~80 MB in 2026-08
- (verification) On app.motir.co, one design card run against a repository on `@motir/design-system` and one against an imported repository without it each come back in that project's own look
- Story E2E — a scripted install transcript in CI: a clean Claude Code adds the marketplace from the checkout, installs `motir@motir-skills`, its inventory lists the six skills and the `motir` MCP server, and the installed runner prints the pinned CLI versionMotir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- Story integration gate (motir-skills) — coverage floor over `scripts/validate.py` and the runner, the runner's pin read back through `validate.py`'s npm check, and the whole tree through `claude plugin validate --strict`Motir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- The README's install section and the six skills' connect-the-MCP lines say what the plugin brings — the skills, the OAuth-signed `motir` MCP and the CLI runner — how a PAT user connects by hand instead, and the Node ≥22 needMotir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- A pinned `motir` CLI runner — `scripts/motir` runs `npx --yes @motir/cli@<pin>` with the caller's arguments and exit code, refuses a missing or pre-22 Node in one line, and `validate.py` asserts the pin is a published npm versionMotir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- 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