---
title: CLI Commands
sidebarTitle: "CLI Commands"
---


<AccordionGroup>
  <Accordion title="Parse PRD">
    ```bash
    # Parse a PRD file and generate tasks
    task-master parse-prd <prd-file.txt>

    # Limit the number of tasks generated
    task-master parse-prd <prd-file.txt> --num-tasks=10
    ```
  </Accordion>

  <Accordion title="List Tasks">
    ```bash
    # List all tasks
    task-master list

    # List tasks with a specific status
    task-master list --status=<status>

    # List tasks with subtasks
    task-master list --with-subtasks

    # List tasks with a specific status and include subtasks
    task-master list --status=<status> --with-subtasks
    ```
  </Accordion>

  <Accordion title="Show Next Task">
    ```bash
    # Show the next task to work on based on dependencies and status
    task-master next
    ```
  </Accordion>

  <Accordion title="Show Specific Task">
    ```bash
    # Show details of a specific task
    task-master show <id>
    # or
    task-master show --id=<id>

    # View a specific subtask (e.g., subtask 2 of task 1)
    task-master show 1.2
    ```
  </Accordion>

  <Accordion title="Update Tasks">
    ```bash
    # Update tasks from a specific ID and provide context
    task-master update --from=<id> --prompt="<prompt>"
    ```
  </Accordion>

  <Accordion title="Update a Specific Task">
    ```bash
    # Update a single task by ID with new information
    task-master update-task --id=<id> --prompt="<prompt>"

    # Use research-backed updates with Perplexity AI
    task-master update-task --id=<id> --prompt="<prompt>" --research
    ```
  </Accordion>

  <Accordion title="Update a Subtask">
    ```bash
    # Append additional information to a specific subtask
    task-master update-subtask --id=<parentId.subtaskId> --prompt="<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 with Perplexity AI
    task-master update-subtask --id=<parentId.subtaskId> --prompt="<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.
  </Accordion>

  <Accordion title="Generate Task Files">
    ```bash
    # Generate individual task files from tasks.json
    task-master generate
    ```
  </Accordion>

  <Accordion title="Set Task Status">
    ```bash
    # Set status of a single task
    task-master set-status --id=<id> --status=<status>

    # Set status for multiple tasks
    task-master set-status --id=1,2,3 --status=<status>

    # Set status for subtasks
    task-master set-status --id=1.1,1.2 --status=<status>
    ```

    When marking a task as "done", all of its subtasks will automatically be marked as "done" as well.
  </Accordion>

  <Accordion title="Expand Tasks">
    ```bash
    # Expand a specific task with subtasks
    task-master expand --id=<id> --num=<number>

    # Expand with additional context
    task-master expand --id=<id> --prompt="<context>"

    # 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=<id> --research

    # Research-backed generation for all tasks
    task-master expand --all --research
    ```

    When you run `task-master expand --all` after `task-master analyze-complexity`, the expand operation automatically uses the recommended subtask counts from the complexity analysis instead of applying uniform defaults. This ensures each task is broken down according to its actual complexity level.
  </Accordion>

  <Accordion title="Clear Subtasks">
    ```bash
    # Clear subtasks from a specific task
    task-master clear-subtasks --id=<id>

    # Clear subtasks from multiple tasks
    task-master clear-subtasks --id=1,2,3

    # Clear subtasks from all tasks
    task-master clear-subtasks --all
    ```
  </Accordion>

  <Accordion title="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 your configured research model for research-backed complexity analysis
    task-master analyze-complexity --research
    ```
  </Accordion>

  <Accordion title="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
    ```
  </Accordion>

  <Accordion title="Managing Task Dependencies">
    ```bash
    # Add a dependency to a task
    task-master add-dependency --id=<id> --depends-on=<id>

    # Remove a dependency from a task
    task-master remove-dependency --id=<id> --depends-on=<id>

    # Validate dependencies without fixing them
    task-master validate-dependencies

    # Find and fix invalid dependencies automatically
    task-master fix-dependencies
    ```
  </Accordion>

  <Accordion title="Add a New Task">
    ```bash
    # Add a new task using AI
    task-master add-task --prompt="Description of the new task"

    # 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
    ```
  </Accordion>

  <Accordion title="Initialize a Project">
    ```bash
    # Initialize a new project with Task Master structure
    task-master init
    ```
  </Accordion>
</AccordionGroup>
