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
- 需求
- 4
- 贊同
- 500
- 已規劃
- 5,027
- 已發布
- (motir-core) The app's verification is a VALUE, not a boolean — registered · domain-verified (with its host) · self-registered — and the consent screen, the sign-in hand-off and Connected apps render it from the design, in en and zhMotir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- (motir-core) Motir accepts a Client ID Metadata Document — @better-auth/cimd with its hardened node transport and the MCP profile, the authorization-server metadata advertises client_id_metadata_document_supported, a discovered client is recorded as such, and DCR keeps workingMotir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- (motir-core) Upgrade better-auth and every @better-auth package from 1.6.11 to 1.7 — the schema migration (Account issuer backfill, device-code and OAuth tables), deviceAuthorization / twoFactor / oauthProvider adapted to the 1.7 API, and every sign-in path unchangedMotir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- Claude shows as verified when it signs in — Motir accepts Claude's published identity (OAuth Client ID Metadata Documents) on a better-auth 1.7 upgrade, and the consent screen and Connected apps name the domain that vouches for each appMotir inside Claude — a connector you sign into with your Motir account, one Claude Code plugin, and both listed in Claude's directories
- The design guards' CSS reader (happy-dom 20.9) drops every rule inside `@layer` and every nested rule — so a `renderMock` mock, and 53 committed compiled mocks, are read as if they had no hover CSS at all
- (motir-ai · test) E2E — three graph-service processes: repositories on two of two then two of three with only the new winners moving, a replica killed mid-test answered by the other, and both down the existing unavailable pathA 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 · test) Integration gate — the routing story's coverage floor, one replica set agreed by client, notifier and reconcile, and the 3-day alert against the real databaseA 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) A graph machine past 80% of its memory budget or 300 ms p95 for 3 consecutive days raises "graph service: add a machine" once, naming itself, the measurement and the commandA 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) Each graph machine records a capacity sample at every reconcile — its assigned, recently read graph bytes against its memory budget, and a histogram of its read latencyA 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) 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