One file across every agent.
Your personal context, written once and kept polished by your agents — so every AI you talk to knows you instantly.
Website · Docs · Privacy · Stack
Anyone using AI seriously hits the same tax: re-explaining themselves every chat, every tool, every session.
Creed kills that tax with one file.
You write yourself down once — your role, goals, preferences, routines, the people who matter, anything you want every AI to know — and connected agents read that file before they answer you. As they learn new things about you, they propose updates. You approve the good ones. The file sharpens over time.
It's not a notes app. It's not a journal. It's not a memory dump. It's a curated personal-context profile, sized to fit on one page, that travels with you across Claude, ChatGPT, Codex, Cursor, OpenClaw, Hermes, OpenCode, and any custom agent you wire up.
There's a small set of tools every AI-native person re-invents for themselves: a "system prompt" that grows in their notes, a CLAUDE.md they paste into every project, a list of "things ChatGPT keeps getting wrong about me." Creed is what happens when you decide that file should be a real product, not a hack.
The file is plain Markdown. The app exists to:
If you've ever maintained a personal creed.md by hand, this is that, with the boring parts solved.
┌──────────────────────┐ ┌────────────────────┐
│ You — onboarding │ ──────► │ Your Creed file │
│ (one short pass) │ │ 10 sections, MD │
└──────────────────────┘ └─────────┬──────────┘
│
┌────────────┴────────────┐
▼ ▼
┌─────────────────────┐ ┌──────────────────────┐
│ Agent reads it │ │ Agent proposes an │
│ before answering │ │ update; you approve │
└─────────────────────┘ └──────────────────────┘
The file has 10 sections — five core, five optional — sized so the whole thing reads in under a minute:
| Always-on | Optional |
|---|---|
| Identity | Beliefs |
| Goals | Constraints |
| Work | People |
| Preferences | Health |
| Routines | Context |
Every section is agent-writable. Every change goes through the review (or direct-edit, if you trust it).
Creed is in active development. Personal Creed is the core one-user product. Creed Company extends the same file model into a shared workspace with roles, per-section permissions, attribution, invitations, pooled AI credits, and seat billing.
Paid hosted plans include a monthly AI allowance for first-party features like quality analysis, billed as prepaid credits, with an optional bring-your-own-OpenRouter-key mode. Self-hosted development can run the app locally with your own Supabase, Stripe, and OpenRouter configuration.
You'll need:
git clone https://github.com/<your-fork>/creed.git
cd creed
npm install
Copy the template and fill in values:
cp .env.example .env.local
.env.example documents every variable Creed reads. The minimum to boot the app:
NEXT_PUBLIC_SITE_URL=http://localhost:3000
NEXT_PUBLIC_SUPABASE_URL=https://<your-project>.supabase.co
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=<your-supabase-publishable-key>
SUPABASE_SECRET_KEY=<your-supabase-service-role-key>
CREED_ENCRYPTION_SECRET=<base64-encoded-32-byte-secret>
Generate the encryption secret with openssl rand -base64 32.
Optional (branding shown in the public chrome, payments, GitHub integration, feedback widget) are all documented inline in .env.example — copy whichever ones you want to enable.
# install Supabase CLI if you don't have it: brew install supabase/tap/supabase
supabase link --project-ref <your-project-ref>
supabase db push
This creates every table Creed needs (sections, proposals, activity, tokens, MCP, GitHub, AI usage, audit log, rate limits, Stripe entitlements) plus the row-level-security policies that make sure users only ever see their own data.
The hosted Creed gates /file and /onboarding behind a paid entitlement (Personal is $12/mo, $99/yr, or $199 lifetime). For local development you can either:
STRIPE_* env vars unset. The app still boots; signed-in users without an entitlement row are redirected to /pricing by the layout guard. Useful when you only want to work on marketing pages or non-paid flows.STRIPE_* variables from .env.example using your sandbox/test keys, then in a second terminal run:
bash
stripe listen --forward-to localhost:3000/api/stripe/webhook
Copy the whsec_… it prints into STRIPE_WEBHOOK_SECRET. The webhook auto-grants entitlements when test payments complete.npm run dev
Open http://localhost:3000. Sign in with Google and you'll land on /pricing (or /onboarding if you've granted yourself an entitlement row manually for development).
If you're standing up a separate hosted Creed (not contributing back to this repo):
NEXT_PUBLIC_SITE_URL to your deployed origin so OAuth callback and Stripe redirect URLs resolve correctly.CREED_CSP_ENFORCE=1 in production once you've watched one deploy cycle in Report-Only mode.whsec_… — create a webhook endpoint in the live Stripe dashboard pointing at https://<your-domain>/api/stripe/webhook and use that secret.lib/creed-data.ts reference https://creed.md purely as illustration; real users see URLs derived from your NEXT_PUBLIC_SITE_URL at request time.Once you have a Creed, open /connections and add the Creed MCP URL to your agent as a custom connector. The client opens a browser, you click Allow on the Creed consent screen, and it's connected. No tokens to copy. We have first-class flows for:
claude mcp add command)MCP uses OAuth 2.1: Creed is its own authorization server (/authorize, /token, /register, /.well-known/*), so any spec-compliant client connects from the server URL alone. The agent verifies it can read your file and starts shaping replies around it from the next message forward. For clients that don't speak MCP, the /api/creed HTTP API is the documented fallback.
A complete tour of the public stack lives at creed.md/stack.
app/ Next.js routes (marketing, app, API)
├── (creed-app)/ signed-in product (/file, /connections, /settings)
├── api/ session-authed and token-authed APIs
├── auth/callback/ OAuth callback
├── home/ public landing
├── onboarding/ 7-step onboarding flow
└── proxy.ts request-id + path-aware request forwarding
components/
├── creed/ the product UI
├── marketing/ the public site
├── auth/ sign-in / hero
└── ui/ shadcn primitives + animated icons
lib/
├── creed-data.ts types, section IDs, agent contract
├── creed-backend.ts Supabase reads/writes
├── company-*.ts Company roles, seats, billing, invites, writes
├── ai/ OpenRouter, model catalog, quality
├── onboarding/ the synthesizer pipeline
└── supabase/ browser + server clients
supabase/migrations/ canonical schema
public/ static assets
npm run dev # local dev server (Turbopack)
npm run build # production build
npm run lint # ESLint
npm run start # serve a built app
npx tsc --noEmit -p . # typecheck only
We'd love contributions. Read CONTRIBUTING.md before opening a PR — it's short and saves both of us time.
If you're an AI agent picking up this codebase to make changes, read AGENTS.md first instead. It's the same information, written for you.
Found a vulnerability? Please don't open a public issue. See SECURITY.md for the responsible-disclosure path.
MIT.
$ claude mcp add creed \
-- python -m otcore.mcp_server <graph>