Skip to content

kentcdodds/kody

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

122 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kody logo

An experimental personal assistant platform built on Cloudflare Workers and MCP

Build Status TypeScript Node 24 Cloudflare Workers Remix


kody is currently an experiment in building a personal assistant that can work across AI agent hosts that support MCP.

Today this repo includes a Remix-powered UI, Cloudflare Worker request routing, chat-agent plumbing, and OAuth-protected MCP endpoints. The long-term direction is not a huge static tool catalog. It is a compact MCP surface with broader capabilities hidden behind a compact search tool plus Code Mode execute flows.

This project is intentionally single-user right now and is being built for me@kentcdodds.com.

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/*.

Quick Start

npx create-epicflare

This will clone the template, install dependencies, run the guided setup, and start the dev server.

See docs/getting-started.md for the full setup paths and expectations.

If you are trying to understand what this repository is for, start with docs/project-intent.md.

Tech Stack

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

Current Scope

  • 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

How It Works

Request → packages/worker/src/index.ts
              │
              ├─→ OAuth handlers
              ├─→ MCP endpoints
              ├─→ Static assets (`packages/worker/public/`)
              └─→ Server router → Remix components
  • packages/worker/src/index.ts is 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 the ASSETS binding

Documentation

Document Description
docs/getting-started.md Setup, environment variables, deploy
docs/environment-variables.md Adding new env vars
docs/cloudflare-offerings.md Optional Cloudflare integrations
docs/project-intent.md Scope, goals, and non-goals
docs/agents/setup.md Local development and verification

Built with ❤️ by Epic Web

About

An experimental personal assistant platform built on Cloudflare Workers and MCP

Resources

Stars

Watchers

Forks

Contributors

Languages