kody is an experimental personal assistant platform built on Cloudflare
Workers and the Model Context Protocol (MCP). It ships a Remix UI, Worker-based
request routing, package runtime plumbing, and OAuth-protected MCP endpoints.
The project favors a compact MCP surface with powerful search and Code Mode
execute flows over a large static tool catalog.
Kody is a multi-user personal assistant: each signed-in user gets a fully isolated assistant (packages, jobs, secrets, values, memories, and related state). Tests and fixtures may seed deterministic local accounts, but no account is privileged at runtime. The repo follows several epicflare starter conventions.
The repo is organized as an Nx monorepo, with shared modules in
packages/shared (@kody-internal/shared), the main app worker under
packages/worker, and mock Workers under packages/mock-servers/*.
npm install
npm run devThe dev server runs at localhost:8787. Wrangler handles the local Cloudflare
Workers runtime and D1 database automatically.
To scaffold a new project from the epicflare template instead, run
npx create-epicflare.
See
docs/contributing/getting-started.md
for the full setup paths and expectations. Contributors and agents should start
with AGENTS.md for repo-specific guidance.
If you are trying to understand what this repository is for, start with
docs/contributing/project-intent.md.
| Layer | Technology |
|---|---|
| Runtime | Cloudflare Workers |
| UI Framework | Remix 3 (alpha) |
| Package Manager | npm |
| Workspace | Nx + npm workspaces |
| Database | Cloudflare D1 |
| Session/OAuth | Cloudflare KV |
| MCP State | Durable Objects |
| E2E Testing | Playwright |
| Bundler | esbuild |
- Personal assistant experiment, not a multi-tenant SaaS product
- MCP-first architecture intended to work across compatible AI agent hosts
- Compact MCP surface area preferred over a large static tool inventory
- ChatGPT is a likely primary host target, while keeping the server usable from other MCP hosts where practical
Request → packages/worker/src/index.ts
│
├─→ OAuth handlers
├─→ MCP endpoints
├─→ Static assets (`packages/worker/public/`)
└─→ Server router → Remix components
packages/worker/src/index.tsis the entrypoint for Cloudflare Workers- OAuth requests are handled first, then MCP requests, then static assets
- Non-asset requests fall through to the server handler and router
- Client assets are bundled into
packages/worker/public/and served via theASSETSbinding
| Document | Description |
|---|---|
docs/contributing/getting-started.md |
Setup, environment variables, deploy |
docs/contributing/environment-variables.md |
Adding new env vars |
docs/contributing/cloudflare-offerings.md |
Optional Cloudflare integrations |
docs/contributing/project-intent.md |
Scope, goals, and non-goals |
docs/contributing/index.md |
Developing and extending Kody |
docs/use/index.md |
Using Kody over MCP |
docs/contributing/setup.md |
Local development and verification |
