AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證The review-first, collaborative agent IDE. Share a Codex or Claude session live with a teammate.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Koda runs Codex or Claude sessions in isolated git worktrees on your Mac. Share a workspace and a teammate opens it from their own Koda. They see the same transcript and tool calls live, and with control they can message the agent too. Their message lands in your session, signed with their name.
Watch the 35-second recording of one Claude session shared live between two Macs.檢視完整 README ↗The Review-First, Collaborative Agent IDE
Koda runs Codex or Claude sessions in isolated git worktrees on your Mac. Share a workspace and a teammate opens it from their own Koda. They see the same transcript and tool calls live, and with control they can message the agent too. Their message lands in your session, signed with their name.
Watch the 35-second recording of one Claude session shared live between two Macs.
codex loginclaude auth logingit clone https://github.com/gorkamolero/koda.git
cd koda
pnpm install
# Start the desktop app (launches sidecar automatically)
pnpm app
# Or run components separately:
pnpm desktop # Tauri desktop shell
pnpm sidecar # Node.js orchestration layer
Codex is the default agent. New chats can select Codex or Claude, with a separate model picker for each. Koda uses the installed Codex CLI app-server and the official Claude Agent SDK; saved sessions retain their agent, model, and permissions across restarts. Claude authentication stays with the local Claude CLI. See the dated authentication research in VERIFY.md.
Choose the default for new conversations in Settings → Agent → New conversation permissions. This setup defaults to Bypass permissions, with Ask when needed also available. Each new chat starts with that preference and can override it; existing chats retain their saved mode. Requests needing permission show Approve once and Deny. Bypass lets tools run outside the worktree without asking and also applies to collaborators with control. Provider-enforced restrictions still apply.
Settings also recommends Destructive Command Guard, an optional hook that blocks known destructive commands. It requires separate installation; its Codex coverage is incomplete and it is not a sandbox.
When Codex or Claude asks a structured question, answer its form in the host chat. Forms support single choices, Claude multiple choices, and custom answers. Submit answers resumes the agent; Cancel and stop ends the turn. Bypass permissions still waits for your answers. Pending forms return after a UI reload while the sidecar stays running; unfinished answer drafts are not saved.
For collaboration, choose a display name in Settings → Collaboration. The hosted default is https://koda-collaboration.gorka-molero.workers.dev; no service configuration is required. Override it under Advanced or with KODA_COLLAB_URL. Your first share registers this install automatically; collaborators need no Liveblocks key. Open a worktree's Share workspace dialog to create a control or view invitation; the other instance joins through Shared workspaces. Both installs must use the same service.
Each install keeps its device private key and host invitation key in its private local state. The hosted Cloudflare Worker holds the Liveblocks secret and authorizes only owned or granted rooms. LIVEBLOCKS_SECRET_KEY alone does not change modes. Trusted development setups must explicitly set KODA_COLLAB_MODE=development and supply LIVEBLOCKS_SECRET_KEY. The owner can redeploy the Worker with pnpm collab:deploy. See VERIFY.md for local testing and owner deployment.
See VERIFY.md for the real-service proofs, screenshots, separate-instance setup, and clean-clone verification.
pnpm test # Run UI, Worker, sidecar and desktop unit tests
pnpm --filter @koda/sidecar test # Sidecar unit tests
pnpm --filter e2e test:proof # Maintained real-service proofs (Playwright)
The shared @koda/ui package documents Koda's four themes and all 40 design-system component groups, with props, variants, keyboard interactions and accessibility tests. Explore the foundations, brand, collaboration patterns, and composed host/collaborator workspace screens.
pnpm storybook # Local explorer at http://localhost:6006
pnpm build-storybook # Static build
pnpm --filter @koda/ui exec playwright install chromium
pnpm test-storybook # Browser stories and accessibility checks
Public Storybook: gorkamolero.github.io/koda, on GitHub Pages. pnpm storybook:pages builds it and publishes it to the gh-pages branch.
Desktop now composes @koda/ui across navigation, agent chat, workspace panels, settings and sharing. Feature components retain data and permissions; shared components are presentational. The duplicate primitives and unused AI elements are removed, and token lint is enforced as an error. See DESIGN.md and the migration verification record.
┌────────────────────────────────────────────────────────────┐
│ Koda Desktop (Tauri 2.x) │
│ ┌─────────────────────┐ ┌─────────────────────────────┐ │
│ │ React Frontend │ │ Native Rust Layer │ │
│ │ - Monaco Editor │ │ - File System (fast) │ │
│ │ - Diff View │ │ - Git Operations │ │
│ │ - Workspace UI │ │ - IPC Bridge │ │
│ └──────────┬──────────┘ └─────────────────────────────┘ │
└─────────────┼──────────────────────────────────────────────┘
│ Unix Socket (JSON-RPC 2.0)
▼
┌────────────────────────────────────────────────────────────┐
│ Orchestration Sidecar (Node.js) │
│ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │
│ │ Claude Agent │ │ Codex Agent │ │ Kimi Agent │ │
│ └────────────────┘ └────────────────┘ └────────────────┘ │
│ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │
│ │ SQLite DB │ │ PTY Manager │ │ Git Worktrees │ │
│ └────────────────┘ └────────────────┘ └────────────────┘ │
└────────────────────────────────────────────────────────────┘
koda/
├── apps/
│ ├── desktop/ # Tauri + React frontend
│ │ ├── src/ # React components
│ │ └── src-tauri/ # Rust native layer
│ └── sidecar/ # Node.js orchestration
│ ├── src/
│ │ ├── handlers/ # Agent handlers (Claude, Codex, Kimi)
│ │ ├── db/ # SQLite schema + migrations
│ │ └── rpc/ # JSON-RPC router
│ └── tests/
├── packages/ui/ # Shared tokens, components and Storybook
├── e2e/ # Playwright E2E tests
├── docs/ # Extended documentation
├── SPEC.md # Full architecture spec
├── FEATURES.md # Feature roadmap
└── API.md # RPC method reference
Isolated environments for agent work. Each workspace is a git worktree with its own branch, agent sessions, and state.
Conversations with Codex or Claude retain their messages, selected model, and upstream agent session for continuation after restarts. Workspaces can be shared with view or control access. Kimi and cross-agent conversation forks are outside the verified flow.
Save a worktree snapshot from the chat and restore it when needed. Saving a checkpoint preserves the working files and staging index.
Not just code diffs — before/after screenshots of your running app. See what changed visually.
| Doc | Description |
|---|---|
| SPEC.md | Full architecture and design spec |
| FEATURES.md | Feature roadmap and status |
| DESIGN.md | Design system, Storybook and token rules |
| VERIFY.md | Reproduce the Codex, Claude, and collaboration proofs |
| API.md | JSON-RPC method reference |
| docs/koda-collaboration.md | Collaboration architecture |
| Layer | Technology |
|---|---|
| Desktop Shell | Tauri 2.x (Rust) |
| Frontend | React 18, Vite, TailwindCSS |
| Editor | Monaco |
| Sidecar | Node.js, TypeScript |
| Database | SQLite (better-sqlite3) |
| IPC | JSON-RPC 2.0 over Unix sockets |
| Testing | Vitest, Playwright |
MIT
Built by Gorka.