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
- 511
- planned
- 4,959
- shipped
- (motir-ai) Each graph machine's reconcile keeps only the recently read graphs it is a replica for, and drops every graph it no longer servesA dedicated code-graph service serves every tenant's graph reads, so any number of planning sessions read current code and the planning machines hold no graphs
- (motir-ai) The control plane sends a new pointer's refresh notice to that repository's two replicas onlyA dedicated code-graph service serves every tenant's graph reads, so any number of planning sessions read current code and the planning machines hold no graphs
- (motir-ai) `RemoteGraphStore` sends each read to the less busy of the repository's two replicas and retries once on the other after a connection error, a timeout or a 5xxA dedicated code-graph service serves every tenant's graph reads, so any number of planning sessions read current code and the planning machines hold no graphs
- (motir-ai) Graph routing — the running graph machines from Fly's `vms.motir-codegraph.internal` record, and each repository's 2 replicas by rendezvous hashing of (organisation, repository)A dedicated code-graph service serves every tenant's graph reads, so any number of planning sessions read current code and the planning machines hold no graphs
- The graph service spreads graphs across its machines, survives losing one, and alerts when it needs anotherA dedicated code-graph service serves every tenant's graph reads, so any number of planning sessions read current code and the planning machines hold no graphs
- (motir-core · CLI) The goose chat adapter — the unmodified `goose run` in its stream-json output, each event mapped to the transcript shape, Stop, the session list from `goose session list` and resume through `--resume --session-id`, against recorded real streamsYour 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 kimi chat adapter — the unmodified `kimi -p` in its stream-json output, each event mapped to the transcript shape, Stop, the session list read from kimi's own session index and resume through `--session`, against recorded real streamsYour 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 · test) E2E + paced acceptance video — on stubbed Claude Code and Codex CLIs replaying recorded streams: switch to Chat, send a prompt and watch the reply and a tool-call row stream in, expand it, ask a follow-up, Stop a turn, close and reopen the panel and resume the listed session, do the same on Codex, see aider's disabled tab, a Claude Code agent on a subscription sign-in refused while its terminal still works, and a not-signed-in agent's stateYour 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 · test) Story test gate — coverage floor over the chat endpoint, the five adapters, the relay's chat channel and the tab; the relay → real chat server seam, each adapter's recorded stream → transcript → tab, Claude Code refused on a subscription with no process spawned, owner-only refusal against the real database, chatting holding the agent awake, and guards that no chat content reaches a log, the database or Sentry and that no model call or token usage is recordedYour 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 Chat tab in the agent panel — beside Terminal, the transcript streaming in with collapsible tool-call rows and diffs, the prompt box with Send and Stop, the session list with resume, aider's disabled tab from `CHAT_PROFILES`, Claude Code's subscription refusal, the not-signed-in and no-chat-server (4411) states, reconnect, in en and zh, built to the approved deltaYour 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 OpenCode chat adapter — the unmodified `opencode` in its JSON event output, each event mapped to the transcript shape, Stop, the session list and resume through OpenCode's own session option, against recorded real streamsYour 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 Codex chat adapter — the unmodified `codex exec --json`, each event mapped to the transcript shape (message, command, file change, end of turn), Stop, the session list read from Codex's own store and resume through its own option, against recorded real streamsYour 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 Claude Code chat adapter — gated on an API-key or cloud-provider sign-in through `claude auth status --json` and refused on a Claude subscription, the unmodified `claude -p` stream-json mapped to the transcript shape, Stop, the session list from Claude Code's own store and resume, against recorded real streamsYour 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 relay carries a chat channel — the owner-only ticket names the channel, the relay dials `/v1/chat` with the same token, chat frames bump activity like terminal frames, the chat channel refuses in words when the agent's image has no chat server, open and close recorded, no frame 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
- (motir-core · CLI) The in-agent server serves `/v1/chat` — the relay token verified as for the terminal, the transcript event protocol, the adapter contract and the supported-profile answer, one running turn per agent with Stop, the session list and resume delegated to the adapter, the sign-in gate, no prompt, reply or tool output logged, released by a changesetYour 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
- Chat with your agent in the panel — a session transcript with its tool calls and a prompt box, for every profile whose CLI streams a headless session, beside the terminalYour 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
- (ops) Run `motir-codegraph` on two always-on machines — `fly scale count 2`, read back from `fly machine list`A dedicated code-graph service serves every tenant's graph reads, so any number of planning sessions read current code and the planning machines hold no graphs
- Roles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core · verification) VERIFY the retired access level is GONE from production — no `project."accessLevel"` column or `project_access_level` type in the catalog, no schema drift against the serving build, and no missing-column error in any of the three release windowsRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core · test) E2E + acceptance video — open /code for a repository refused for size, read the size, the limit and the suggestion, then see the row return to normal after a successful indexA dedicated code-graph service serves every tenant's graph reads, so any number of planning sessions read current code and the planning machines hold no graphs