- 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 dev
Open 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/turso
Once 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.example
to.env
for development and.env.test
for testing. - Set
TURSO_DATABASE_URL
andTURSO_AUTH_TOKEN
as 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