# Task Master Command Reference Here's a comprehensive reference of all available commands: ## Parse PRD ```bash # Parse a PRD file and generate tasks task-master parse-prd # Limit the number of tasks generated task-master parse-prd --num-tasks=10 ``` ## List Tasks ```bash # List all tasks task-master list # List tasks with a specific status task-master list --status= # List tasks with subtasks task-master list --with-subtasks # List tasks with a specific status and include subtasks task-master list --status= --with-subtasks ``` ## Show Next Task ```bash # Show the next task to work on based on dependencies and status task-master next ``` ## Show Specific Task ```bash # Show details of a specific task task-master show # or task-master show --id= # View multiple tasks with comma-separated IDs task-master show 1,3,5 task-master show 44,55 # View a specific subtask (e.g., subtask 2 of task 1) task-master show 1.2 # Mix parent tasks and subtasks task-master show 44,44.1,55,55.2 ``` **Multiple Task Display:** - **Single ID**: Shows detailed task view with full implementation details - **Multiple IDs**: Shows compact summary table with interactive action menu - **Action Menu**: Provides copy-paste ready commands for batch operations: - Mark all as in-progress/done - Show next available task - Expand all tasks (generate subtasks) - View dependency relationships - Generate task files ## Update Tasks ```bash # Update tasks from a specific ID and provide context task-master update --from= --prompt="" # Update tasks using research role task-master update --from= --prompt="" --research ``` ## Update a Specific Task ```bash # Update a single task by ID with new information task-master update-task --id= --prompt="" # Use research-backed updates task-master update-task --id= --prompt="" --research ``` ## Update a Subtask ```bash # Append additional information to a specific subtask task-master update-subtask --id= --prompt="" # Example: Add details about API rate limiting to subtask 2 of task 5 task-master update-subtask --id=5.2 --prompt="Add rate limiting of 100 requests per minute" # Use research-backed updates task-master update-subtask --id= --prompt="" --research ``` Unlike the `update-task` command which replaces task information, the `update-subtask` command _appends_ new information to the existing subtask details, marking it with a timestamp. This is useful for iteratively enhancing subtasks while preserving the original content. ## Generate Task Files ```bash # Generate individual task files from tasks.json task-master generate ``` ## Set Task Status ```bash # Set status of a single task task-master set-status --id= --status= # Set status for multiple tasks task-master set-status --id=1,2,3 --status= # Set status for subtasks task-master set-status --id=1.1,1.2 --status= ``` When marking a task as "done", all of its subtasks will automatically be marked as "done" as well. ## Expand Tasks ```bash # Expand a specific task with subtasks task-master expand --id= --num= # Expand with additional context task-master expand --id= --prompt="" # Expand all pending tasks task-master expand --all # Force regeneration of subtasks for tasks that already have them task-master expand --all --force # Research-backed subtask generation for a specific task task-master expand --id= --research # Research-backed generation for all tasks task-master expand --all --research ``` ## Clear Subtasks ```bash # Clear subtasks from a specific task task-master clear-subtasks --id= # Clear subtasks from multiple tasks task-master clear-subtasks --id=1,2,3 # Clear subtasks from all tasks task-master clear-subtasks --all ``` ## Analyze Task Complexity ```bash # Analyze complexity of all tasks task-master analyze-complexity # Save report to a custom location task-master analyze-complexity --output=my-report.json # Use a specific LLM model task-master analyze-complexity --model=claude-3-opus-20240229 # Set a custom complexity threshold (1-10) task-master analyze-complexity --threshold=6 # Use an alternative tasks file task-master analyze-complexity --file=custom-tasks.json # Use Perplexity AI for research-backed complexity analysis task-master analyze-complexity --research ``` ## View Complexity Report ```bash # Display the task complexity analysis report task-master complexity-report # View a report at a custom location task-master complexity-report --file=my-report.json ``` ## Managing Task Dependencies ```bash # Add a dependency to a task task-master add-dependency --id= --depends-on= # Remove a dependency from a task task-master remove-dependency --id= --depends-on= # Validate dependencies without fixing them task-master validate-dependencies # Find and fix invalid dependencies automatically task-master fix-dependencies ``` ## Move Tasks ```bash # Move a task or subtask to a new position task-master move --from= --to= # Examples: # Move task to become a subtask task-master move --from=5 --to=7 # Move subtask to become a standalone task task-master move --from=5.2 --to=7 # Move subtask to a different parent task-master move --from=5.2 --to=7.3 # Reorder subtasks within the same parent task-master move --from=5.2 --to=5.4 # Move a task to a new ID position (creates placeholder if doesn't exist) task-master move --from=5 --to=25 # Move multiple tasks at once (must have the same number of IDs) task-master move --from=10,11,12 --to=16,17,18 ``` ## Add a New Task ```bash # Add a new task using AI (main role) task-master add-task --prompt="Description of the new task" # Add a new task using AI (research role) task-master add-task --prompt="Description of the new task" --research # Add a task with dependencies task-master add-task --prompt="Description" --dependencies=1,2,3 # Add a task with priority task-master add-task --prompt="Description" --priority=high ``` ## Tag Management Task Master supports tagged task lists for multi-context task management. Each tag represents a separate, isolated context for tasks. ```bash # List all available tags with task counts and status task-master tags # List tags with detailed metadata task-master tags --show-metadata # Create a new empty tag task-master add-tag # Create a new tag with a description task-master add-tag --description="Feature development tasks" # Create a tag based on current git branch name task-master add-tag --from-branch # Create a new tag by copying tasks from the current tag task-master add-tag --copy-from-current # Create a new tag by copying from a specific tag task-master add-tag --copy-from= # Switch to a different tag context task-master use-tag # Rename an existing tag task-master rename-tag # Copy an entire tag to create a new one task-master copy-tag # Copy a tag with a description task-master copy-tag --description="Copied for testing" # Delete a tag and all its tasks (with confirmation) task-master delete-tag # Delete a tag without confirmation prompt task-master delete-tag --yes ``` **Tag Context:** - All task operations (list, show, add, update, etc.) work within the currently active tag - Use `--tag=` flag with most commands to operate on a specific tag context - Tags provide complete isolation - tasks in different tags don't interfere with each other ## Initialize a Project ```bash # Initialize a new project with Task Master structure task-master init # Initialize a new project applying specific rules task-master init --rules cursor,windsurf,vscode ``` - The `--rules` flag allows you to specify one or more rule profiles (e.g., `cursor`, `roo`, `windsurf`, `cline`) to apply during initialization. - If omitted, all available rule profiles are installed by default (claude, cline, codex, cursor, roo, trae, vscode, windsurf). - You can use multiple comma-separated profiles in a single command. ## Manage Rules ```bash # Add rule profiles to your project # (e.g., .roo/rules, .windsurf/rules) task-master rules add # Remove rule sets from your project task-master rules remove # Remove rule sets bypassing safety check (dangerous) task-master rules remove --force # Launch interactive rules setup to select rules # (does not re-initialize project or ask about shell aliases) task-master rules setup ``` - Adding rules creates the profile and rules directory (e.g., `.roo/rules`) and copies/initializes the rules. - Removing rules deletes the profile and rules directory and associated MCP config. - **Safety Check**: Attempting to remove rule profiles will trigger a critical warning requiring confirmation. Use `--force` to bypass. - You can use multiple comma-separated rules in a single command. - The `setup` action launches an interactive prompt to select which rules to apply. The list of rules is always current with the available profiles, and no manual updates are needed. This command does **not** re-initialize your project or affect shell aliases; it only manages rules interactively. **Examples:** ```bash task-master rules add windsurf,roo,vscode task-master rules remove windsurf task-master rules setup ``` ### Interactive Rules Setup You can launch the interactive rules setup at any time with: ```bash task-master rules setup ``` This command opens a prompt where you can select which rule profiles (e.g., Cursor, Roo, Windsurf) you want to add to your project. This does **not** re-initialize your project or ask about shell aliases; it only manages rules. - Use this command to add rule profiles interactively after project creation. - The same interactive prompt is also used during `init` if you don't specify rules with `--rules`. ## Configure AI Models ```bash # View current AI model configuration and API key status task-master models # Set the primary model for generation/updates (provider inferred if known) task-master models --set-main=claude-3-opus-20240229 # Set the research model task-master models --set-research=sonar-pro # Set the fallback model task-master models --set-fallback=claude-3-haiku-20240307 # Set a custom Ollama model for the main role task-master models --set-main=my-local-llama --ollama # Set a custom OpenRouter model for the research role task-master models --set-research=google/gemini-pro --openrouter # Run interactive setup to configure models, including custom ones task-master models --setup ``` Configuration is stored in `.taskmaster/config.json` in your project root (legacy `.taskmasterconfig` files are automatically migrated). API keys are still managed via `.env` or MCP configuration. Use `task-master models` without flags to see available built-in models. Use `--setup` for a guided experience. State is stored in `.taskmaster/state.json` in your project root. It maintains important information like the current tag. Do not manually edit this file. ## Research Fresh Information ```bash # Perform AI-powered research with fresh, up-to-date information task-master research "What are the latest best practices for JWT authentication in Node.js?" # Research with specific task context task-master research "How to implement OAuth 2.0?" --id=15,16 # Research with file context for code-aware suggestions task-master research "How can I optimize this API implementation?" --files=src/api.js,src/auth.js # Research with custom context and project tree task-master research "Best practices for error handling" --context="We're using Express.js" --tree # Research with different detail levels task-master research "React Query v5 migration guide" --detail=high # Disable interactive follow-up questions (useful for scripting, is the default for MCP) # Use a custom tasks file location task-master research "How to implement this feature?" --file=custom-tasks.json # Research within a specific tag context task-master research "Database optimization strategies" --tag=feature-branch # Save research conversation to .taskmaster/docs/research/ directory (for later reference) task-master research "Database optimization techniques" --save-file # Save key findings directly to a task or subtask (recommended for actionable insights) task-master research "How to implement OAuth?" --save-to=15 task-master research "API optimization strategies" --save-to=15.2 # Combine context gathering with automatic saving of findings task-master research "Best practices for this implementation" --id=15,16 --files=src/auth.js --save-to=15.3 ``` **The research command is a powerful exploration tool that provides:** - **Fresh information beyond AI knowledge cutoffs** - **Project-aware context** from your tasks and files - **Automatic task discovery** using fuzzy search - **Multiple detail levels** (low, medium, high) - **Token counting and cost tracking** - **Interactive follow-up questions** for deep exploration - **Flexible save options** (commit findings to tasks or preserve conversations) - **Iterative discovery** through continuous questioning and refinement **Use research frequently to:** - Get current best practices before implementing features - Research new technologies and libraries - Find solutions to complex problems - Validate your implementation approaches - Stay updated with latest security recommendations **Interactive Features (CLI):** - **Follow-up questions** that maintain conversation context and allow deep exploration - **Save menu** during or after research with flexible options: - **Save to task/subtask**: Commit key findings and actionable insights (recommended) - **Save to file**: Preserve entire conversation for later reference if needed - **Continue exploring**: Ask more follow-up questions to dig deeper - **Automatic file naming** with timestamps and query-based slugs when saving conversations