Skip to content
Search

Task-master-ai

lastmod 2025-07-04created 2025-05-115 edits

An AI-powered task-management system you can drop into Cursor, Lovable, Windsurf, Roo, and others.

Key features

Task Master AI lets you manage a project's tasks with the help of AI.

  • PRD (Korean: 제품 요구사항 문서) analysis and task generation: AI analyzes documents such as a PRD and automatically generates a list of development tasks.
  • Next task recommendation: Based on current progress, AI recommends the task to work on next.
  • Task implementation and expansion support: You can get AI help when implementing a specific task or expanding an existing task in more detail.

This helps organize the workflow on complex projects and lets developers focus on the next step.

Configuration

Create .taskmaster/config.json:

{
  "models": {
    "main": {
      "provider": "anthropic",
      "modelId": "claude-3-7-sonnet-20250219",
      "maxTokens": 64000,
      "temperature": 0.2,
      "baseURL": "https://api.anthropic.com/v1"
    },
    "research": {
      "provider": "perplexity",
      "modelId": "sonar-pro",
      "maxTokens": 8700,
      "temperature": 0.1,
      "baseURL": "https://api.perplexity.ai/v1"
    },
    "fallback": {
      "provider": "anthropic",
      "modelId": "claude-3-5-sonnet",
      "maxTokens": 64000,
      "temperature": 0.2
    }
  },
  "global": {
    "logLevel": "info",
    "debug": false,
    "defaultSubtasks": 5,
    "defaultPriority": "medium",
    "defaultTag": "master",
    "projectName": "Your Project Name",
    "ollamaBaseURL": "http://localhost:11434/api",
    "azureBaseURL": "https://your-endpoint.azure.com/openai/deployments",
    "vertexProjectId": "your-gcp-project-id",
    "vertexLocation": "us-central1"
  }
}

Free setup

Sign up for openrouter, get an API key, and use a free model:

{
  "mcpServers": {
    "taskmaster-ai": {
      "command": "opnpx",
      "args": ["-y", "--package=task-master-ai", "task-master-ai"],
      "env": {
        "OPENROUTER_API_KEY": "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"
      }
    }
  }
}

Add a free openrouter model (e.g. deepseek/deepseek-chat-v3-0324:free) to .taskmaster/config.json.

{
  "models": {
    "main": {
      "provider": "openrouter",
      "modelId": "deepseek/deepseek-chat-v3-0324:free",
      "maxTokens": 32768,
      "temperature": 0.2
    },
    "research": {
      "provider": "google",
      "modelId": "gemini-1.5-flash",
      "maxTokens": 8700,
      "temperature": 0.1
    },
    "fallback": {
      "provider": "google",
      "modelId": "gemini-1.5-flash",
      "maxTokens": 8192,
      "temperature": 0.2
    }
  },
  "global": {
    "logLevel": "info",
    "debug": false,
    "defaultSubtasks": 5,
    "defaultPriority": "medium",
    "projectName": "Task Master",
    "ollamaBaseURL": "http://localhost:11434/api",
    "bedrockBaseURL": "https://bedrock.us-east-1.amazonaws.com",
    "userId": "1234567890"
  }
}

Models

Basic usage

Install:

yarn global add task-master-ai

After setting the environment variables, run it like this:

npx -y --package=task-master-ai task-master-ai

Get the API tokens you use, then add the MCP configuration:

{
  "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"
      }
    }
  }
}

Once the MCP configuration is in place, ask the AI to initialize. A request roughly like "Can you please initialize taskmaster-ai into my project?" will do.

After initialization, you can manage tasks by giving the AI assistant commands such as

  • "Can you parse my PRD at scripts/prd.txt?"
  • "What's the next task I should work on?"

and so on.

WARNING

At this point we need a well-written prd.txt.

After initialization, an example PRD file is created in the scripts folder; you can write your PRD by filling in what is needed there.

First, write the PRD as well as you can,

then initialize and analyze the PRD to parse tasks, and multiple split-up tasks are created in the tasks/ folder.

These are the tasks created to complete the project; progress and the next task are determined from these files.

Extra: GitHub MCP integration

Set up the integration yourself, then ask the IDE Agent "Create the current local tasks generated by Task Master as Issues in the repository", and it will create the issues on its own.

Note that one drawback is that the Tasks created and managed by the local Task Master AI and GitHub issues are not synced automatically. (So when you update a local Task's status you also have to update the GitHub issue's status; if both MCPs above are set up, you can just ask the Agent.) With a bit more thought you could probably get automatic sync working too, but for now whenever I need to update a Task's status I just ask the IDE's Agent and it takes care of it, so it hasn't been much of an inconvenience yet. Also, as mentioned earlier, if a new issue is registered in the repository and it is a new Task, the Agent can read it through the GitHub MCP and add it to the local Tasks.

Common commands

  • Initialize project: task-master init
  • Analyze PRD and generate tasks: task-master parse-prd your-prd.txt
  • List all tasks: task-master list
  • Show next task: task-master next
  • Generate task files: task-master generate

See also

Favorite site

author Zer0 sitemap