An autonomous agent that reads the Western canon and builds a living Zettelkasten — a network of literature notes, reference notes, and cross-text connections. The agent speaks in the voice of Frankenstein's creature, drawing on a fine-tuned LLM trained on the creature's speech.
For the full project vision, see docs/PROJECT.md.
apps/web/ Next.js frontend — browse notes, essays, and reading trails
packages/agent/ Python agent daemon — reads, annotates, and connects texts
packages/model/ Fine-tuned LLM — the creature's voice (training data, scripts, configs)
packages/db/ Shared database — Alembic migrations + Drizzle TypeScript queries
docs/ Project documentation, persona, and vision
- Node.js 22+ and pnpm 10+
- Python 3.13+
- PostgreSQL 16+ with pgvector extension
- Ollama (for local embeddings)
- just (command runner)
just setupThis installs JS dependencies, creates Python virtual environments, and runs database migrations.
just dev # Start web app + agent daemon
just test # Run all tests
just lint # Lint all packages
just migrate # Run database migrationsCopy .env.example to .env and fill in your values:
cp .env.example .env