* Update SWE scores (#657) * docs: Auto-update and format models.md * feat: Flexible brand rules management (#460) * chore(docs): update docs and rules related to model management. * feat(ai): Add OpenRouter AI provider support Integrates the OpenRouter AI provider using the Vercel AI SDK adapter (@openrouter/ai-sdk-provider). This allows users to configure and utilize models available through the OpenRouter platform. - Added src/ai-providers/openrouter.js with standard Vercel AI SDK wrapper functions (generateText, streamText, generateObject). - Updated ai-services-unified.js to include the OpenRouter provider in the PROVIDER_FUNCTIONS map and API key resolution logic. - Verified config-manager.js handles OpenRouter API key checks correctly. - Users can configure OpenRouter models via .taskmasterconfig using the task-master models command or MCP models tool. Requires OPENROUTER_API_KEY. - Enhanced error handling in ai-services-unified.js to provide clearer messages when generateObjectService fails due to lack of underlying tool support in the selected model/provider endpoint. * feat(cli): Add --status/-s filter flag to show command and get-task MCP tool Implements the ability to filter subtasks displayed by the `task-master show <id>` command using the `--status` (or `-s`) flag. This is also available in the MCP context. - Modified `commands.js` to add the `--status` option to the `show` command definition. - Updated `utils.js` (`findTaskById`) to handle the filtering logic and return original subtask counts/arrays when filtering. - Updated `ui.js` (`displayTaskById`) to use the filtered subtasks for the table, display a summary line when filtering, and use the original subtask list for the progress bar calculation. - Updated MCP `get_task` tool and `showTaskDirect` function to accept and pass the `status` parameter. - Added changeset entry. * fix(tasks): Improve next task logic to be subtask-aware * fix(tasks): Enable removing multiple tasks/subtasks via comma-separated IDs - Refactors the core `removeTask` function (`task-manager/remove-task.js`) to accept and iterate over comma-separated task/subtask IDs. - Updates dependency cleanup and file regeneration logic to run once after processing all specified IDs. - Adjusts the `remove-task` CLI command (`commands.js`) description and confirmation prompt to handle multiple IDs correctly. - Fixes a bug in the CLI confirmation prompt where task/subtask titles were not being displayed correctly. - Updates the `remove_task` MCP tool description to reflect the new multi-ID capability. This addresses the previously known issue where only the first ID in a comma-separated list was processed. Closes #140 * Update README.md (#342) * Update Discord badge (#337) * refactor(init): Improve robustness and dependencies; Update template deps for AI SDKs; Silence npm install in MCP; Improve conditional model setup logic; Refactor init.js flags; Tweak Getting Started text; Fix MCP server launch command; Update default model in config template * Refactor: Improve MCP logging, update E2E & tests Refactors MCP server logging and updates testing infrastructure. - MCP Server: - Replaced manual logger wrappers with centralized `createLogWrapper` utility. - Updated direct function calls to use `{ session, mcpLog }` context. - Removed deprecated `model` parameter from analyze, expand-all, expand-task tools. - Adjusted MCP tool import paths and parameter descriptions. - Documentation: - Modified `docs/configuration.md`. - Modified `docs/tutorial.md`. - Testing: - E2E Script (`run_e2e.sh`): - Removed `set -e`. - Added LLM analysis function (`analyze_log_with_llm`) & integration. - Adjusted test run directory creation timing. - Added debug echo statements. - Deleted Unit Tests: Removed `ai-client-factory.test.js`, `ai-client-utils.test.js`, `ai-services.test.js`. - Modified Fixtures: Updated `scripts/task-complexity-report.json`. - Dev Scripts: - Modified `scripts/dev.js`. * chore(tests): Passes tests for merge candidate - Adjusted the interactive model default choice to be 'no change' instead of 'cancel setup' - E2E script has been perfected and works as designed provided there are all provider API keys .env in the root - Fixes the entire test suite to make sure it passes with the new architecture. - Fixes dependency command to properly show there is a validation failure if there is one. - Refactored config-manager.test.js mocking strategy and fixed assertions to read the real supported-models.json - Fixed rule-transformer.test.js assertion syntax and transformation logic adjusting replacement for search which was too broad. - Skip unstable tests in utils.test.js (log, readJSON, writeJSON error paths) due to SIGABRT crash. These tests trigger a native crash (SIGABRT), likely stemming from a conflict between internal chalk usage within the functions and Jest's test environment, possibly related to ESM module handling. * chore(wtf): removes chai. not sure how that even made it in here. also removes duplicate test in scripts/. * fix: ensure API key detection properly reads .env in MCP context Problem: - Task Master model configuration wasn't properly checking for API keys in the project's .env file when running through MCP - The isApiKeySet function was only checking session.env and process.env but not inspecting the .env file directly - This caused incorrect API key status reporting in MCP tools even when keys were properly set in .env Solution: - Modified resolveEnvVariable function in utils.js to properly read from .env file at projectRoot - Updated isApiKeySet to correctly pass projectRoot to resolveEnvVariable - Enhanced the key detection logic to have consistent behavior between CLI and MCP contexts - Maintains the correct precedence: session.env → .env file → process.env Testing: - Verified working correctly with both MCP and CLI tools - API keys properly detected in .env file in both contexts - Deleted .cursor/mcp.json to confirm introspection of .env as fallback works * fix(update): pass projectRoot through update command flow Modified ai-services-unified.js, update.js tool, and update-tasks.js direct function to correctly pass projectRoot. This enables the .env file API key fallback mechanism for the update command when running via MCP, ensuring consistent key resolution with the CLI context. * fix(analyze-complexity): pass projectRoot through analyze-complexity flow Modified analyze-task-complexity.js core function, direct function, and analyze.js tool to correctly pass projectRoot. Fixed import error in tools/index.js. Added debug logging to _resolveApiKey in ai-services-unified.js. This enables the .env API key fallback for analyze_project_complexity. * fix(add-task): pass projectRoot and fix logging/refs Modified add-task core, direct function, and tool to pass projectRoot for .env API key fallback. Fixed logFn reference error and removed deprecated reportProgress call in core addTask function. Verified working. * fix(parse-prd): pass projectRoot and fix schema/logging Modified parse-prd core, direct function, and tool to pass projectRoot for .env API key fallback. Corrected Zod schema used in generateObjectService call. Fixed logFn reference error in core parsePRD. Updated unit test mock for utils.js. * fix(update-task): pass projectRoot and adjust parsing Modified update-task-by-id core, direct function, and tool to pass projectRoot. Reverted parsing logic in core function to prioritize `{...}` extraction, resolving parsing errors. Fixed ReferenceError by correctly destructuring projectRoot. * fix(update-subtask): pass projectRoot and allow updating done subtasks Modified update-subtask-by-id core, direct function, and tool to pass projectRoot for .env API key fallback. Removed check preventing appending details to completed subtasks. * fix(mcp, expand): pass projectRoot through expand/expand-all flows Problem: expand_task & expand_all MCP tools failed with .env keys due to missing projectRoot propagation for API key resolution. Also fixed a ReferenceError: wasSilent is not defined in expandTaskDirect. Solution: Modified core logic, direct functions, and MCP tools for expand-task and expand-all to correctly destructure projectRoot from arguments and pass it down through the context object to the AI service call (generateTextService). Fixed wasSilent scope in expandTaskDirect. Verification: Tested expand_task successfully in MCP using .env keys. Reviewed expand_all flow for correct projectRoot propagation. * chore: prettier * fix(expand-all): add projectRoot to expandAllTasksDirect invokation. * fix(update-tasks): Improve AI response parsing for 'update' command Refactors the JSON array parsing logic within in . The previous logic primarily relied on extracting content from markdown code blocks (json or javascript), which proved brittle when the AI response included comments or non-JSON text within the block, leading to parsing errors for the command. This change modifies the parsing strategy to first attempt extracting content directly between the outermost '[' and ']' brackets. This is more robust as it targets the expected array structure directly. If bracket extraction fails, it falls back to looking for a strict json code block, then prefix stripping, before attempting a raw parse. This approach aligns with the successful parsing strategy used for single-object responses in and resolves the parsing errors previously observed with the command. * refactor(mcp): introduce withNormalizedProjectRoot HOF for path normalization Added HOF to mcp tools utils to normalize projectRoot from args/session. Refactored get-task tool to use HOF. Updated relevant documentation. * refactor(mcp): apply withNormalizedProjectRoot HOF to update tool Problem: The MCP tool previously handled project root acquisition and path resolution within its method, leading to potential inconsistencies and repetition. Solution: Refactored the tool () to utilize the new Higher-Order Function (HOF) from . Specific Changes: - Imported HOF. - Updated the Zod schema for the parameter to be optional, as the HOF handles deriving it from the session if not provided. - Wrapped the entire function body with the HOF. - Removed the manual call to from within the function body. - Destructured the from the object received by the wrapped function, ensuring it's the normalized path provided by the HOF. - Used the normalized variable when calling and when passing arguments to . This change standardizes project root handling for the tool, simplifies its method, and ensures consistent path normalization. This serves as the pattern for refactoring other MCP tools. * fix: apply to all tools withNormalizedProjectRoot to fix projectRoot issues for linux and windows * fix: add rest of tools that need wrapper * chore: cleanup tools to stop using rootFolder and remove unused imports * chore: more cleanup * refactor: Improve update-subtask, consolidate utils, update config This commit introduces several improvements and refactorings across MCP tools, core logic, and configuration. **Major Changes:** 1. **Refactor updateSubtaskById:** - Switched from generateTextService to generateObjectService for structured AI responses, using a Zod schema (subtaskSchema) for validation. - Revised prompts to have the AI generate relevant content based on user request and context (parent/sibling tasks), while explicitly preventing AI from handling timestamp/tag formatting. - Implemented **local timestamp generation (new Date().toISOString()) and formatting** (using <info added on ...> tags) within the function *after* receiving the AI response. This ensures reliable and correctly formatted details are appended. - Corrected logic to append only the locally formatted, AI-generated content block to the existing subtask.details. 2. **Consolidate MCP Utilities:** - Moved/consolidated the withNormalizedProjectRoot HOF into mcp-server/src/tools/utils.js. - Updated MCP tools (like update-subtask.js) to import withNormalizedProjectRoot from the new location. 3. **Refactor Project Initialization:** - Deleted the redundant mcp-server/src/core/direct-functions/initialize-project-direct.js file. - Updated mcp-server/src/core/task-master-core.js to import initializeProjectDirect from its correct location (./direct-functions/initialize-project.js). **Other Changes:** - Updated .taskmasterconfig fallback model to claude-3-7-sonnet-20250219. - Clarified model cost representation in the models tool description (taskmaster.mdc and mcp-server/src/tools/models.js). * fix: displayBanner logging when silentMode is active (#385) * fix: improve error handling, test options, and model configuration - Enhance error validation in parse-prd.js and update-tasks.js - Fix bug where mcpLog was incorrectly passed as logWrapper - Improve error messages and response formatting - Add --skip-verification flag to E2E tests - Update MCP server config that ships with init to match new API key structure - Fix task force/append handling in parse-prd command - Increase column width in update-tasks display * chore: fixes parse prd to show loading indicator in cli. * fix(parse-prd): suggested fix for mcpLog was incorrect. reverting to my previously working code. * chore(init): No longer ships readme with task-master init (commented out for now). No longer looking for task-master-mcp, instead checked for task-master-ai - this should prevent the init sequence from needlessly adding another mcp server with task-master-mcp to the mpc.json which a ton of people probably ran into. * chore: restores 3.7 sonnet as the main role. * fix(add/remove-dependency): dependency mcp tools were failing due to hard-coded tasks path in generate task files. * chore: removes tasks json backup that was temporarily created. * fix(next): adjusts mcp tool response to correctly return the next task/subtask. Also adds nextSteps to the next task response. * chore: prettier * chore: readme typos * fix(config): restores sonnet 3.7 as default main role. * Version Packages * hotfix: move production package to "dependencies" (#399) * Version Packages * Fix: issues with 0.13.0 not working (#402) * Exit prerelease mode and version packages * hotfix: move production package to "dependencies" * Enter prerelease mode and version packages * Enter prerelease mode and version packages * chore: cleanup * chore: improve pre.json and add pre-release workflow * chore: fix package.json * chore: cleanup * chore: improve pre-release workflow * chore: allow github actions to commit * extract fileMap and conversionConfig into brand profile * extract into brand profile * add windsurf profile * add remove brand rules function * fix regex * add rules command to add/remove rules for a specific brand * fix post processing for roo * allow multiples * add cursor profile * update test for new structure * move rules to assets * use assets/rules for rules files * use standardized setupMCP function * fix formatting * fix formatting * add logging * fix escapes * default to cursor * allow init with certain rulesets; no more .windsurfrules * update docs * update log msg * fix formatting * keep mdc extension for cursor * don't rewrite .mdc to .md inside the files * fix roo init (add modes) * fix cursor init (don't use roo transformation by default) * use more generic function names * update docs * fix formatting * update function names * add changeset * add rules to mcp initialize project * register tool with mcp server * update docs * add integration test * fix cursor initialization * rule selection * fix formatting * fix MCP - remove yes flag * add import * update roo tests * add/update tests * remove test * add rules command test * update MCP responses, centralize rules profiles & helpers * fix logging and MCP response messages * fix formatting * incorrect test * fix tests * update fileMap * fix file extension transformations * fix formatting * add rules command test * test already covered * fix formatting * move renaming logic into profiles * make sure dir is deleted (DS_Store) * add confirmation for rules removal * add force flag for rules remove * use force flag for test * remove yes parameter * fix formatting * import brand profiles from rule-transformer.js * update comment * add interactive rules setup * optimize * only copy rules specifically listed in fileMap * update comment * add cline profile * add brandDir to remove ambiguity and support Cline * specify whether to create mcp config and filename * add mcpConfigName value for parh * fix formatting * remove rules just for this repository - only include rules to be distributed * update error message * update "brand rules" to "rules" * update to minor * remove comment * remove comments * move to /src/utils * optimize imports * move rules-setup.js to /src/utils * move rule-transformer.js to /src/utils * move confirmation to /src/ui/confirm.js * default to all rules * use profile js for mcp config settings * only run rules interactive setup if not provided via command line * update comments * initialize with all brands if nothing specified * update var name * clean up * enumerate brands for brand rules * update instructions * add test to check for brand profiles * fix quotes * update semantics and terminology from 'brand rules' to 'rules profiles' * fix formatting * fix formatting * update function name and remove copying of cursor rules, now handled by rules transformer * update comment * rename to mcp-config-setup.js * use enums for rules actions * add aggregate reporting for rules add command * add missing log message * use simpler path * use base profile with modifications for each brand * use displayName and don't select any defaults in setup * add confirmation if removing ALL rules profiles, and add --force flag on rules remove * Use profile-detection instead of rules-detection * add newline at end of mcp config * add proper formatting for mcp.json * update rules * update rules * update rules * add checks for other rules and other profile folder items before removing * update confirmation for rules remove * update docs * update changeset * fix for filepath at bottom of rule * Update cline profile and add test; adjust other rules tests * update changeset * update changeset * clarify init for all profiles if not specified * update rule text * revert text * use "rule profiles" instead of "rules profiles" * use standard tool mappings for windsurf * add Trae support * update changeset * update wording * update to 'rule profile' * remove unneeded exports to optimize loc * combine to /src/utils/profiles.js; add codex and claude code profiles * rename function and add boxen * add claude and codex integration tests * organize tests into profiles folder * mock fs for transformer tests * update UI * add cline and trae integration tests * update test * update function name * update formatting * Update change set with new profiles * move profile integration tests to subdirectory * properly create temp directories in /tmp folder * fix formatting * use taskmaster subfolder for the 2 TM rules * update wording * ensure subdirectory exists * update rules from next * update from next * update taskmaster rule * add details on new rules command and init * fix mcp init * fix MCP path to assets * remove duplication * remove duplication * MCP server path fixes for rules command * fix for CLI roo rules add/remove * update tests * fix formatting * fix pattern for interactive rule profiles setup * restore comments * restore comments * restore comments * remove unused import, fix quotes * add missing integration tests * add VS Code profile and tests * update docs and rules to include vscode profile * add rules subdirectory support per-profile * move profiles to /src * fix formatting * rename to remove ambiguity * use --setup for rules interactive setup * Fix Cursor deeplink installation with copy-paste instructions (#723) * change roo boomerang to orchestrator; update tests that don't use modes * fix newline * chore: cleanup --------- Co-authored-by: Eyal Toledano <eyal@microangel.so> Co-authored-by: Yuval <yuvalbl@users.noreply.github.com> Co-authored-by: Marijn van der Werf <marijn.vanderwerf@gmail.com> Co-authored-by: Eyal Toledano <eutait@gmail.com> Co-authored-by: Ralph Khreish <35776126+Crunchyman-ralph@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix: providers config for azure, bedrock, and vertex (#822) * fix: providers config for azure, bedrock, and vertex * chore: improve changelog * chore: fix CI * fix: switch to ESM export to avoid mixed format (#633) * fix: switch to ESM export to avoid mixed format The CLI entrypoint was using `module.exports` alongside ESM `import` statements, resulting in an invalid mixed module format. Replaced the CommonJS export with a proper ESM `export` to maintain consistency and prevent module resolution issues. * chore: add changeset --------- Co-authored-by: Ralph Khreish <35776126+Crunchyman-ralph@users.noreply.github.com> * fix: Fix external provider support (#726) * fix(bedrock): improve AWS credential handling and add model definitions (#826) * fix(bedrock): improve AWS credential handling and add model definitions - Change error to warning when AWS credentials are missing in environment - Allow fallback to system configuration (aws config files or instance profiles) - Remove hardcoded region and profile parameters in Bedrock client - Add Claude 3.7 Sonnet and DeepSeek R1 model definitions for Bedrock - Update config manager to properly handle Bedrock provider * chore: cleanup and format and small refactor --------- Co-authored-by: Ray Krueger <raykrueger@gmail.com> * docs: Auto-update and format models.md * Version Packages * chore: fix package.json * Fix/expand command tag corruption (#827) * fix(expand): Fix tag corruption in expand command - Fix tag parameter passing through MCP expand-task flow - Add tag parameter to direct function and tool registration - Fix contextGatherer method name from _buildDependencyContext to _buildDependencyGraphs - Add comprehensive test coverage for tag handling in expand-task - Ensures tagged task structure is preserved during expansion - Prevents corruption when tag is undefined. Fixes expand command causing tag corruption in tagged task lists. All existing tests pass and new test coverage added. * test(e2e): Add comprehensive tag-aware expand testing to verify tag corruption fix - Add new test section for feature-expand tag creation and testing - Verify tag preservation during expand, force expand, and expand --all operations - Test that master tag remains intact and feature-expand tag receives subtasks correctly - Fix file path references to use correct .taskmaster/tasks/tasks.json location - Fix config file check to use .taskmaster/config.json instead of .taskmasterconfig - All tag corruption verification tests pass successfully in E2E test * fix(changeset): Update E2E test improvements changeset to properly reflect tag corruption fix verification * chore(changeset): combine duplicate changesets for expand tag corruption fix Merge eighty-breads-wonder.md into bright-llamas-enter.md to consolidate the expand command fix and its comprehensive E2E testing enhancements into a single changeset entry. * Delete .changeset/eighty-breads-wonder.md * Version Packages * chore: fix package.json * fix(expand): Enhance context handling in expandAllTasks function - Added `tag` to context destructuring for better context management. - Updated `readJSON` call to include `contextTag` for improved data integrity. - Ensured the correct tag is passed during task expansion to prevent tag corruption. --------- Co-authored-by: Parththipan Thaniperumkarunai <parththipan.thaniperumkarunai@milkmonkey.de> Co-authored-by: Parthy <52548018+mm-parthy@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Add pyproject.toml as project root marker (#804) * feat: Add pyproject.toml as project root marker - Added 'pyproject.toml' to the project markers array in findProjectRoot() - Enables Task Master to recognize Python projects using pyproject.toml - Improves project root detection for modern Python development workflows - Maintains compatibility with existing Node.js and Git-based detection * chore: add changeset --------- Co-authored-by: Ralph Khreish <35776126+Crunchyman-ralph@users.noreply.github.com> * feat: add Claude Code provider support Implements Claude Code as a new AI provider that uses the Claude Code CLI without requiring API keys. This enables users to leverage Claude models through their local Claude Code installation. Key changes: - Add complete AI SDK v1 implementation for Claude Code provider - Custom SDK with streaming/non-streaming support - Session management for conversation continuity - JSON extraction for object generation mode - Support for advanced settings (maxTurns, allowedTools, etc.) - Integrate Claude Code into Task Master's provider system - Update ai-services-unified.js to handle keyless authentication - Add provider to supported-models.json with opus/sonnet models - Ensure correct maxTokens values are applied (opus: 32000, sonnet: 64000) - Fix maxTokens configuration issue - Add max_tokens property to getAvailableModels() output - Update setModel() to properly handle claude-code models - Create update-config-tokens.js utility for init process - Add comprehensive documentation - User guide with configuration examples - Advanced settings explanation and future integration options The implementation maintains full backward compatibility with existing providers while adding seamless Claude Code support to all Task Master commands. * fix(docs): correct invalid commands in claude-code usage examples - Remove non-existent 'do', 'estimate', and 'analyze' commands - Replace with actual Task Master commands: next, show, set-status - Use correct syntax for parse-prd and analyze-complexity * feat: make @anthropic-ai/claude-code an optional dependency This change makes the Claude Code SDK package optional, preventing installation failures for users who don't need Claude Code functionality. Changes: - Added @anthropic-ai/claude-code to optionalDependencies in package.json - Implemented lazy loading in language-model.js to only import the SDK when actually used - Updated documentation to explain the optional installation requirement - Applied formatting fixes to ensure code consistency Benefits: - Users without Claude Code subscriptions don't need to install the dependency - Reduces package size for users who don't use Claude Code - Prevents installation failures if the package is unavailable - Provides clear error messages when the package is needed but not installed The implementation uses dynamic imports to load the SDK only when doGenerate() or doStream() is called, ensuring the provider can be instantiated without the package present. * test: add comprehensive tests for ClaudeCodeProvider Addresses code review feedback about missing automated tests for the ClaudeCodeProvider. ## Changes - Added unit tests for ClaudeCodeProvider class covering constructor, validateAuth, and getClient methods - Added unit tests for ClaudeCodeLanguageModel testing lazy loading behavior and error handling - Added integration tests verifying optional dependency behavior when @anthropic-ai/claude-code is not installed ## Test Coverage 1. **Unit Tests**: - ClaudeCodeProvider: Basic functionality, no API key requirement, client creation - ClaudeCodeLanguageModel: Model initialization, lazy loading, error messages, warning generation 2. **Integration Tests**: - Optional dependency behavior when package is not installed - Clear error messages for users about missing package - Provider instantiation works but usage fails gracefully All tests pass and provide comprehensive coverage for the claude-code provider implementation. * revert: remove maxTokens update functionality from init This functionality was out of scope for the Claude Code provider PR. The automatic updating of maxTokens values in config.json during initialization is a general improvement that should be in a separate PR. Additionally, Claude Code ignores maxTokens and temperature parameters anyway, making this change irrelevant for the Claude Code integration. Removed: - scripts/modules/update-config-tokens.js - Import and usage in scripts/init.js * docs: add Claude Code support information to README - Added Claude Code to the list of supported providers in Requirements section - Noted that Claude Code requires no API key but needs Claude Code CLI - Added example of configuring claude-code/sonnet model - Created dedicated Claude Code Support section with key information - Added link to detailed Claude Code setup documentation This ensures users are aware of the Claude Code option as a no-API-key alternative for using Claude models. * style: apply biome formatting to test files * fix(models): add missing --claude-code flag to models command The models command was missing the --claude-code provider flag, preventing users from setting Claude Code models via CLI. While the backend already supported claude-code as a provider hint, there was no command-line flag to trigger it. Changes: - Added --claude-code option to models command alongside existing provider flags - Updated provider flags validation to include claudeCode option - Added claude-code to providerHint logic for all three model roles (main, research, fallback) - Updated error message to include --claude-code in list of mutually exclusive flags - Added example usage in help text This allows users to properly set Claude Code models using commands like: task-master models --set-main sonnet --claude-code task-master models --set-main opus --claude-code Without this flag, users would get "Model ID not found" errors when trying to set claude-code models, as the system couldn't determine the correct provider for generic model names like "sonnet" or "opus". * chore: add changeset for Claude Code provider feature * docs: Auto-update and format models.md * readme: add troubleshooting note for MCP tools not working * Feature/compatibleapisupport (#830) * add compatible platform api support * Adjust the code according to the suggestions * Fully revised as requested: restored all required checks, improved compatibility, and converted all comments to English. * feat: Add support for compatible API endpoints via baseURL * chore: Add changeset for compatible API support * chore: cleanup * chore: improve changeset * fix: package-lock.json * fix: package-lock.json --------- Co-authored-by: He-Xun <1226807142@qq.com> * Rename Roo Code "Boomerang" role to "Orchestrator" (#831) * feat: Enhanced project initialization with Git worktree detection (#743) * Fix Cursor deeplink installation with copy-paste instructions (#723) * detect git worktree * add changeset * add aliases and git flags * add changeset * rename and update test * add store tasks in git functionality * update changeset * fix newline * remove unused import * update command wording * update command option text * fix: update task by id (#834) * store tasks in git by default (#835) * Call rules interactive setup during init (#833) * chore: rc version bump * feat: Claude Code slash commands for Task Master (#774) * Fix Cursor deeplink installation with copy-paste instructions (#723) * fix: expand-task (#755) * docs: Update o3 model price (#751) * docs: Auto-update and format models.md * docs: Auto-update and format models.md * feat: Add Claude Code task master commands Adds Task Master slash commands for Claude Code under /project:tm/ namespace --------- Co-authored-by: Joe Danziger <joe@ticc.net> Co-authored-by: Ralph Khreish <35776126+Crunchyman-ralph@users.noreply.github.com> Co-authored-by: Volodymyr Zahorniak <7808206+zahorniak@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: neno-is-ooo <204701868+neno-is-ooo@users.noreply.github.com> * feat: make more compatible with "o" family models (#839) * docs: Auto-update and format models.md * docs: Add comprehensive Azure OpenAI configuration documentation (#837) * docs: Add comprehensive Azure OpenAI configuration documentation - Add detailed Azure OpenAI configuration section with prerequisites, authentication, and setup options - Include both global and per-model baseURL configuration examples - Add comprehensive troubleshooting guide for common Azure OpenAI issues - Update environment variables section with Azure OpenAI examples - Add Azure OpenAI models to all model tables (Main, Research, Fallback) - Include prominent Azure configuration example in main documentation - Fix azureBaseURL format to use correct Azure OpenAI endpoint structure Addresses common Azure OpenAI setup challenges and provides clear guidance for new users. * refactor: Move Azure models from docs/models.md to scripts/modules/supported-models.json - Remove Azure model entries from documentation tables - Add Azure provider section to supported-models.json with gpt-4o, gpt-4o-mini, and gpt-4-1 - Maintain consistency with existing model configuration structure * docs: Auto-update and format models.md * Version Packages * chore: format fix --------- Co-authored-by: Riccardo (Ricky) Esclapon <32306488+ries9112@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Joe Danziger <joe@ticc.net> Co-authored-by: Eyal Toledano <eyal@microangel.so> Co-authored-by: Yuval <yuvalbl@users.noreply.github.com> Co-authored-by: Marijn van der Werf <marijn.vanderwerf@gmail.com> Co-authored-by: Eyal Toledano <eutait@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Nathan Marley <nathan@glowberrylabs.com> Co-authored-by: Ray Krueger <raykrueger@gmail.com> Co-authored-by: Parththipan Thaniperumkarunai <parththipan.thaniperumkarunai@milkmonkey.de> Co-authored-by: Parthy <52548018+mm-parthy@users.noreply.github.com> Co-authored-by: ejones40 <ethan.jones@fortyau.com> Co-authored-by: Ben Vargas <ben@vargas.com> Co-authored-by: V4G4X <34249137+V4G4X@users.noreply.github.com> Co-authored-by: He-Xun <1226807142@qq.com> Co-authored-by: neno <github@meaning.systems> Co-authored-by: Volodymyr Zahorniak <7808206+zahorniak@users.noreply.github.com> Co-authored-by: neno-is-ooo <204701868+neno-is-ooo@users.noreply.github.com> Co-authored-by: Jitesh Thakur <56656484+Jitha-afk@users.noreply.github.com>
107 KiB
task-master-ai
0.18.0-rc.0
Minor Changes
-
#830
e9d1bc2Thanks @Crunchyman-ralph! - Can now configure baseURL of provider with<PROVIDER>_BASE_URL- For example:
OPENAI_BASE_URL
- For example:
-
#460
a09a2d0Thanks @joedanz! - Added comprehensive rule profile management:New Profile Support: Added comprehensive IDE profile support with eight specialized profiles: Claude Code, Cline, Codex, Cursor, Roo, Trae, VS Code, and Windsurf. Each profile is optimized for its respective IDE with appropriate mappings and configuration. Initialization: You can now specify which rule profiles to include at project initialization using
--rules <profiles>or-r <profiles>(e.g.,task-master init -r cursor,roo). Only the selected profiles and configuration are included. Add/Remove Commands:task-master rules add <profiles>andtask-master rules remove <profiles>let you manage specific rule profiles and MCP config after initialization, supporting multiple profiles at once. Interactive Setup:task-master rules setuplaunches an interactive prompt to select which rule profiles to add to your project. This does not re-initialize your project or affect shell aliases; it only manages rules. Selective Removal: Rules removal intelligently preserves existing non-Task Master rules and files and only removes Task Master-specific rules. Profile directories are only removed when completely empty and all conditions are met (no existing rules, no other files/folders, MCP config completely removed). Safety Features: Confirmation messages clearly explain that only Task Master-specific rules and MCP configurations will be removed, while preserving existing custom rules and other files. Robust Validation: Includes comprehensive checks for array types in MCP config processing and error handling throughout the rules management system.This enables more flexible, rule-specific project setups with intelligent cleanup that preserves user customizations while safely managing Task Master components.
- Resolves #338
-
#804
1b8c320Thanks @ejones40! - Add better support for python projects by addingpyproject.tomlas a projectRoot marker -
#743
a2a3229Thanks @joedanz! - - Git Worktree Detection:- Now properly skips Git initialization when inside existing Git worktree
- Prevents accidental nested repository creation
- Flag System Overhaul:
--git/--no-gitcontrols repository initialization--aliases/--no-aliasesconsistently manages shell alias creation--git-tasks/--no-git-taskscontrols whether task files are stored in Git--dry-runaccurately previews all initialization behaviors
- GitTasks Functionality:
- New
--git-tasksflag includes task files in Git (comments them out in .gitignore) - New
--no-git-tasksflag excludes task files from Git (default behavior) - Supports both CLI and MCP interfaces with proper parameter passing
- New
Implementation Details:
- Added explicit Git worktree detection before initialization
- Refactored flag processing to ensure consistent behavior
- Fixes #734
-
#829
4b0c9d9Thanks @Crunchyman-ralph! - Add Claude Code provider supportIntroduces a new provider that enables using Claude models (Opus and Sonnet) through the Claude Code CLI without requiring an API key.
Key features:
- New claude-code provider with support for opus and sonnet models
- No API key required - uses local Claude Code CLI installation
- Optional dependency - won't affect users who don't need Claude Code
- Lazy loading ensures the provider only loads when requested
- Full integration with existing Task Master commands and workflows
- Comprehensive test coverage for reliability
- New --claude-code flag for the models command
Users can now configure Claude Code models with: task-master models --set-main sonnet --claude-code task-master models --set-research opus --claude-code
The @anthropic-ai/claude-code package is optional and won't be installed unless explicitly needed.
Patch Changes
-
#827
5da5b59Thanks @Crunchyman-ralph! - Fix expand command preserving tagged task structure and preventing data corruption- Enhance E2E tests with comprehensive tag-aware expand testing to verify tag corruption fix
- Add new test section for feature-expand tag creation and testing during expand operations
- Verify tag preservation during expand, force expand, and expand --all operations
- Test that master tag remains intact while feature-expand tag receives subtasks correctly
- Fix file path references to use correct .taskmaster/config.json and .taskmaster/tasks/tasks.json locations
- All tag corruption verification tests pass successfully, confirming the expand command tag corruption bug fix works as expected
-
#833
cf2c066Thanks @joedanz! - Call rules interactive setup during init -
#826
7811227Thanks @Crunchyman-ralph! - Improves Amazon Bedrock support -
#834
6483537Thanks @Crunchyman-ralph! - Fix issues with task creation/update where subtasks are being created like id: <parent_task>. instead if just id: -
#835
727f1ecThanks @joedanz! - Store tasks in Git by default -
#822
1bd6d4fThanks @Crunchyman-ralph! - Improve provider validation system with clean constants structure- Fixed "Invalid provider hint" errors: Resolved validation failures for Azure, Vertex, and Bedrock providers
- Improved search UX: Integrated search for better model discovery with real-time filtering
- Better organization: Moved custom provider options to bottom of model selection with clear section separators
This change ensures all custom providers (Azure, Vertex, Bedrock, OpenRouter, Ollama) work correctly in
task-master models --setup -
#633
3a2325aThanks @nmarley! - Fix weirdtask-master initbug when using in certain environments -
#831
b592dffThanks @joedanz! - Rename Roo Code Boomerang role to Orchestrator -
#830
e9d1bc2Thanks @Crunchyman-ralph! - Improve mcp keys check in cursor
0.17.1
Patch Changes
- #789
8cde6c2Thanks @Crunchyman-ralph! - Fix contextGatherer bug when adding a taskCannot read properties of undefined (reading 'forEach')
0.17.0
Minor Changes
-
#779
c0b3f43Thanks @eyaltoledano! - Add comprehensive AI-powered research command with intelligent context gathering and interactive follow-ups.The new
researchcommand provides AI-powered research capabilities that automatically gather relevant project context to answer your questions. The command intelligently selects context from multiple sources and supports interactive follow-up questions in CLI mode.Key Features:
- Intelligent Task Discovery: Automatically finds relevant tasks and subtasks using fuzzy search based on your query keywords, supplementing any explicitly provided task IDs
- Multi-Source Context: Gathers context from tasks, files, project structure, and custom text to provide comprehensive answers
- Interactive Follow-ups: CLI users can ask follow-up questions that build on the conversation history while allowing fresh context discovery for each question
- Flexible Detail Levels: Choose from low (concise), medium (balanced), or high (comprehensive) response detail levels
- Token Transparency: Displays detailed token breakdown showing context size, sources, and estimated costs
- Enhanced Display: Syntax-highlighted code blocks and structured output with clear visual separation
Usage Examples:
# Basic research with auto-discovered context task-master research "How should I implement user authentication?" # Research with specific task context task-master research "What's the best approach for this?" --id=15,23.2 # Research with file context and project tree task-master research "How does the current auth system work?" --files=src/auth.js,config/auth.json --tree # Research with custom context and low detail task-master research "Quick implementation steps?" --context="Using JWT tokens" --detail=lowContext Sources:
- Tasks: Automatically discovers relevant tasks/subtasks via fuzzy search, plus any explicitly specified via
--id - Files: Include specific files via
--filesfor code-aware responses - Project Tree: Add
--treeto include project structure overview - Custom Context: Provide additional context via
--contextfor domain-specific information
Interactive Features (CLI only):
- Follow-up questions that maintain conversation history
- Fresh fuzzy search for each follow-up to discover newly relevant tasks
- Cumulative context building across the conversation
- Clean visual separation between exchanges
- Save to Tasks: Save entire research conversations (including follow-ups) directly to task or subtask details with timestamps
- Clean Menu Interface: Streamlined inquirer-based menu for follow-up actions without redundant UI elements
Save Functionality:
The research command now supports saving complete conversation threads to tasks or subtasks:
- Save research results and follow-up conversations to any task (e.g., "15") or subtask (e.g., "15.2")
- Automatic timestamping and formatting of conversation history
- Validation of task/subtask existence before saving
- Appends to existing task details without overwriting content
- Supports both CLI interactive mode and MCP programmatic access via
--save-toflag
Enhanced CLI Options:
# Auto-save research results to a task task-master research "Implementation approach?" --save-to=15 # Combine auto-save with context gathering task-master research "How to optimize this?" --id=23 --save-to=23.1MCP Integration:
saveToparameter for automatic saving to specified task/subtask ID- Structured response format with telemetry data
- Silent operation mode for programmatic usage
- Full feature parity with CLI except interactive follow-ups
The research command integrates with the existing AI service layer and supports all configured AI providers. Both CLI and MCP interfaces provide comprehensive research capabilities with intelligent context gathering and flexible output options.
-
#779
c0b3f43Thanks @eyaltoledano! - Enhance update-task with --append flag for timestamped task updatesAdds the
--appendflag toupdate-taskcommand, enabling it to behave likeupdate-subtaskwith timestamped information appending. This provides more flexible task updating options:CLI Enhancement:
task-master update-task --id=5 --prompt="New info"- Full task update (existing behavior)task-master update-task --id=5 --append --prompt="Progress update"- Append timestamped info to task details
Full MCP Integration:
- MCP tool
update_tasknow supportsappendparameter - Seamless integration with Cursor and other MCP clients
- Consistent behavior between CLI and MCP interfaces
Instead of requiring separate subtask creation for progress tracking, you can now append timestamped information directly to parent tasks while preserving the option for comprehensive task updates.
-
#779
c0b3f43Thanks @eyaltoledano! - Add --tag flag support to core commands for multi-context task management. Commands like parse-prd, analyze-complexity, and others now support targeting specific task lists, enabling rapid prototyping and parallel development workflows.Key features:
- parse-prd --tag=feature-name: Parse PRDs into separate task contexts on the fly
- analyze-complexity --tag=branch: Generate tag-specific complexity reports
- All task operations can target specific contexts while preserving other lists
- Non-existent tags are created automatically for seamless workflow
-
#779
c0b3f43Thanks @eyaltoledano! - Introduces Tagged Lists: AI Multi-Context Task Management SystemThis major feature release introduces Tagged Lists, a comprehensive system that transforms Taskmaster into a multi-context task management powerhouse. You can now organize tasks into completely isolated contexts, enabling parallel (agentic) development workflows, team collaboration, and project experimentation without conflicts.
🏷️ Tagged Task Lists Architecture:
The new tagged system fundamentally improves how tasks are organized:
- Legacy Format:
{ "tasks": [...] } - New Tagged Format:
{ "master": { "tasks": [...], "metadata": {...} }, "feature-xyz": { "tasks": [...], "metadata": {...} } } - Automatic Migration: Existing projects will seamlessly migrate to tagged format with zero user intervention
- State Management: New
.taskmaster/state.jsontracks current tag, last switched time, migration status and more. - Configuration Integration: Enhanced
.taskmaster/config.jsonwith tag-specific settings and defaults.
By default, your existing task list will be migrated to the
mastertag.🚀 Complete Tag Management Suite:
Core Tag Commands:
task-master tags [--show-metadata]- List all tags with task counts, completion stats, and metadatatask-master add-tag <name> [options]- Create new tag contexts with optional task copyingtask-master delete-tag <name> [--yes]- Delete tags (and attached tasks) with double confirmation protectiontask-master use-tag <name>- Switch contexts and immediately see next available tasktask-master rename-tag <old> <new>- Rename tags with automatic current tag reference updatestask-master copy-tag <source> <target> [options]- Duplicate tag contexts for experimentation
🤖 Full MCP Integration for Tag Management:
Task Master's multi-context capabilities are now fully exposed through the MCP server, enabling powerful agentic workflows:
list_tags: List all available tag contexts.add_tag: Programmatically create new tags.delete_tag: Remove tag contexts.use_tag: Switch the agent's active task context.rename_tag: Rename existing tags.copy_tag: Duplicate entire task contexts for experimentation.
Tag Creation Options:
--copy-from-current- Copy tasks from currently active tag--copy-from=<tag>- Copy tasks from specific tag--from-branch- Creates a new tag using the active git branch name (foradd-tagonly)--description="<text>"- Add custom tag descriptions- Empty tag creation for fresh contexts
🎯 Universal --tag Flag Support:
Every task operation now supports tag-specific execution:
task-master list --tag=feature-branch- View tasks in specific contexttask-master add-task --tag=experiment --prompt="..."- Create tasks in specific tagtask-master parse-prd document.txt --tag=v2-redesign- Parse PRDs into dedicated contextstask-master analyze-complexity --tag=performance-work- Generate tag-specific reportstask-master set-status --tag=hotfix --id=5 --status=done- Update tasks in specific contextstask-master expand --tag=research --id=3- Break down tasks within tag contexts
This way you or your agent can store out of context tasks into the appropriate tags for later, allowing you to maintain a groomed and scoped master list. Focus on value, not chores.
📊 Enhanced Workflow Features:
Smart Context Switching:
use-tagcommand shows immediate next task after switching- Automatic tag creation when targeting non-existent tags
- Current tag persistence across terminal sessions
- Branch-tag mapping for future Git integration
Intelligent File Management:
- Tag-specific complexity reports:
task-complexity-report_tagname.json - Master tag uses default filenames:
task-complexity-report.json - Automatic file isolation prevents cross-tag contamination
Advanced Confirmation Logic:
- Commands only prompt when target tag has existing tasks
- Empty tags allow immediate operations without confirmation
- Smart append vs overwrite detection
🔄 Seamless Migration & Compatibility:
Zero-Disruption Migration:
- Existing
tasks.jsonfiles automatically migrate on first command - Master tag receives proper metadata (creation date, description)
- Migration notice shown once with helpful explanation
- All existing commands work identically to before
State Management:
.taskmaster/state.jsontracks current tag and migration status- Automatic state creation and maintenance
- Branch-tag mapping foundation for Git integration
- Migration notice tracking to avoid repeated notifications
- Grounds for future context additions
Backward Compatibility:
- All existing workflows continue unchanged
- Legacy commands work exactly as before
- Gradual adoption - users can ignore tags entirely if desired
- No breaking changes to existing tasks or file formats
💡 Real-World Use Cases:
Team Collaboration:
task-master add-tag alice --copy-from-current- Create teammate-specific contextstask-master add-tag bob --copy-from=master- Onboard new team memberstask-master use-tag alice- Switch to teammate's work context
Feature Development:
task-master parse-prd feature-spec.txt --tag=user-auth- Dedicated feature planningtask-master add-tag experiment --copy-from=user-auth- Safe experimentationtask-master analyze-complexity --tag=user-auth- Feature-specific analysis
Release Management:
task-master add-tag v2.0 --description="Next major release"- Version-specific planningtask-master copy-tag master v2.1- Release branch preparationtask-master use-tag hotfix- Emergency fix context
Project Phases:
task-master add-tag research --description="Discovery phase"- Research taskstask-master add-tag implementation --copy-from=research- Development phasetask-master add-tag testing --copy-from=implementation- QA phase
🛠️ Technical Implementation:
Data Structure:
- Tagged format with complete isolation between contexts
- Rich metadata per tag (creation date, description, update tracking)
- Automatic metadata enhancement for existing tags
- Clean separation of tag data and internal state
Performance Optimizations:
- Dynamic task counting without stored counters
- Efficient tag resolution and caching
- Minimal file I/O with smart data loading
- Responsive table layouts adapting to terminal width
Error Handling:
- Comprehensive validation for tag names (alphanumeric, hyphens, underscores)
- Reserved name protection (master, main, default)
- Graceful handling of missing tags and corrupted data
- Detailed error messages with suggested corrections
This release establishes the foundation for advanced multi-context workflows while maintaining the simplicity and power that makes Task Master effective for individual developers.
- Legacy Format:
-
#779
c0b3f43Thanks @eyaltoledano! - Research Save-to-File Feature & Critical MCP Tag Corruption Fix🔬 New Research Save-to-File Functionality:
Added comprehensive save-to-file capability to the research command, enabling users to preserve research sessions for future reference and documentation.
CLI Integration:
- New
--save-fileflag fortask-master researchcommand - Consistent with existing
--saveand--save-toflags for intuitive usage - Interactive "Save to file" option in follow-up questions menu
MCP Integration:
- New
saveToFileboolean parameter for theresearchMCP tool - Enables programmatic research saving for AI agents and integrated tools
File Management:
- Automatically creates
.taskmaster/docs/research/directory structure - Generates timestamped, slugified filenames (e.g.,
2025-01-13_what-is-typescript.md) - Comprehensive Markdown format with metadata headers including query, timestamp, and context sources
- Clean conversation history formatting without duplicate information
- New
-
#779
c0b3f43Thanks @eyaltoledano! - No longer automatically creates individual task files as they are not used by the applicatoin. You can still generate them anytime using thegeneratecommand. -
#779
c0b3f43Thanks @eyaltoledano! - Enhanced get-task/show command to support comma-separated task IDs for efficient batch operationsNew Features:
- Multiple Task Retrieval: Pass comma-separated IDs to get/show multiple tasks at once (e.g.,
task-master show 1,3,5or MCPget_taskwithid: "1,3,5") - Smart Display Logic: Single ID shows detailed view, multiple IDs show compact summary table with interactive options
- Batch Action Menu: Interactive menu for multiple tasks with copy-paste ready commands for common operations (mark as done/in-progress, expand all, view dependencies, etc.)
- MCP Array Response: MCP tool returns structured array of task objects for efficient AI agent context gathering
Benefits:
- Faster Context Gathering: AI agents can collect multiple tasks/subtasks in one call instead of iterating
- Improved Workflow: Interactive batch operations reduce repetitive command execution
- Better UX: Responsive layout adapts to terminal width, maintains consistency with existing UI patterns
- API Efficiency: RESTful array responses in MCP format enable more sophisticated integrations
This enhancement maintains full backward compatibility while significantly improving efficiency for both human users and AI agents working with multiple tasks.
- Multiple Task Retrieval: Pass comma-separated IDs to get/show multiple tasks at once (e.g.,
-
#779
c0b3f43Thanks @eyaltoledano! - Adds support for filtering tasks by multiple statuses at once using comma-separated statuses.Example:
cancelled,deferred -
#779
c0b3f43Thanks @eyaltoledano! - Adds tag to CLI and MCP outputs/responses so you know which tag you are performing operations on.
Patch Changes
-
#779
5ec1f61Thanks @eyaltoledano! - Fix Cursor deeplink installation by providing copy-paste instructions for GitHub compatibility -
#779
c0b3f43Thanks @eyaltoledano! - Fix critical bugs in task move functionality:- Fixed moving tasks to become subtasks of empty parents: When moving a task to become a subtask of a parent that had no existing subtasks (e.g., task 89 → task 98.1), the operation would fail with validation errors.
- Fixed moving subtasks between parents: Subtasks can now be properly moved between different parent tasks, including to parents that previously had no subtasks.
- Improved comma-separated batch moves: Multiple tasks can now be moved simultaneously using comma-separated IDs (e.g., "88,90" → "92,93") with proper error handling and atomic operations.
These fixes enables proper task hierarchy reorganization for corner cases that were previously broken.
-
#779
d76bea4Thanks @eyaltoledano! - Update o3 model price -
#779
0849c0cThanks @eyaltoledano! - Fixes issue with expand CLI command "Complexity report not found"- Closes #735
- Closes #728
-
#779
c0b3f43Thanks @eyaltoledano! - Fix issue with generate command which was creating tasks in the legacy tasks location.- No longer creates individual task files automatically. You can still use `generate` if you need to create our update your task files. -
#779
c0b3f43Thanks @eyaltoledano! - Improves dependency management when moving tasks by updating subtask dependencies that reference sibling subtasks by their old parent-based ID -
Updated dependencies [
c0b3f43,5ec1f61,c0b3f43,c0b3f43,d76bea4,c0b3f43,0849c0c,c0b3f43,c0b3f43,c0b3f43,c0b3f43,c0b3f43,c0b3f43,c0b3f43,c0b3f43]:
0.16.2
Patch Changes
-
#695
1ece6f1Thanks @Crunchyman-ralph! - improve findTasks algorithm for resolving tasks path -
#695
ee0be04Thanks @Crunchyman-ralph! - Fix update tool on MCP givingNo valid tasks found -
#699
27edbd8Thanks @eyaltoledano! - Enhanced add-task fuzzy search intelligence and improved user experienceSmarter Task Discovery:
- Remove hardcoded category system that always matched "Task management"
- Eliminate arbitrary limits on fuzzy search results (5→25 high relevance, 3→10 medium relevance, 8→20 detailed tasks)
- Improve semantic weighting in Fuse.js search (details=3, description=2, title=1.5) for better relevance
- Generate context-driven task recommendations based on true semantic similarity
Enhanced Terminal Experience:
- Fix duplicate banner display issue that was "eating" terminal history (closes #553)
- Remove console.clear() and redundant displayBanner() calls from UI functions
- Preserve command history for better development workflow
- Streamline banner display across all commands (list, next, show, set-status, clear-subtasks, dependency commands)
Visual Improvements:
- Replace emoji complexity indicators with clean filled circle characters (●) for professional appearance
- Improve consistency and readability of task complexity display
AI Provider Compatibility:
- Change generateObject mode from 'tool' to 'auto' for better cross-provider compatibility
- Add qwen3-235n-a22b:free model support (closes #687)
- Add smart warnings for free OpenRouter models with limitations (rate limits, restricted context, no tool_use)
Technical Improvements:
- Enhanced context generation in add-task to rely on semantic similarity rather than rigid pattern matching
- Improved dependency analysis and common pattern detection
- Better handling of task relationships and relevance scoring
- More intelligent task suggestion algorithms
The add-task system now provides truly relevant task context based on semantic understanding rather than arbitrary categories and limits, while maintaining a cleaner and more professional terminal experience.
-
#655
edaa5feThanks @Crunchyman-ralph! - Fix double .taskmaster directory paths in file resolution utilities- Closes #636
-
#671
86ea6d1Thanks @joedanz! - Add one-click MCP server installation for Cursor -
#699
2e55757Thanks @eyaltoledano! - Add sync-readme command for a task export to GitHub READMEIntroduces a new
sync-readmecommand that exports your task list to your project's README.md file.Features:
- Flexible filtering: Supports
--statusfiltering (e.g., pending, done) and--with-subtasksflag - Smart content management: Automatically replaces existing exports or appends to new READMEs
- Metadata display: Shows export timestamp, subtask inclusion status, and filter settings
Usage:
task-master sync-readme- Export tasks without subtaskstask-master sync-readme --with-subtasks- Include subtasks in exporttask-master sync-readme --status=pending- Only export pending taskstask-master sync-readme --status=done --with-subtasks- Export completed tasks with subtasks
Perfect for showcasing project progress on GitHub. Experimental. Open to feedback.
- Flexible filtering: Supports
0.16.2
Patch Changes
-
#695
1ece6f1Thanks @Crunchyman-ralph! - improve findTasks algorithm for resolving tasks path -
#695
ee0be04Thanks @Crunchyman-ralph! - Fix update tool on MCP givingNo valid tasks found -
#699
27edbd8Thanks @eyaltoledano! - Enhanced add-task fuzzy search intelligence and improved user experienceSmarter Task Discovery:
- Remove hardcoded category system that always matched "Task management"
- Eliminate arbitrary limits on fuzzy search results (5→25 high relevance, 3→10 medium relevance, 8→20 detailed tasks)
- Improve semantic weighting in Fuse.js search (details=3, description=2, title=1.5) for better relevance
- Generate context-driven task recommendations based on true semantic similarity
Enhanced Terminal Experience:
- Fix duplicate banner display issue that was "eating" terminal history (closes #553)
- Remove console.clear() and redundant displayBanner() calls from UI functions
- Preserve command history for better development workflow
- Streamline banner display across all commands (list, next, show, set-status, clear-subtasks, dependency commands)
Visual Improvements:
- Replace emoji complexity indicators with clean filled circle characters (●) for professional appearance
- Improve consistency and readability of task complexity display
AI Provider Compatibility:
- Change generateObject mode from 'tool' to 'auto' for better cross-provider compatibility
- Add qwen3-235n-a22b:free model support (closes #687)
- Add smart warnings for free OpenRouter models with limitations (rate limits, restricted context, no tool_use)
Technical Improvements:
- Enhanced context generation in add-task to rely on semantic similarity rather than rigid pattern matching
- Improved dependency analysis and common pattern detection
- Better handling of task relationships and relevance scoring
- More intelligent task suggestion algorithms
The add-task system now provides truly relevant task context based on semantic understanding rather than arbitrary categories and limits, while maintaining a cleaner and more professional terminal experience.
-
#655
edaa5feThanks @Crunchyman-ralph! - Fix double .taskmaster directory paths in file resolution utilities- Closes #636
-
#671
86ea6d1Thanks @joedanz! - Add one-click MCP server installation for Cursor -
#699
2e55757Thanks @eyaltoledano! - Add sync-readme command for a task export to GitHub READMEIntroduces a new
sync-readmecommand that exports your task list to your project's README.md file.Features:
- Flexible filtering: Supports
--statusfiltering (e.g., pending, done) and--with-subtasksflag - Smart content management: Automatically replaces existing exports or appends to new READMEs
- Metadata display: Shows export timestamp, subtask inclusion status, and filter settings
Usage:
task-master sync-readme- Export tasks without subtaskstask-master sync-readme --with-subtasks- Include subtasks in exporttask-master sync-readme --status=pending- Only export pending taskstask-master sync-readme --status=done --with-subtasks- Export completed tasks with subtasks
Perfect for showcasing project progress on GitHub. Experimental. Open to feedback.
- Flexible filtering: Supports
0.16.2-rc.0
Patch Changes
-
#655
edaa5feThanks @Crunchyman-ralph! - Fix double .taskmaster directory paths in file resolution utilities- Closes #636
-
#671
86ea6d1Thanks @joedanz! - Add one-click MCP server installation for Cursor
0.16.1
Patch Changes
-
#641
ad61276Thanks @Crunchyman-ralph! - Fix bedrock issues -
#648
9b4168bThanks @Crunchyman-ralph! - Fix MCP tool calls logging errors -
#641
ad61276Thanks @Crunchyman-ralph! - Update rules for new directory structure -
#648
9b4168bThanks @Crunchyman-ralph! - Fix bug in expand_all mcp tool -
#641
ad61276Thanks @Crunchyman-ralph! - Fix MCP crashing after certain commands due to console logs
0.16.0
Minor Changes
-
#607
6a8a68eThanks @Crunchyman-ralph! - Add AWS bedrock support -
#607
6a8a68eThanks @Crunchyman-ralph! - # Add Google Vertex AI Provider Integration- Implemented
VertexAIProviderclass extending BaseAIProvider - Added authentication and configuration handling for Vertex AI
- Updated configuration manager with Vertex-specific getters
- Modified AI services unified system to integrate the provider
- Added documentation for Vertex AI setup and configuration
- Updated environment variable examples for Vertex AI support
- Implemented specialized error handling for Vertex-specific issues
- Implemented
-
#607
6a8a68eThanks @Crunchyman-ralph! - Add support for Azure -
#612
669b744Thanks @Crunchyman-ralph! - Increased minimum required node version to > 18 (was > 14) -
#607
6a8a68eThanks @Crunchyman-ralph! - Renamed baseUrl to baseURL -
#604
80735f9Thanks @Crunchyman-ralph! - Add TASK_MASTER_PROJECT_ROOT env variable supported in mcp.json and .env for project root resolution- Some users were having issues where the MCP wasn't able to detect the location of their project root, you can now set the
TASK_MASTER_PROJECT_ROOTenvironment variable to the root of your project.
- Some users were having issues where the MCP wasn't able to detect the location of their project root, you can now set the
-
#619
3f64202Thanks @Crunchyman-ralph! - Consolidate Task Master files into unified .taskmaster directory structureThis release introduces a new consolidated directory structure that organizes all Task Master files under a single
.taskmaster/directory for better project organization and cleaner workspace management.New Directory Structure:
.taskmaster/tasks/- Task files (previouslytasks/).taskmaster/docs/- Documentation including PRD files (previouslyscripts/).taskmaster/reports/- Complexity analysis reports (previouslyscripts/).taskmaster/templates/- Template files like example PRD.taskmaster/config.json- Configuration (previously.taskmasterconfig)
Migration & Backward Compatibility:
- Existing projects continue to work with legacy file locations
- New projects use the consolidated structure automatically
- Run
task-master migrateto move existing projects to the new structure - All CLI commands and MCP tools automatically detect and use appropriate file locations
Benefits:
- Cleaner project root with Task Master files organized in one location
- Reduced file scatter across multiple directories
- Improved project navigation and maintenance
- Consistent file organization across all Task Master projects
This change maintains full backward compatibility while providing a migration path to the improved structure.
Patch Changes
-
#607
6a8a68eThanks @Crunchyman-ralph! - Fix max_tokens error when trying to use claude-sonnet-4 and claude-opus-4 -
#625
2d520deThanks @Crunchyman-ralph! - Fix add-task MCP command causing an error
0.16.0-rc.0
Minor Changes
-
#607
6a8a68eThanks @Crunchyman-ralph! - Add AWS bedrock support -
#607
6a8a68eThanks @Crunchyman-ralph! - # Add Google Vertex AI Provider Integration- Implemented
VertexAIProviderclass extending BaseAIProvider - Added authentication and configuration handling for Vertex AI
- Updated configuration manager with Vertex-specific getters
- Modified AI services unified system to integrate the provider
- Added documentation for Vertex AI setup and configuration
- Updated environment variable examples for Vertex AI support
- Implemented specialized error handling for Vertex-specific issues
- Implemented
-
#607
6a8a68eThanks @Crunchyman-ralph! - Add support for Azure -
#612
669b744Thanks @Crunchyman-ralph! - Increased minimum required node version to > 18 (was > 14) -
#607
6a8a68eThanks @Crunchyman-ralph! - Renamed baseUrl to baseURL -
#604
80735f9Thanks @Crunchyman-ralph! - Add TASK_MASTER_PROJECT_ROOT env variable supported in mcp.json and .env for project root resolution- Some users were having issues where the MCP wasn't able to detect the location of their project root, you can now set the
TASK_MASTER_PROJECT_ROOTenvironment variable to the root of your project.
- Some users were having issues where the MCP wasn't able to detect the location of their project root, you can now set the
-
#619
3f64202Thanks @Crunchyman-ralph! - Consolidate Task Master files into unified .taskmaster directory structureThis release introduces a new consolidated directory structure that organizes all Task Master files under a single
.taskmaster/directory for better project organization and cleaner workspace management.New Directory Structure:
.taskmaster/tasks/- Task files (previouslytasks/).taskmaster/docs/- Documentation including PRD files (previouslyscripts/).taskmaster/reports/- Complexity analysis reports (previouslyscripts/).taskmaster/templates/- Template files like example PRD.taskmaster/config.json- Configuration (previously.taskmasterconfig)
Migration & Backward Compatibility:
- Existing projects continue to work with legacy file locations
- New projects use the consolidated structure automatically
- Run
task-master migrateto move existing projects to the new structure - All CLI commands and MCP tools automatically detect and use appropriate file locations
Benefits:
- Cleaner project root with Task Master files organized in one location
- Reduced file scatter across multiple directories
- Improved project navigation and maintenance
- Consistent file organization across all Task Master projects
This change maintains full backward compatibility while providing a migration path to the improved structure.
Patch Changes
-
#607
6a8a68eThanks @Crunchyman-ralph! - Fix max_tokens error when trying to use claude-sonnet-4 and claude-opus-4 -
#597
2d520deThanks @eyaltoledano! - Fix add-task MCP command causing an error
0.15.0
Minor Changes
-
#567
09add37Thanks @eyaltoledano! - Added comprehensive Ollama model validation and interactive setup support- Interactive Setup Enhancement: Added "Custom Ollama model" option to
task-master models --setup, matching the existing OpenRouter functionality - Live Model Validation: When setting Ollama models, Taskmaster now validates against the local Ollama instance by querying
/api/tagsendpoint - Configurable Endpoints: Uses the
ollamaBaseUrlfrom.taskmasterconfig(with role-specificbaseUrloverrides supported) - Robust Error Handling:
- Detects when Ollama server is not running and provides clear error messages
- Validates model existence and lists available alternatives when model not found
- Graceful fallback behavior for connection issues
- Full Platform Support: Both MCP server tools and CLI commands support the new validation
- Improved User Experience: Clear feedback during model validation with informative success/error messages
- Interactive Setup Enhancement: Added "Custom Ollama model" option to
-
#567
4c83526Thanks @eyaltoledano! - Adds and updates supported AI models with costs:- Added new OpenRouter models: GPT-4.1 series, O3, Codex Mini, Llama 4 Maverick, Llama 4 Scout, Qwen3-235b
- Added Mistral models: Devstral Small, Mistral Nemo
- Updated Ollama models with latest variants: Devstral, Qwen3, Mistral-small3.1, Llama3.3
- Updated Gemini model to latest 2.5 Flash preview version
-
#567
70f4054Thanks @eyaltoledano! - Add--researchflag to parse-prd command, enabling enhanced task generation from PRD files. When used, Taskmaster leverages the research model to:- Research current technologies and best practices relevant to the project
- Identify technical challenges and security concerns not explicitly mentioned in the PRD
- Include specific library recommendations with version numbers
- Provide more detailed implementation guidance based on industry standards
- Create more accurate dependency relationships between tasks
This results in higher quality, more actionable tasks with minimal additional effort.
NOTE That this is an experimental feature. Research models don't typically do great at structured output. You may find some failures when using research mode, so please share your feedback so we can improve this.
-
#567
5e9bc28Thanks @eyaltoledano! - This change significantly enhances theadd-taskcommand's intelligence. When you add a new task, Taskmaster now automatically: - Analyzes your existing tasks to find those most relevant to your new task's description. - Provides the AI with detailed context from these relevant tasks.This results in newly created tasks being more accurately placed within your project's dependency structure, saving you time and any need to update tasks just for dependencies, all without significantly increasing AI costs. You'll get smarter, more connected tasks right from the start.
-
#567
34c769bThanks @eyaltoledano! - Enhance analyze-complexity to support analyzing specific task IDs. - You can now analyze individual tasks or selected task groups by using the new--idoption with comma-separated IDs, or--fromand--tooptions to specify a range of tasks. - The feature intelligently merges analysis results with existing reports, allowing incremental analysis while preserving previous results. -
#558
86d8f00Thanks @ShreyPaharia! - Add next task to set task status response Status: DONE -
#567
04af16dThanks @eyaltoledano! - Add move command to enable moving tasks and subtasks within the task hierarchy. This new command supports moving standalone tasks to become subtasks, subtasks to become standalone tasks, and moving subtasks between different parents. The implementation handles circular dependencies, validation, and proper updating of parent-child relationships.Usage:
- CLI command:
task-master move --from=<id> --to=<id> - MCP tool:
move_taskwith parameters:from: ID of task/subtask to move (e.g., "5" or "5.2")to: ID of destination (e.g., "7" or "7.3")file(optional): Custom path to tasks.json
Example scenarios:
- Move task to become subtask:
--from="5" --to="7" - Move subtask to standalone task:
--from="5.2" --to="7" - Move subtask to different parent:
--from="5.2" --to="7.3" - Reorder subtask within same parent:
--from="5.2" --to="5.4" - Move multiple tasks at once:
--from="10,11,12" --to="16,17,18" - Move task to new ID:
--from="5" --to="25"(creates a new task with ID 25)
Multiple Task Support: The command supports moving multiple tasks simultaneously by providing comma-separated lists for both
--fromand--toparameters. The number of source and destination IDs must match. This is particularly useful for resolving merge conflicts in task files when multiple team members have created tasks on different branches.Validation Features:
- Allows moving tasks to new, non-existent IDs (automatically creates placeholders)
- Prevents moving to existing task IDs that already contain content (to avoid overwriting)
- Validates source tasks exist before attempting to move them
- Ensures proper parent-child relationships are maintained
- CLI command:
Patch Changes
-
#567
231e569Thanks @eyaltoledano! - Adjusts default main model model to Claude Sonnet 4. Adjusts default fallback to Claude Sonney 3.7" -
#567
b371808Thanks @eyaltoledano! - Adds llms-install.md to the root to enable AI agents to programmatically install the Taskmaster MCP server. This is specifically being introduced for the Cline MCP marketplace and will be adjusted over time for other MCP clients as needed. -
#567
a59dd03Thanks @eyaltoledano! - Adds AGENTS.md to power Claude Code integration more natively based on Anthropic's best practice and Claude-specific MCP client behaviours. Also adds in advanced workflows that tie Taskmaster commands together into one Claude workflow." -
#567
e0e1155Thanks @eyaltoledano! - Fixes issue with force/append flag combinations for parse-prd. -
#567
34df2c8Thanks @eyaltoledano! - You can now add tasks to a newly initialized project without having to parse a prd. This will automatically create the missing tasks.json file and create the first task. Lets you vibe if you want to vibe." -
#567
d2e6431Thanks @eyaltoledano! - Fixes an issue where the research fallback would attempt to make API calls without checking for a valid API key first. This ensures proper error handling when the main task generation and first fallback both fail. Closes #421 #519.
0.15.0-rc.0
Minor Changes
-
#567
09add37Thanks @eyaltoledano! - Added comprehensive Ollama model validation and interactive setup support- Interactive Setup Enhancement: Added "Custom Ollama model" option to
task-master models --setup, matching the existing OpenRouter functionality - Live Model Validation: When setting Ollama models, Taskmaster now validates against the local Ollama instance by querying
/api/tagsendpoint - Configurable Endpoints: Uses the
ollamaBaseUrlfrom.taskmasterconfig(with role-specificbaseUrloverrides supported) - Robust Error Handling:
- Detects when Ollama server is not running and provides clear error messages
- Validates model existence and lists available alternatives when model not found
- Graceful fallback behavior for connection issues
- Full Platform Support: Both MCP server tools and CLI commands support the new validation
- Improved User Experience: Clear feedback during model validation with informative success/error messages
- Interactive Setup Enhancement: Added "Custom Ollama model" option to
-
#567
4c83526Thanks @eyaltoledano! - Adds and updates supported AI models with costs:- Added new OpenRouter models: GPT-4.1 series, O3, Codex Mini, Llama 4 Maverick, Llama 4 Scout, Qwen3-235b
- Added Mistral models: Devstral Small, Mistral Nemo
- Updated Ollama models with latest variants: Devstral, Qwen3, Mistral-small3.1, Llama3.3
- Updated Gemini model to latest 2.5 Flash preview version
-
#567
70f4054Thanks @eyaltoledano! - Add--researchflag to parse-prd command, enabling enhanced task generation from PRD files. When used, Taskmaster leverages the research model to:- Research current technologies and best practices relevant to the project
- Identify technical challenges and security concerns not explicitly mentioned in the PRD
- Include specific library recommendations with version numbers
- Provide more detailed implementation guidance based on industry standards
- Create more accurate dependency relationships between tasks
This results in higher quality, more actionable tasks with minimal additional effort.
NOTE That this is an experimental feature. Research models don't typically do great at structured output. You may find some failures when using research mode, so please share your feedback so we can improve this.
-
#567
5e9bc28Thanks @eyaltoledano! - This change significantly enhances theadd-taskcommand's intelligence. When you add a new task, Taskmaster now automatically: - Analyzes your existing tasks to find those most relevant to your new task's description. - Provides the AI with detailed context from these relevant tasks.This results in newly created tasks being more accurately placed within your project's dependency structure, saving you time and any need to update tasks just for dependencies, all without significantly increasing AI costs. You'll get smarter, more connected tasks right from the start.
-
#567
34c769bThanks @eyaltoledano! - Enhance analyze-complexity to support analyzing specific task IDs. - You can now analyze individual tasks or selected task groups by using the new--idoption with comma-separated IDs, or--fromand--tooptions to specify a range of tasks. - The feature intelligently merges analysis results with existing reports, allowing incremental analysis while preserving previous results. -
#558
86d8f00Thanks @ShreyPaharia! - Add next task to set task status response Status: DONE -
#567
04af16dThanks @eyaltoledano! - Add move command to enable moving tasks and subtasks within the task hierarchy. This new command supports moving standalone tasks to become subtasks, subtasks to become standalone tasks, and moving subtasks between different parents. The implementation handles circular dependencies, validation, and proper updating of parent-child relationships.Usage:
- CLI command:
task-master move --from=<id> --to=<id> - MCP tool:
move_taskwith parameters:from: ID of task/subtask to move (e.g., "5" or "5.2")to: ID of destination (e.g., "7" or "7.3")file(optional): Custom path to tasks.json
Example scenarios:
- Move task to become subtask:
--from="5" --to="7" - Move subtask to standalone task:
--from="5.2" --to="7" - Move subtask to different parent:
--from="5.2" --to="7.3" - Reorder subtask within same parent:
--from="5.2" --to="5.4" - Move multiple tasks at once:
--from="10,11,12" --to="16,17,18" - Move task to new ID:
--from="5" --to="25"(creates a new task with ID 25)
Multiple Task Support: The command supports moving multiple tasks simultaneously by providing comma-separated lists for both
--fromand--toparameters. The number of source and destination IDs must match. This is particularly useful for resolving merge conflicts in task files when multiple team members have created tasks on different branches.Validation Features:
- Allows moving tasks to new, non-existent IDs (automatically creates placeholders)
- Prevents moving to existing task IDs that already contain content (to avoid overwriting)
- Validates source tasks exist before attempting to move them
- Ensures proper parent-child relationships are maintained
- CLI command:
Patch Changes
-
#567
231e569Thanks @eyaltoledano! - Adjusts default main model model to Claude Sonnet 4. Adjusts default fallback to Claude Sonney 3.7" -
#567
b371808Thanks @eyaltoledano! - Adds llms-install.md to the root to enable AI agents to programmatically install the Taskmaster MCP server. This is specifically being introduced for the Cline MCP marketplace and will be adjusted over time for other MCP clients as needed. -
#567
a59dd03Thanks @eyaltoledano! - Adds AGENTS.md to power Claude Code integration more natively based on Anthropic's best practice and Claude-specific MCP client behaviours. Also adds in advanced workflows that tie Taskmaster commands together into one Claude workflow." -
#567
e0e1155Thanks @eyaltoledano! - Fixes issue with force/append flag combinations for parse-prd. -
#567
34df2c8Thanks @eyaltoledano! - You can now add tasks to a newly initialized project without having to parse a prd. This will automatically create the missing tasks.json file and create the first task. Lets you vibe if you want to vibe." -
#567
d2e6431Thanks @eyaltoledano! - Fixes an issue where the research fallback would attempt to make API calls without checking for a valid API key first. This ensures proper error handling when the main task generation and first fallback both fail. Closes #421 #519.
0.14.0
Minor Changes
-
#521
ed17cb0Thanks @Crunchyman-ralph! - .taskmasterconfig now supports a baseUrl field per model role (main, research, fallback), allowing endpoint overrides for any provider. -
#536
f4a83ecThanks @Crunchyman-ralph! - Add Ollama as a supported AI provider.- You can now add it by running
task-master models --setupand selecting it. - Ollama is a local model provider, so no API key is required.
- Ollama models are available at
http://localhost:11434/apiby default. - You can change the default URL by setting the
OLLAMA_BASE_URLenvironment variable or by adding abaseUrlproperty to theollamamodel role in.taskmasterconfig.- If you want to use a custom API key, you can set it in the
OLLAMA_API_KEYenvironment variable.
- If you want to use a custom API key, you can set it in the
- You can now add it by running
-
#528
58b417aThanks @Crunchyman-ralph! - Display task complexity scores in task lists, next task, and task details views.
Patch Changes
-
#402
01963afThanks @Crunchyman-ralph! - Resolve all issues related to MCP -
#478
4117f71Thanks @joedanz! - Fix CLI --force flag for parse-prd commandPreviously, the --force flag was not respected when running
parse-prd, causing the command to prompt for confirmation or fail even when --force was provided. This patch ensures that the flag is correctly passed and handled, allowing users to overwrite existing tasks.json files as intended.- Fixes #477
-
#511
17294ffThanks @Crunchyman-ralph! - Task Master no longer tells you to update when you're already up to date -
#442
2b3ae8bThanks @eyaltoledano! - Adds costs information to AI commands using input/output tokens and model costs. -
#402
01963afThanks @Crunchyman-ralph! - Fix ERR_MODULE_NOT_FOUND when trying to run MCP Server -
#402
01963afThanks @Crunchyman-ralph! - Add src directory to exports -
#523
da317f2Thanks @Crunchyman-ralph! - Fix the error handling of task status settings -
#527
a8dabf4Thanks @Crunchyman-ralph! - Remove caching layer from MCP direct functions for task listing, next task, and complexity report- Fixes issues users where having where they were getting stale data
-
#417
a1f8d52Thanks @ksylvan! - Fix for issue #409 LOG_LEVEL Pydantic validation error -
#442
0288311Thanks @eyaltoledano! - Small fixes -nextcommand no longer incorrectly suggests that subtasks be broken down into subtasks in the CLI - fixes theappendflag so it properly works in the CLI -
#501
0a61184Thanks @Crunchyman-ralph! - Fix initial .env.example to work out of the box- Closes #419
-
#435
a96215aThanks @lebsral! - Fix default fallback model and maxTokens in Taskmaster initialization -
#517
e96734aThanks @Crunchyman-ralph! - Fix bug when updating tasks on the MCP server (#412) -
#496
efce374Thanks @joedanz! - Fix duplicate output on CLI help screen- Prevent the Task Master CLI from printing the help screen more than once when using
-hor--help. - Removed redundant manual event handlers and guards for help output; now only the Commander
.helpInformationoverride is used for custom help. - Simplified logic so that help is only shown once for both "no arguments" and help flag flows.
- Ensures a clean, branded help experience with no repeated content.
- Fixes #339
- Prevent the Task Master CLI from printing the help screen more than once when using
0.14.0-rc.1
Minor Changes
-
#536
f4a83ecThanks @Crunchyman-ralph! - Add Ollama as a supported AI provider.- You can now add it by running
task-master models --setupand selecting it. - Ollama is a local model provider, so no API key is required.
- Ollama models are available at
http://localhost:11434/apiby default. - You can change the default URL by setting the
OLLAMA_BASE_URLenvironment variable or by adding abaseUrlproperty to theollamamodel role in.taskmasterconfig.- If you want to use a custom API key, you can set it in the
OLLAMA_API_KEYenvironment variable.
- If you want to use a custom API key, you can set it in the
- You can now add it by running
Patch Changes
-
#442
2b3ae8bThanks @eyaltoledano! - Adds costs information to AI commands using input/output tokens and model costs. -
#442
0288311Thanks @eyaltoledano! - Small fixes -nextcommand no longer incorrectly suggests that subtasks be broken down into subtasks in the CLI - fixes theappendflag so it properly works in the CLI
0.14.0-rc.0
Minor Changes
-
#521
ed17cb0Thanks @Crunchyman-ralph! - .taskmasterconfig now supports a baseUrl field per model role (main, research, fallback), allowing endpoint overrides for any provider. -
#528
58b417aThanks @Crunchyman-ralph! - Display task complexity scores in task lists, next task, and task details views.
Patch Changes
-
#478
4117f71Thanks @joedanz! - Fix CLI --force flag for parse-prd commandPreviously, the --force flag was not respected when running
parse-prd, causing the command to prompt for confirmation or fail even when --force was provided. This patch ensures that the flag is correctly passed and handled, allowing users to overwrite existing tasks.json files as intended.- Fixes #477
-
#511
17294ffThanks @Crunchyman-ralph! - Task Master no longer tells you to update when you're already up to date -
#523
da317f2Thanks @Crunchyman-ralph! - Fix the error handling of task status settings -
#527
a8dabf4Thanks @Crunchyman-ralph! - Remove caching layer from MCP direct functions for task listing, next task, and complexity report- Fixes issues users where having where they were getting stale data
-
#417
a1f8d52Thanks @ksylvan! - Fix for issue #409 LOG_LEVEL Pydantic validation error -
#501
0a61184Thanks @Crunchyman-ralph! - Fix initial .env.example to work out of the box- Closes #419
-
#435
a96215aThanks @lebsral! - Fix default fallback model and maxTokens in Taskmaster initialization -
#517
e96734aThanks @Crunchyman-ralph! - Fix bug when updating tasks on the MCP server (#412) -
#496
efce374Thanks @joedanz! - Fix duplicate output on CLI help screen- Prevent the Task Master CLI from printing the help screen more than once when using
-hor--help. - Removed redundant manual event handlers and guards for help output; now only the Commander
.helpInformationoverride is used for custom help. - Simplified logic so that help is only shown once for both "no arguments" and help flag flows.
- Ensures a clean, branded help experience with no repeated content.
- Fixes #339
- Prevent the Task Master CLI from printing the help screen more than once when using
0.13.1
Patch Changes
- #399
734a4fdThanks @Crunchyman-ralph! - Fix ERR_MODULE_NOT_FOUND when trying to run MCP Server
0.13.0
Minor Changes
-
#240
ef782ffThanks @eyaltoledano! - feat(expand): Enhanceexpandandexpand-allcommands- Integrate
task-complexity-report.jsonto automatically determine the number of subtasks and use tailored prompts for expansion based on prior analysis. You no longer need to try copy-pasting the recommended prompt. If it exists, it will use it for you. You can just runtask-master update --id=[id of task] --researchand it will use that prompt automatically. No extra prompt needed. - Change default behavior to append new subtasks to existing ones. Use the
--forceflag to clear existing subtasks before expanding. This is helpful if you need to add more subtasks to a task but you want to do it by the batch from a given prompt. Use force if you want to start fresh with a task's subtasks.
- Integrate
-
#240
87d97bbThanks @eyaltoledano! - Adds support for the OpenRouter AI provider. Users can now configure models available through OpenRouter (requiring anOPENROUTER_API_KEY) via thetask-master modelscommand, granting access to a wide range of additional LLMs. - IMPORTANT FYI ABOUT OPENROUTER: Taskmaster relies on AI SDK, which itself relies on tool use. It looks like free models sometimes do not include tool use. For example, Gemini 2.5 pro (free) failed via OpenRouter (no tool use) but worked fine on the paid version of the model. Custom model support for Open Router is considered experimental and likely will not be further improved for some time. -
#240
1ab836fThanks @eyaltoledano! - Adds model management and new configuration file .taskmasterconfig which houses the models used for main, research and fallback. Adds models command and setter flags. Adds a --setup flag with an interactive setup. We should be calling this during init. Shows a table of active and available models when models is called without flags. Includes SWE scores and token costs, which are manually entered into the supported_models.json, the new place where models are defined for support. Config-manager.js is the core module responsible for managing the new config." -
#240
c8722b0Thanks @eyaltoledano! - Adds custom model ID support for Ollama and OpenRouter providers.- Adds the
--ollamaand--openrouterflags totask-master models --set-<role>command to set models for those providers outside of the support models list. - Updated
task-master models --setupinteractive mode with options to explicitly enter custom Ollama or OpenRouter model IDs. - Implemented live validation against OpenRouter API (
/api/v1/models) when setting a custom OpenRouter model ID (via flag or setup). - Refined logic to prioritize explicit provider flags/choices over internal model list lookups in case of ID conflicts.
- Added warnings when setting custom/unvalidated models.
- We obviously don't recommend going with a custom, unproven model. If you do and find performance is good, please let us know so we can add it to the list of supported models.
- Adds the
-
#240
2517bc1Thanks @eyaltoledano! - Integrate OpenAI as a new AI provider. - Enhancemodelscommand/tool to display API key status. - Implement model-specificmaxTokensoverride based onsupported-models.jsonto save you if you use an incorrect max token value. -
#240
9a48278Thanks @eyaltoledano! - Tweaks Perplexity AI calls for research mode to max out input tokens and get day-fresh information - Forces temp at 0.1 for highly deterministic output, no variations - Adds a system prompt to further improve the output - Correctly uses the maximum input tokens (8,719, used 8,700) for perplexity - Specificies to use a high degree of research across the web - Specifies to use information that is as fresh as today; this support stuff like capturing brand new announcements like new GPT models and being able to query for those in research. 🔥
Patch Changes
-
#240
842eaf7Thanks @eyaltoledano! - - Add support for Google Gemini models via Vercel AI SDK integration. -
#240
ed79d4fThanks @eyaltoledano! - Add xAI provider and Grok models support -
#378
ad89253Thanks @eyaltoledano! - Better support for file paths on Windows, Linux & WSL.- Standardizes handling of different path formats (URI encoded, Windows, Linux, WSL).
- Ensures tools receive a clean, absolute path suitable for the server OS.
- Simplifies tool implementation by centralizing normalization logic.
-
#285
2acba94Thanks @neno-is-ooo! - Add integration for Roo Code -
#378
d63964aThanks @eyaltoledano! - Improved update-subtask - Now it has context about the parent task details - It also has context about the subtask before it and the subtask after it (if they exist) - Not passing all subtasks to stay token efficient -
#240
5f504faThanks @eyaltoledano! - Improve and adjustinitcommand for robustness and updated dependencies.- Update Initialization Dependencies: Ensure newly initialized projects (
task-master init) include all required AI SDK dependencies (@ai-sdk/*,ai, provider wrappers) in theirpackage.jsonfor out-of-the-box AI feature compatibility. Remove unnecessary dependencies (e.g.,uuid) from the init template. - Silence
npm installduringinit: Preventnpm installoutput from interfering with non-interactive/MCP initialization by suppressing its stdio in silent mode. - Improve Conditional Model Setup: Reliably skip interactive
models --setupduring non-interactiveinitruns (e.g.,init -yor MCP) by checkingisSilentMode()instead of passing flags. - Refactor
init.js: Remove internalisInteractiveflag logic. - Update
initInstructions: Tweak the "Getting Started" text displayed afterinit. - Fix MCP Server Launch: Update
.cursor/mcp.jsontemplate to usenode ./mcp-server/server.jsinstead ofnpx task-master-mcp. - Update Default Model: Change the default main model in the
.taskmasterconfigtemplate.
- Update Initialization Dependencies: Ensure newly initialized projects (
-
#240
96aeeffThanks @eyaltoledano! - Fixes an issue with add-task which did not use the manually defined properties and still needlessly hit the AI endpoint. -
#240
5aea93dThanks @eyaltoledano! - Fixes an issue that prevented remove-subtask with comma separated tasks/subtasks from being deleted (only the first ID was being deleted). Closes #140 -
#240
66ac9abThanks @eyaltoledano! - Improves next command to be subtask-aware - The logic for determining the "next task" (findNextTask function, used by task-master next and the next_task MCP tool) has been significantly improved. Previously, it only considered top-level tasks, making its recommendation less useful when a parent task containing subtasks was already marked 'in-progress'. - The updated logic now prioritizes finding the next available subtask within any 'in-progress' parent task, considering subtask dependencies and priority. - If no suitable subtask is found within active parent tasks, it falls back to recommending the next eligible top-level task based on the original criteria (status, dependencies, priority).This change makes the next command much more relevant and helpful during the implementation phase of complex tasks.
-
#240
ca7b045Thanks @eyaltoledano! - Add--statusflag toshowcommand to filter displayed subtasks. -
#328
5a2371bThanks @knoxgraeme! - Fix --task to --num-tasks in ui + related tests - issue #324 -
#240
6cb213eThanks @eyaltoledano! - Adds a 'models' CLI and MCP command to get the current model configuration, available models, and gives the ability to set main/research/fallback models." - In the CLI,task-master modelsshows the current models config. Using the--setupflag launches an interactive set up that allows you to easily select the models you want to use for each of the three roles. Useqduring the interactive setup to cancel the setup. - In the MCP, responses are simplified in RESTful format (instead of the full CLI output). The agent can use themodelstool with different arguments, includinglistAvailableModelsto get available models. Run without arguments, it will return the current configuration. Arguments are available to set the model for each of the three roles. This allows you to manage Taskmaster AI providers and models directly from either the CLI or MCP or both. - Updated the CLI help menu when you runtask-masterto include missing commands and .taskmasterconfig information. - Adds--researchflag toadd-taskso you can hit up Perplexity right from the add-task flow, rather than having to add a task and then update it.
0.12.1
Patch Changes
- #307
2829194Thanks @Crunchyman-ralph! - Fix add_dependency tool crashing the MCP Server
0.12.0
Minor Changes
-
#253
b2ccd60Thanks @Crunchyman-ralph! - Addnpx task-master-aithat runs mcp instead of using `task-master-mcp`` -
#267
c17d912Thanks @Crunchyman-ralph! - Improve PRD parsing prompt with structured analysis and clearer task generation guidelines. We are testing a new prompt - please provide feedback on your experience.
Patch Changes
-
#243
454a1d9Thanks @Crunchyman-ralph! - - Fixes shebang issue not allowing task-master to run on certain windows operating systems- Resolves #241 #211 #184 #193
-
#268
3e872f8Thanks @Crunchyman-ralph! - Fix remove-task command to handle multiple comma-separated task IDs -
#239
6599cb0Thanks @eyaltoledano! - Updates the parameter descriptions for update, update-task and update-subtask to ensure the MCP server correctly reaches for the right update command based on what is being updated -- all tasks, one task, or a subtask. -
#272
3aee9bcThanks @Crunchyman-ralph! - Enhance theparsePRDto include--appendflag. This flag allows users to append the parsed PRD to an existing file, making it easier to manage multiple PRD files without overwriting existing content. -
#264
ff8e75cThanks @joedanz! - Add quotes around numeric env vars in mcp.json (Windsurf, etc.) -
#248
d99fa00Thanks @Crunchyman-ralph! - - Fixtask-master initpolluting codebase with new packages insidepackage.jsonand modifying projectREADME- Now only initializes with cursor rules, windsurf rules, mcp.json, scripts/example_prd.txt, .gitignore modifications, and
README-task-master.md
- Now only initializes with cursor rules, windsurf rules, mcp.json, scripts/example_prd.txt, .gitignore modifications, and
-
#266
41b979cThanks @Crunchyman-ralph! - Fixed a bug that prevented the task-master from running in a Linux container -
#265
0eb16d5Thanks @Crunchyman-ralph! - Remove the need for project name, description, and version. Since we no longer create a package.json for you
0.11.0
Minor Changes
- #71
7141062Thanks @eyaltoledano! - - Easier Ways to Use Taskmaster (CLI & MCP):- You can now use Taskmaster either by installing it as a standard command-line tool (
task-master) or as an MCP server directly within integrated development tools like Cursor (using its built-in features). This makes Taskmaster accessible regardless of your preferred workflow. - Setting up a new project is simpler in integrated tools, thanks to the new
initialize_projectcapability. - Complete MCP Implementation:
- NOTE: Many MCP clients charge on a per tool basis. In that regard, the most cost-efficient way to use Taskmaster is through the CLI directly. Otherwise, the MCP offers the smoothest and most recommended user experience.
- All MCP tools now follow a standardized output format that mimicks RESTful API responses. They are lean JSON responses that are context-efficient. This is a net improvement over the last version which sent the whole CLI output directly, which needlessly wasted tokens.
- Added a
remove-taskcommand to permanently delete tasks you no longer need. - Many new MCP tools are available for managing tasks (updating details, adding/removing subtasks, generating task files, setting status, finding the next task, breaking down complex tasks, handling dependencies, analyzing complexity, etc.), usable both from the command line and integrated tools. (See the
taskmaster.mdcreference guide and improved readme for a full list).
- Better Task Tracking:
- Added a "cancelled" status option for tasks, providing more ways to categorize work.
- Smoother Experience in Integrated Tools:
- Long-running operations (like breaking down tasks or analysis) now run in the background via an Async Operation Manager with progress updates, so you know what's happening without waiting and can check status later.
- Improved Documentation:
- Added a comprehensive reference guide (
taskmaster.mdc) detailing all commands and tools with examples, usage tips, and troubleshooting info. This is mostly for use by the AI but can be useful for human users as well. - Updated the main README with clearer instructions and added a new tutorial/examples guide.
- Added documentation listing supported integrated tools (like Cursor).
- Added a comprehensive reference guide (
- Increased Stability & Reliability:
- Using Taskmaster within integrated tools (like Cursor) is now more stable and the recommended approach.
- Added automated testing (CI) to catch issues earlier, leading to a more reliable tool.
- Fixed release process issues to ensure users get the correct package versions when installing or updating via npm.
- Better Command-Line Experience:
- Fixed bugs in the
expand-allcommand that could cause NaN errors or JSON formatting issues (especially when using--research). - Fixed issues with parameter validation in the
analyze-complexitycommand (specifically related to thethresholdparameter). - Made the
add-taskcommand more consistent by adding standard flags like--title,--descriptionfor manual task creation so you don't have to use--promptand can quickly drop new ideas and stay in your flow. - Improved error messages for incorrect commands or flags, making them easier to understand.
- Added confirmation warnings before permanently deleting tasks (
remove-task) to prevent mistakes. There's a known bug for deleting multiple tasks with comma-separated values. It'll be fixed next release. - Renamed some background tool names used by integrated tools (e.g.,
list-tasksis nowget_tasks) to be more intuitive if seen in logs or AI interactions. - Smoother project start: Improved the guidance provided to AI assistants immediately after setup (related to
initandparse-prdsteps). This ensures the AI doesn't go on a tangent deciding its own workflow, and follows the exact process outlined in the Taskmaster workflow.
- Fixed bugs in the
- Clearer Error Messages:
- When generating subtasks fails, error messages are now clearer, including specific task IDs and potential suggestions.
- AI fallback from Claude to Perplexity now also works the other way around. If Perplexity is down, will switch to Claude.
- Simplified Setup & Configuration:
- Made it clearer how to configure API keys depending on whether you're using the command-line tool (
.envfile) or an integrated tool (.cursor/mcp.jsonfile). - Taskmaster is now better at automatically finding your project files, especially in integrated tools, reducing the need for manual path settings.
- Fixed an issue that could prevent Taskmaster from working correctly immediately after initialization in integrated tools (related to how the MCP server was invoked). This should solve the issue most users were experiencing with the last release (0.10.x)
- Updated setup templates with clearer examples for API keys.
- **For advanced users setting up the MCP server manually, the command is now
npx -y task-master-ai task-master-mcp.
- Made it clearer how to configure API keys depending on whether you're using the command-line tool (
- Enhanced Performance & AI:
- Updated underlying AI model settings:
- Increased Context Window: Can now handle larger projects/tasks due to an increased Claude context window (64k -> 128k tokens).
- Reduced AI randomness: More consistent and predictable AI outputs (temperature 0.4 -> 0.2).
- Updated default AI models: Uses newer models like
claude-3-7-sonnet-20250219and Perplexitysonar-proby default. - More granular breakdown: Increased the default number of subtasks generated by
expandto 5 (from 4). - Consistent defaults: Set the default priority for new tasks consistently to "medium".
- Improved performance when viewing task details in integrated tools by sending less redundant data.
- Updated underlying AI model settings:
- Documentation Clarity:
- Clarified in documentation that Markdown files (
.md) can be used for Product Requirements Documents (parse_prd). - Improved the description for the
numTasksoption inparse_prdfor better guidance.
- Clarified in documentation that Markdown files (
- Improved Visuals (CLI):
- Enhanced the look and feel of progress bars and status updates in the command line.
- Added a helpful color-coded progress bar to the task details view (
showcommand) to visualize subtask completion. - Made progress bars show a breakdown of task statuses (e.g., how many are pending vs. done).
- Made status counts clearer with text labels next to icons.
- Prevented progress bars from messing up the display on smaller terminal windows.
- Adjusted how progress is calculated for 'deferred' and 'cancelled' tasks in the progress bar, while still showing their distinct status visually.
- Fixes for Integrated Tools:
- Fixed how progress updates are sent to integrated tools, ensuring they display correctly.
- Fixed internal issues that could cause errors or invalid JSON responses when using Taskmaster with integrated tools.
- You can now use Taskmaster either by installing it as a standard command-line tool (
0.10.1
Patch Changes
-
#80
aa185b2Thanks @Crunchyman-ralph! - Remove non-existent package@model-context-protocol/sdk -
#45
757fd47Thanks @Crunchyman-ralph! - Add license to repo
0.10.0
Minor Changes
-
#44
eafdb47Thanks @Crunchyman-ralph! - add github actions to automate github and npm releases -
#20
4eed269Thanks @Crunchyman-ralph! - Implement MCP server for all commands using tools.
Patch Changes
-
#44
44db895Thanks @Crunchyman-ralph! - Added changeset config #39 -
#50
257160aThanks @Crunchyman-ralph! - Fix addTask toolprojectRoot not defined -
#57
9fd42eeThanks @github-actions! - fix mcp server not connecting to cursor -
#48
5ec3651Thanks @Crunchyman-ralph! - Fix workflows