# Task Master [![GitHub stars](https://img.shields.io/github/stars/eyaltoledano/claude-task-master?style=social)](https://github.com/eyaltoledano/claude-task-master/stargazers) [![CI](https://github.com/eyaltoledano/claude-task-master/actions/workflows/ci.yml/badge.svg)](https://github.com/eyaltoledano/claude-task-master/actions/workflows/ci.yml) [![npm version](https://badge.fury.io/js/task-master-ai.svg)](https://badge.fury.io/js/task-master-ai) [![Discord](https://dcbadge.limes.pink/api/server/https://discord.gg/taskmasterai?style=flat)](https://discord.gg/taskmasterai) [![License: MIT with Commons Clause](https://img.shields.io/badge/license-MIT%20with%20Commons%20Clause-blue.svg)](LICENSE) ### By [@eyaltoledano](https://x.com/eyaltoledano) & [@RalphEcom](https://x.com/RalphEcom) [![Twitter Follow](https://img.shields.io/twitter/follow/eyaltoledano?style=flat)](https://x.com/eyaltoledano) [![Twitter Follow](https://img.shields.io/twitter/follow/RalphEcom?style=flat)](https://x.com/RalphEcom) A task management system for AI-driven development with Claude, designed to work seamlessly with Cursor AI. ## Requirements Taskmaster utilizes AI across several commands, and those require a separate API key. You can use a variety of models from different AI providers provided you add your API keys. For example, if you want to use Claude 3.7, you'll need an Anthropic API key. You can define 3 types of models to be used: the main model, the research model, and the fallback model (in case either the main or research fail). Whatever model you use, its provider API key must be present in either mcp.json or .env. At least one (1) of the following is required: - Anthropic API key (Claude API) - OpenAI API key - Google Gemini API key - Perplexity API key (for research model) - xAI API Key (for research or main model) - OpenRouter API Key (for research or main model) Using the research model is optional but highly recommended. You will need at least ONE API key. Adding all API keys enables you to seamlessly switch between model providers at will. ## Quick Start ### Option 1: MCP (Recommended) MCP (Model Control Protocol) lets you run Task Master directly from your editor. #### 1. Add your MCP config at the following path depending on your editor | Editor | Scope | Linux/macOS Path | Windows Path | Key | | ------------ | ------- | ------------------------------------- | ------------------------------------------------- | ------------ | | **Cursor** | Global | `~/.cursor/mcp.json` | `%USERPROFILE%\.cursor\mcp.json` | `mcpServers` | | | Project | `/.cursor/mcp.json` | `\.cursor\mcp.json` | `mcpServers` | | **Windsurf** | Global | `~/.codeium/windsurf/mcp_config.json` | `%USERPROFILE%\.codeium\windsurf\mcp_config.json` | `mcpServers` | | **VS Code** | Project | `/.vscode/mcp.json` | `\.vscode\mcp.json` | `servers` | ##### Quick Install for Cursor (One-Click) [Add Task Master MCP server to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=taskmaster-ai&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIi0tcGFja2FnZT10YXNrLW1hc3Rlci1haSIsInRhc2stbWFzdGVyLWFpIl0sImVudiI6eyJBTlRIUk9QSUNfQVBJX0tFWSI6IllPVVJfQU5USFJPUElDX0FQSV9LRVlfSEVSRSIsIlBFUlBMRVhJVFlfQVBJX0tFWSI6IllPVVJfUEVSUExFWElUWV9BUElfS0VZX0hFUkUiLCJPUEVOQUlfQVBJX0tFWSI6IllPVVJfT1BFTkFJX0tFWV9IRVJFIiwiR09PR0xFX0FQSV9LRVkiOiJZT1VSX0dPT0dMRV9LRVlfSEVSRSIsIk1JU1RSQUxfQVBJX0tFWSI6IllPVVJfTUlTVFJBTF9LRVlfSEVSRSIsIk9QRU5ST1VURVJfQVBJX0tFWSI6IllPVVJfT1BFTlJPVVRFUl9LRVlfSEVSRSIsIlhBSV9BUElfS0VZIjoiWU9VUl9YQUlfS0VZX0hFUkUiLCJBWlVSRV9PUEVOQUJFX0FQSV9LRVkiOiJZT1VSX0FaVVJFX0tFWV9IRVJFIiwiT0xMQU1BX0FQSV9LRVkiOiJZT1VSX09MTEFNQV9BUElfS0VZX0hFUkUifX0%3D) > **Note:** After clicking the install button, you'll still need to add your API keys to the configuration. The button installs the MCP server with placeholder keys that you'll need to replace with your actual API keys. ##### Manual Configuration ###### Cursor & Windsurf (`mcpServers`) ```jsonc { "mcpServers": { "taskmaster-ai": { "command": "npx", "args": ["-y", "--package=task-master-ai", "task-master-ai"], "env": { "ANTHROPIC_API_KEY": "YOUR_ANTHROPIC_API_KEY_HERE", "PERPLEXITY_API_KEY": "YOUR_PERPLEXITY_API_KEY_HERE", "OPENAI_API_KEY": "YOUR_OPENAI_KEY_HERE", "GOOGLE_API_KEY": "YOUR_GOOGLE_KEY_HERE", "MISTRAL_API_KEY": "YOUR_MISTRAL_KEY_HERE", "OPENROUTER_API_KEY": "YOUR_OPENROUTER_KEY_HERE", "XAI_API_KEY": "YOUR_XAI_KEY_HERE", "AZURE_OPENAI_API_KEY": "YOUR_AZURE_KEY_HERE", "OLLAMA_API_KEY": "YOUR_OLLAMA_API_KEY_HERE" } } } } ``` > 🔑 Replace `YOUR_…_KEY_HERE` with your real API keys. You can remove keys you don't use. ###### VS Code (`servers` + `type`) ```jsonc { "servers": { "taskmaster-ai": { "command": "npx", "args": ["-y", "--package=task-master-ai", "task-master-ai"], "env": { "ANTHROPIC_API_KEY": "YOUR_ANTHROPIC_API_KEY_HERE", "PERPLEXITY_API_KEY": "YOUR_PERPLEXITY_API_KEY_HERE", "OPENAI_API_KEY": "YOUR_OPENAI_KEY_HERE", "GOOGLE_API_KEY": "YOUR_GOOGLE_KEY_HERE", "MISTRAL_API_KEY": "YOUR_MISTRAL_KEY_HERE", "OPENROUTER_API_KEY": "YOUR_OPENROUTER_KEY_HERE", "XAI_API_KEY": "YOUR_XAI_KEY_HERE", "AZURE_OPENAI_API_KEY": "YOUR_AZURE_KEY_HERE" }, "type": "stdio" } } } ``` > 🔑 Replace `YOUR_…_KEY_HERE` with your real API keys. You can remove keys you don't use. #### 2. (Cursor-only) Enable Taskmaster MCP Open Cursor Settings (Ctrl+Shift+J) ➡ Click on MCP tab on the left ➡ Enable task-master-ai with the toggle #### 3. (Optional) Configure the models you want to use In your editor's AI chat pane, say: ```txt Change the main, research and fallback models to , and respectively. ``` [Table of available models](docs/models.md) #### 4. Initialize Task Master In your editor's AI chat pane, say: ```txt Initialize taskmaster-ai in my project ``` #### 5. Make sure you have a PRD (Recommended) For **new projects**: Create your PRD at `.taskmaster/docs/prd.txt` For **existing projects**: You can use `scripts/prd.txt` or migrate with `task-master migrate` An example PRD template is available after initialization in `.taskmaster/templates/example_prd.txt`. > [!NOTE] > While a PRD is recommended for complex projects, you can always create individual tasks by asking "Can you help me implement [description of what you want to do]?" in chat. **Always start with a detailed PRD.** The more detailed your PRD, the better the generated tasks will be. #### 6. Common Commands Use your AI assistant to: - Parse requirements: `Can you parse my PRD at scripts/prd.txt?` - Plan next step: `What's the next task I should work on?` - Implement a task: `Can you help me implement task 3?` - Expand a task: `Can you help me expand task 4?` [More examples on how to use Task Master in chat](docs/examples.md) ### Option 2: Using Command Line #### Installation ```bash # Install globally npm install -g task-master-ai # OR install locally within your project npm install task-master-ai ``` #### Initialize a new project ```bash # If installed globally task-master init # If installed locally npx task-master init ``` This will prompt you for project details and set up a new project with the necessary files and structure. #### Common Commands ```bash # Initialize a new project task-master init # Parse a PRD and generate tasks task-master parse-prd your-prd.txt # List all tasks task-master list # Show the next task to work on task-master next # Generate task files task-master generate ``` ## Documentation For more detailed information, check out the documentation in the `docs` directory: - [Configuration Guide](docs/configuration.md) - Set up environment variables and customize Task Master - [Tutorial](docs/tutorial.md) - Step-by-step guide to getting started with Task Master - [Command Reference](docs/command-reference.md) - Complete list of all available commands - [Task Structure](docs/task-structure.md) - Understanding the task format and features - [Example Interactions](docs/examples.md) - Common Cursor AI interaction examples - [Migration Guide](docs/migration-guide.md) - Guide to migrating to the new project structure ## Troubleshooting ### If `task-master init` doesn't respond: Try running it with Node directly: ```bash node node_modules/claude-task-master/scripts/init.js ``` Or clone the repository and run: ```bash git clone https://github.com/eyaltoledano/claude-task-master.git cd claude-task-master node scripts/init.js ``` ## Contributors Task Master project contributors ## Star History [![Star History Chart](https://api.star-history.com/svg?repos=eyaltoledano/claude-task-master&type=Timeline)](https://www.star-history.com/#eyaltoledano/claude-task-master&Timeline) ## Licensing Task Master is licensed under the MIT License with Commons Clause. This means you can: ✅ **Allowed**: - Use Task Master for any purpose (personal, commercial, academic) - Modify the code - Distribute copies - Create and sell products built using Task Master ❌ **Not Allowed**: - Sell Task Master itself - Offer Task Master as a hosted service - Create competing products based on Task Master See the [LICENSE](LICENSE) file for the complete license text and [licensing details](docs/licensing.md) for more information.