Skip to main content
Open http://localhost:3000. Your owner password is printed in the terminal on first start.
npm run dev applies no migrations. Only npm start does, because it runs prisma migrate deploy first. Run the migrate command yourself after pulling changes that touch the schema.

The commands that matter

Contributing

Issues and pull requests are welcome. Two commands are the whole verification story — there is no CI on branches and no test suite, so the first thing that compiles a change after it lands on main is the Docker image build that self-hosters pull.
Two things are worth knowing before changing anything:
Every function in src/lib/data/ takes the owning userId as its first positional argument, and every query filters on it. It is positional and required precisely so the compiler rejects a call site that forgets. Do not add a data function with an optional or object-bag userId, and never let one arrive from a client — server actions resolve the caller from their session cookie, MCP tools from the connection token.
Both call src/lib/data/. Logic written into a server action that a tool would also need has been forked — move it down. There is exactly one implementation of every rule about the data, which is why anything an assistant writes shows up in the app immediately and vice versa.
After editing prisma/schema.prisma, run npx prisma generate before typechecking. Only postinstall and build regenerate the client, so without it the compiler rejects a new model with an error that looks like your code is wrong when it is only stale.

The stack

Next.js 15 (App Router) · React 19 · Tailwind v4 · shadcn/ui · Framer Motion · Prisma · PostgreSQL. The MCP server lives in src/lib/mcp/ and speaks the Streamable HTTP transport directly, with no session state — which is what lets it survive restarts and replicas without anything reconnecting. Tools are defined once in src/lib/mcp/tools.ts, and setup recipes are data in src/lib/mcp/clients.ts, so supporting a new client is one entry in an array.

Licence

AGPL-3.0. In practice: self-host it, modify it, run it for yourself and your friends, all free, forever. The one obligation is that if you run a modified copy as a service for other people, you publish your modifications. If you would rather keep changes private, run it unmodified.