.kiro/steering/taskmaster.md
This document provides a detailed reference for interacting with Taskmaster, covering both the recommended MCP tools, suitable for integrations like Kiro, and the corresponding task-master CLI commands, designed for direct user interaction or fallback.
Note: For interacting with Taskmaster programmatically or via integrated tools, using the MCP tools is strongly recommended due to better performance, structured data, and error handling. The CLI commands serve as a user-friendly alternative and fallback.
Important: Several MCP tools involve AI processing... The AI-powered tools include parse_prd, analyze_project_complexity, update_subtask, update_task, update, expand_all, expand_task, and add_task.
🏷️ Tagged Task Lists System: Task Master now supports tagged task lists for multi-context task management. This allows you to maintain separate, isolated lists of tasks for different features, branches, or experiments. Existing projects are seamlessly migrated to use a default "master" tag. Most commands now support a --tag <name> flag to specify which context to operate on. If omitted, commands use the currently active tag.
init)initialize_projecttask-master init [options]Set up the basic Taskmaster file structure and configuration in the current directory for a new project.--name <name>: Set the name for your project in Taskmaster's configuration.--description <text>: Provide a brief description for your project.--version <version>: Set the initial version for your project, e.g., '0.1.0'.-y, --yes: Initialize Taskmaster quickly using default settings without interactive prompts.Set up the basic Taskmaster file structure and configuration in the current directory for a new project by running the 'task-master init' command.projectName: Set the name for your project. (CLI: --name <name>)projectDescription: Provide a brief description for your project. (CLI: --description <text>)projectVersion: Set the initial version for your project, e.g., '0.1.0'. (CLI: --version <version>)authorName: Author name. (CLI: --author <author>)skipInstall: Skip installing dependencies. Default is false. (CLI: --skip-install)addAliases: Add shell aliases tm and taskmaster. Default is false. (CLI: --aliases)yes: Skip prompts and use defaults/provided arguments. Default is false. (CLI: -y, --yes)--tag option to parse the PRD into a specific, non-default tag context. If the tag doesn't exist, it will be created automatically. Example: task-master parse-prd spec.txt --tag=new-feature.parse_prd)parse_prdtask-master parse-prd [file] [options]Parse a Product Requirements Document, PRD, or text file with Taskmaster to automatically generate an initial set of tasks in tasks.json.input: Path to your PRD or requirements text file that Taskmaster should parse for tasks. (CLI: [file] positional or -i, --input <file>)output: Specify where Taskmaster should save the generated 'tasks.json' file. Defaults to '.taskmaster/tasks/tasks.json'. (CLI: -o, --output <file>)numTasks: Approximate number of top-level tasks Taskmaster should aim to generate from the document. (CLI: -n, --num-tasks <number>)force: Use this to allow Taskmaster to overwrite an existing 'tasks.json' without asking for confirmation. (CLI: -f, --force).taskmaster/templates/example_prd.txt as a template for creating the PRD based on their idea, for use with parse-prd.models)modelstask-master models [options]View the current AI model configuration or set specific models for different roles (main, research, fallback). Allows setting custom model IDs for Ollama and OpenRouter.setMain <model_id>: Set the primary model ID for task generation/updates. (CLI: --set-main <model_id>)setResearch <model_id>: Set the model ID for research-backed operations. (CLI: --set-research <model_id>)setFallback <model_id>: Set the model ID to use if the primary fails. (CLI: --set-fallback <model_id>)ollama <boolean>: Indicates the set model ID is a custom Ollama model. (CLI: --ollama)openrouter <boolean>: Indicates the set model ID is a custom OpenRouter model. (CLI: --openrouter)listAvailableModels <boolean>: If true, lists available models not currently assigned to a role. (CLI: No direct equivalent; CLI lists available automatically)projectRoot <string>: Optional. Absolute path to the project root directory. (CLI: Determined automatically)--set-main <model_id>: Set the primary model.--set-research <model_id>: Set the research model.--set-fallback <model_id>: Set the fallback model.--ollama: Specify that the provided model ID is for Ollama (use with --set-*).--openrouter: Specify that the provided model ID is for OpenRouter (use with --set-*). Validates against OpenRouter API.--bedrock: Specify that the provided model ID is for AWS Bedrock (use with --set-*).--setup: Run interactive setup to configure models, including custom Ollama/OpenRouter IDs.setMain, setResearch, or setFallback with a valid model ID to update the configuration. Use listAvailableModels: true to get a list of unassigned models. To set a custom model, provide the model ID and set ollama: true or openrouter: true.--setup for guided configuration, including custom models. To set a custom model via flags, use --set-<role>=<model_id> along with either --ollama or --openrouter..taskmaster/config.json in the project root. This command/tool modifies that file. Use listAvailableModels or task-master models to see internally supported models. OpenRouter custom models are validated against their live API. Ollama custom models are not validated live.get_tasks)get_taskstask-master list [options]List your Taskmaster tasks, optionally filtering by status and showing subtasks.status: Show only Taskmaster tasks matching this status (or multiple statuses, comma-separated), e.g., 'pending' or 'done,in-progress'. (CLI: -s, --status <status>)withSubtasks: Include subtasks indented under their parent tasks in the list. (CLI: --with-subtasks)tag: Specify which tag context to list tasks from. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)next_task)next_tasktask-master next [options]Ask Taskmaster to show the next available task you can work on, based on status and completed dependencies.file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)tag: Specify which tag context to use. Defaults to the current active tag. (CLI: --tag <name>)get_task)get_tasktask-master show [id] [options]Display detailed information for one or more specific Taskmaster tasks or subtasks by ID.id: Required. The ID of the Taskmaster task (e.g., '15'), subtask (e.g., '15.2'), or a comma-separated list of IDs ('1,5,10.2') you want to view. (CLI: [id] positional or -i, --id <id>)tag: Specify which tag context to get the task(s) from. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)add_task)add_tasktask-master add-task [options]Add a new task to Taskmaster by describing it; AI will structure it.prompt: Required. Describe the new task you want Taskmaster to create, e.g., "Implement user authentication using JWT". (CLI: -p, --prompt <text>)dependencies: Specify the IDs of any Taskmaster tasks that must be completed before this new one can start, e.g., '12,14'. (CLI: -d, --dependencies <ids>)priority: Set the priority for the new task: 'high', 'medium', or 'low'. Default is 'medium'. (CLI: --priority <priority>)research: Enable Taskmaster to use the research role for potentially more informed task creation. (CLI: -r, --research)tag: Specify which tag context to add the task to. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)add_subtask)add_subtasktask-master add-subtask [options]Add a new subtask to a Taskmaster parent task, or convert an existing task into a subtask.id / parent: Required. The ID of the Taskmaster task that will be the parent. (MCP: id, CLI: -p, --parent <id>)taskId: Use this if you want to convert an existing top-level Taskmaster task into a subtask of the specified parent. (CLI: -i, --task-id <id>)title: Required if not using taskId. The title for the new subtask Taskmaster should create. (CLI: -t, --title <title>)description: A brief description for the new subtask. (CLI: -d, --description <text>)details: Provide implementation notes or details for the new subtask. (CLI: --details <text>)dependencies: Specify IDs of other tasks or subtasks, e.g., '15' or '16.1', that must be done before this new subtask. (CLI: --dependencies <ids>)status: Set the initial status for the new subtask. Default is 'pending'. (CLI: -s, --status <status>)generate: Enable Taskmaster to regenerate markdown task files after adding the subtask. (CLI: --generate)tag: Specify which tag context to operate on. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)update)updatetask-master update [options]Update multiple upcoming tasks in Taskmaster based on new context or changes, starting from a specific task ID.from: Required. The ID of the first task Taskmaster should update. All tasks with this ID or higher that are not 'done' will be considered. (CLI: --from <id>)prompt: Required. Explain the change or new context for Taskmaster to apply to the tasks, e.g., "We are now using React Query instead of Redux Toolkit for data fetching". (CLI: -p, --prompt <text>)research: Enable Taskmaster to use the research role for more informed updates. Requires appropriate API key. (CLI: -r, --research)tag: Specify which tag context to operate on. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)task-master update --from='18' --prompt='Switching to React Query.\nNeed to refactor data fetching...'update_task)update_tasktask-master update-task [options]Modify a specific Taskmaster task by ID, incorporating new information or changes. By default, this replaces the existing task details.id: Required. The specific ID of the Taskmaster task, e.g., '15', you want to update. (CLI: -i, --id <id>)prompt: Required. Explain the specific changes or provide the new information Taskmaster should incorporate into this task. (CLI: -p, --prompt <text>)append: If true, appends the prompt content to the task's details with a timestamp, rather than replacing them. Behaves like update-subtask. (CLI: --append)research: Enable Taskmaster to use the research role for more informed updates. Requires appropriate API key. (CLI: -r, --research)tag: Specify which tag context the task belongs to. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)--append to log progress without creating subtasks.update_subtask)update_subtasktask-master update-subtask [options]Append timestamped notes or details to a specific Taskmaster subtask without overwriting existing content. Intended for iterative implementation logging.id: Required. The ID of the Taskmaster subtask, e.g., '5.2', to update with new information. (CLI: -i, --id <id>)prompt: Required. The information, findings, or progress notes to append to the subtask's details with a timestamp. (CLI: -p, --prompt <text>)research: Enable Taskmaster to use the research role for more informed updates. Requires appropriate API key. (CLI: -r, --research)tag: Specify which tag context the subtask belongs to. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)set_task_status)set_task_statustask-master set-status [options]Update the status of one or more Taskmaster tasks or subtasks, e.g., 'pending', 'in-progress', 'done'.id: Required. The ID(s) of the Taskmaster task(s) or subtask(s), e.g., '15', '15.2', or '16,17.1', to update. (CLI: -i, --id <id>)status: Required. The new status to set, e.g., 'done', 'pending', 'in-progress', 'review', 'cancelled'. (CLI: -s, --status <status>)tag: Specify which tag context to operate on. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)remove_task)remove_tasktask-master remove-task [options]Permanently remove a task or subtask from the Taskmaster tasks list.id: Required. The ID of the Taskmaster task, e.g., '5', or subtask, e.g., '5.2', to permanently remove. (CLI: -i, --id <id>)yes: Skip the confirmation prompt and immediately delete the task. (CLI: -y, --yes)tag: Specify which tag context to operate on. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)expand_task)expand_tasktask-master expand [options]Use Taskmaster's AI to break down a complex task into smaller, manageable subtasks. Appends subtasks by default.id: The ID of the specific Taskmaster task you want to break down into subtasks. (CLI: -i, --id <id>)num: Optional: Suggests how many subtasks Taskmaster should aim to create. Uses complexity analysis/defaults otherwise. (CLI: -n, --num <number>)research: Enable Taskmaster to use the research role for more informed subtask generation. Requires appropriate API key. (CLI: -r, --research)prompt: Optional: Provide extra context or specific instructions to Taskmaster for generating the subtasks. (CLI: -p, --prompt <text>)force: Optional: If true, clear existing subtasks before generating new ones. Default is false (append). (CLI: --force)tag: Specify which tag context the task belongs to. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)num is not specified.expand_all)expand_alltask-master expand --all [options] (Note: CLI uses the expand command with the --all flag)Tell Taskmaster to automatically expand all eligible pending/in-progress tasks based on complexity analysis or defaults. Appends subtasks by default.num: Optional: Suggests how many subtasks Taskmaster should aim to create per task. (CLI: -n, --num <number>)research: Enable research role for more informed subtask generation. Requires appropriate API key. (CLI: -r, --research)prompt: Optional: Provide extra context for Taskmaster to apply generally during expansion. (CLI: -p, --prompt <text>)force: Optional: If true, clear existing subtasks before generating new ones for each eligible task. Default is false (append). (CLI: --force)tag: Specify which tag context to expand. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)clear_subtasks)clear_subtaskstask-master clear-subtasks [options]Remove all subtasks from one or more specified Taskmaster parent tasks.id: The ID(s) of the Taskmaster parent task(s) whose subtasks you want to remove, e.g., '15' or '16,18'. Required unless using 'all'. (CLI: -i, --id <ids>)all: Tell Taskmaster to remove subtasks from all parent tasks. (CLI: --all)tag: Specify which tag context to operate on. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)expand_task if the previous breakdown needs replacement.remove_subtask)remove_subtasktask-master remove-subtask [options]Remove a subtask from its Taskmaster parent, optionally converting it into a standalone task.id: Required. The ID(s) of the Taskmaster subtask(s) to remove, e.g., '15.2' or '16.1,16.3'. (CLI: -i, --id <id>)convert: If used, Taskmaster will turn the subtask into a regular top-level task instead of deleting it. (CLI: -c, --convert)generate: Enable Taskmaster to regenerate markdown task files after removing the subtask. (CLI: --generate)tag: Specify which tag context to operate on. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)move_task)move_tasktask-master move [options]Move a task or subtask to a new position within the task hierarchy.from: Required. ID of the task/subtask to move (e.g., "5" or "5.2"). Can be comma-separated for multiple tasks. (CLI: --from <id>)to: Required. ID of the destination (e.g., "7" or "7.3"). Must match the number of source IDs if comma-separated. (CLI: --to <id>)tag: Specify which tag context to operate on. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)task-master move --from=5.2 --to=7.3 to move subtask 5.2 to become subtask 7.3.task-master move --from=10,11,12 --to=16,17,18 to move multiple tasks to new positions.add_dependency)add_dependencytask-master add-dependency [options]Define a dependency in Taskmaster, making one task a prerequisite for another.id: Required. The ID of the Taskmaster task that will depend on another. (CLI: -i, --id <id>)dependsOn: Required. The ID of the Taskmaster task that must be completed first, the prerequisite. (CLI: -d, --depends-on <id>)tag: Specify which tag context to operate on. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <path>)remove_dependency)remove_dependencytask-master remove-dependency [options]Remove a dependency relationship between two Taskmaster tasks.id: Required. The ID of the Taskmaster task you want to remove a prerequisite from. (CLI: -i, --id <id>)dependsOn: Required. The ID of the Taskmaster task that should no longer be a prerequisite. (CLI: -d, --depends-on <id>)tag: Specify which tag context to operate on. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)validate_dependencies)validate_dependenciestask-master validate-dependencies [options]Check your Taskmaster tasks for dependency issues (like circular references or links to non-existent tasks) without making changes.tag: Specify which tag context to validate. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)fix_dependencies)fix_dependenciestask-master fix-dependencies [options]Automatically fix dependency issues (like circular references or links to non-existent tasks) in your Taskmaster tasks.tag: Specify which tag context to fix dependencies in. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)analyze_project_complexity)analyze_project_complexitytask-master analyze-complexity [options]Have Taskmaster analyze your tasks to determine their complexity and suggest which ones need to be broken down further.output: Where to save the complexity analysis report. Default is '.taskmaster/reports/task-complexity-report.json' (or '..._tagname.json' if a tag is used). (CLI: -o, --output <file>)threshold: The minimum complexity score (1-10) that should trigger a recommendation to expand a task. (CLI: -t, --threshold <number>)research: Enable research role for more accurate complexity analysis. Requires appropriate API key. (CLI: -r, --research)tag: Specify which tag context to analyze. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)complexity_report)complexity_reporttask-master complexity-report [options]Display the task complexity analysis report in a readable format.tag: Specify which tag context to show the report for. Defaults to the current active tag. (CLI: --tag <name>)file: Path to the complexity report (default: '.taskmaster/reports/task-complexity-report.json'). (CLI: -f, --file <file>)generate)generatetask-master generate [options]Create or update individual Markdown files for each task based on your tasks.json.output: The directory where Taskmaster should save the task files (default: in a 'tasks' directory). (CLI: -o, --output <directory>)tag: Specify which tag context to generate files for. Defaults to the current active tag. (CLI: --tag <name>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)research)researchtask-master research [options]Perform AI-powered research queries with project context to get fresh, up-to-date information beyond the AI's knowledge cutoff.query: Required. Research query/prompt (e.g., "What are the latest best practices for React Query v5?"). (CLI: [query] positional or -q, --query <text>)taskIds: Comma-separated list of task/subtask IDs from the current tag context (e.g., "15,16.2,17"). (CLI: -i, --id <ids>)filePaths: Comma-separated list of file paths for context (e.g., "src/api.js,docs/readme.md"). (CLI: -f, --files <paths>)customContext: Additional custom context text to include in the research. (CLI: -c, --context <text>)includeProjectTree: Include project file tree structure in context (default: false). (CLI: --tree)detailLevel: Detail level for the research response: 'low', 'medium', 'high' (default: medium). (CLI: --detail <level>)saveTo: Task or subtask ID (e.g., "15", "15.2") to automatically save the research conversation to. (CLI: --save-to <id>)saveFile: If true, saves the research conversation to a markdown file in '.taskmaster/docs/research/'. (CLI: --save-file)noFollowup: Disables the interactive follow-up question menu in the CLI. (CLI: --no-followup)tag: Specify which tag context to use for task-based context gathering. Defaults to the current active tag. (CLI: --tag <name>)projectRoot: The directory of the project. Must be an absolute path. (CLI: Determined automatically)research to gather fresh informationupdate_subtask to commit findings with timestampsupdate_task to incorporate research into task detailsadd_task with research flag for informed task creationThis new suite of commands allows you to manage different task contexts (tags).
tags)list_tagstask-master tags [options]List all available tags with task counts, completion status, and other metadata.file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)--show-metadata: Include detailed metadata in the output (e.g., creation date, description). (CLI: --show-metadata)add_tag)add_tagtask-master add-tag <tagName> [options]Create a new, empty tag context, or copy tasks from another tag.tagName: Name of the new tag to create (alphanumeric, hyphens, underscores). (CLI: <tagName> positional)--from-branch: Creates a tag with a name derived from the current git branch, ignoring the <tagName> argument. (CLI: --from-branch)--copy-from-current: Copy tasks from the currently active tag to the new tag. (CLI: --copy-from-current)--copy-from <tag>: Copy tasks from a specific source tag to the new tag. (CLI: --copy-from <tag>)--description <text>: Provide an optional description for the new tag. (CLI: -d, --description <text>)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)delete_tag)delete_tagtask-master delete-tag <tagName> [options]Permanently delete a tag and all of its associated tasks.tagName: Name of the tag to delete. (CLI: <tagName> positional)--yes: Skip the confirmation prompt. (CLI: -y, --yes)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)use_tag)use_tagtask-master use-tag <tagName>Switch your active task context to a different tag.tagName: Name of the tag to switch to. (CLI: <tagName> positional)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)rename_tag)rename_tagtask-master rename-tag <oldName> <newName>Rename an existing tag.oldName: The current name of the tag. (CLI: <oldName> positional)newName: The new name for the tag. (CLI: <newName> positional)file: Path to your Taskmaster 'tasks.json' file. Default relies on auto-detection. (CLI: -f, --file <file>)copy_tag)copy_tagtask-master copy-tag <sourceName> <targetName> [options]Copy an entire tag context, including all its tasks and metadata, to a new tag.sourceName: Name of the tag to copy from. (CLI: <sourceName> positional)targetName: Name of the new tag to create. (CLI: <targetName> positional)--description <text>: Optional description for the new tag. (CLI: -d, --description <text>)sync-readme) -- experimentaltask-master sync-readme [options]Exports your task list to your project's README.md file, useful for showcasing progress.status: Filter tasks by status (e.g., 'pending', 'done'). (CLI: -s, --status <status>)withSubtasks: Include subtasks in the export. (CLI: --with-subtasks)tag: Specify which tag context to export from. Defaults to the current active tag. (CLI: --tag <name>)Taskmaster primarily uses the .taskmaster/config.json file (in project root) for configuration (models, parameters, logging level, etc.), managed via task-master models --setup.
Environment variables are used only for sensitive API keys related to AI providers and specific overrides like the Ollama base URL:
ANTHROPIC_API_KEYPERPLEXITY_API_KEYOPENAI_API_KEYGOOGLE_API_KEYMISTRAL_API_KEYAZURE_OPENAI_API_KEY (Requires AZURE_OPENAI_ENDPOINT too)OPENROUTER_API_KEYXAI_API_KEYOLLAMA_API_KEY (Requires OLLAMA_BASE_URL too)AZURE_OPENAI_ENDPOINTOLLAMA_BASE_URL (Default: http://localhost:11434/api)Set API keys in your .env file in the project root (for CLI use) or within the env section of your .kiro/mcp.json file (for MCP/Kiro integration). All other settings (model choice, max tokens, temperature, log level, custom endpoints) are managed in .taskmaster/config.json via task-master models command or models MCP tool.
For details on how these commands fit into the development process, see the dev_workflow.md.