- Node.js (v23+ recommended)
- pnpm
- Turso CLI (
brew install tursodatabase/tap/turso)
- Next.js
- Clerk
- Drizzle ORM
- Turso (libSQL)
- Vitest (with Testing Library)
First, install dependencies and run the development server:
pnpm i && pnpm devOpen http://localhost:3000 with your browser to see the result.
Make sure you have Taskmaster installed globally (npm i -g task-master-ai).
Additionally, you will need a .env with various keys:
ANTHROPIC_API_KEY= # Required: Format: sk-ant-api03-...
PERPLEXITY_API_KEY= # Optional: Format: pplx-...
OPENAI_API_KEY= # Optional, for OpenAI/OpenRouter models. Format: sk-proj-...
GOOGLE_API_KEY= # Optional, for Google Gemini models.
MISTRAL_API_KEY= # Optional, for Mistral AI models.
XAI_API_KEY= # Optional, for xAI AI models.
AZURE_OPENAI_API_KEY= # Optional, for Azure OpenAI models (requires endpoint in .taskmaster/config.json).
OLLAMA_API_KEY= # Optional: For remote Ollama servers that require authentication.
And you will need the keys within the MCP/server file: https://github.com/eyaltoledano/claude-task-master?tab=readme-ov-file#option-1-mcp-recommended
Make sure you have Turso installed via
brew install tursodatabase/tap/tursoOnce authenticated (turso auth login), these commands might be handy:
turso db show [db name]turso db shell [db name]turso db tokens create [db name]
Your .env must also include:
TURSO_DATABASE_URL=
TURSO_AUTH_TOKEN=
- Local and test databases are managed with Turso CLI
- Migrations are handled by Drizzle Kit
- Tests are run with Vitest and are fully isolated from dev data
- Copy
.env.exampleto.envfor development and.env.testfor testing. - Set
TURSO_DATABASE_URLandTURSO_AUTH_TOKENas appropriate.
- In
.env:
TURSO_DATABASE_URL=http://127.0.0.1:8080
TURSO_AUTH_TOKEN=
- In
.env.test:
TURSO_DATABASE_URL=http://127.0.0.1:8081
TURSO_AUTH_TOKEN=
- To apply migrations to the current DB (dev or test):
pnpm db:migrate
- Migrations are run automatically before tests via the test script.
- To run tests (spins up test DB, runs migrations, then tests):
pnpm test- For the test UI:
pnpm test:ui