Eyal Toledano b8f36870e2 refactor: Standardize configuration and environment variable access
This commit centralizes configuration and environment variable access across various modules by consistently utilizing getters from scripts/modules/config-manager.js. This replaces direct access to process.env and the global CONFIG object, leading to improved consistency, maintainability, testability, and better handling of session-specific configurations within the MCP context.

Key changes include:

- Centralized Getters: Replaced numerous instances of process.env.* and CONFIG.* with corresponding getter functions (e.g., getLogLevel, getMainModelId, getResearchMaxTokens, getMainTemperature, isApiKeySet, getDebugFlag, getDefaultSubtasks).

- Session Awareness: Ensured that the session object is passed to config getters where necessary, particularly within AI service calls (ai-services.js, add-task.js) and error handling (ai-services.js), allowing for session-specific environment overrides.

- API Key Checks: Standardized API key availability checks using isApiKeySet() instead of directly checking process.env.* (e.g., for Perplexity in commands.js and ai-services.js).

- Client Instantiation Cleanup: Removed now-redundant/obsolete local client instantiation functions (getAnthropicClient, getPerplexityClient) from ai-services.js and the global Anthropic client initialization from dependency-manager.js. Client creation should now rely on the config manager and factory patterns.

- Consistent Debug Flag Usage: Standardized calls to getDebugFlag() in commands.js, removing potentially unnecessary null arguments.

- Accurate Progress Calculation: Updated AI stream progress reporting (ai-services.js, add-task.js) to use getMainMaxTokens(session) for more accurate calculations.

- Minor Cleanup: Removed unused  import from scripts/modules/commands.js.

Specific module updates:

- :

  - Uses getLogLevel() instead of process.env.LOG_LEVEL.

- :

  - Replaced direct env/config access for model IDs, tokens, temperature, API keys, and default subtasks with appropriate getters.

  - Passed session to handleClaudeError.

  - Removed local getPerplexityClient and getAnthropicClient functions.

  - Updated progress calculations to use getMainMaxTokens(session).

- :

  - Uses isApiKeySet('perplexity') for API key checks.

  - Uses getDebugFlag() consistently for debug checks.

  - Removed unused  import.

- :

  - Removed global Anthropic client initialization.

- :

  - Uses config getters (getResearch..., getMain...) for Perplexity and Claude API call parameters, preserving customEnv override logic.

This refactoring also resolves a potential SyntaxError: Identifier 'getPerplexityClient' has already been declared by removing the duplicated/obsolete function definition previously present in ai-services.js.
2025-04-21 21:30:12 -04:00
2025-04-09 00:30:05 +02:00
2025-03-04 13:55:17 -05:00
2025-04-09 00:30:05 +02:00
2025-04-11 19:34:07 +00:00
2025-04-09 00:30:05 +02:00
2025-03-31 17:09:31 +02:00
2025-04-09 00:30:05 +02:00
2025-04-09 00:30:05 +02:00

Task Master GitHub stars

CI npm version Discord Follow License: MIT with Commons Clause

By @eyaltoledano & @RalphEcom

Twitter Follow Twitter Follow

A task management system for AI-driven development with Claude, designed to work seamlessly with Cursor AI.

Requirements

  • Anthropic API key (Claude API)
  • OpenAI SDK (for Perplexity API integration, optional)

Quick Start

MCP (Model Control Protocol) provides the easiest way to get started with Task Master directly in your editor.

  1. Install the package
npm i -g task-master-ai
  1. Add the MCP config to your editor (Cursor recommended, but it works with other text editors):
{
	"mcpServers": {
		"taskmaster-ai": {
			"command": "npx",
			"args": ["-y", "task-master-mcp"],
			"env": {
				"ANTHROPIC_API_KEY": "YOUR_ANTHROPIC_API_KEY_HERE",
				"PERPLEXITY_API_KEY": "YOUR_PERPLEXITY_API_KEY_HERE",
				"MODEL": "claude-3-7-sonnet-20250219",
				"PERPLEXITY_MODEL": "sonar-pro",
				"MAX_TOKENS": 64000,
				"TEMPERATURE": 0.2,
				"DEFAULT_SUBTASKS": 5,
				"DEFAULT_PRIORITY": "medium"
			}
		}
	}
}
  1. Enable the MCP in your editor

  2. Prompt the AI to initialize Task Master:

Can you please initialize taskmaster-ai into my project?
  1. Use common commands directly through your AI assistant:
Can you parse my PRD at scripts/prd.txt?
What's the next task I should work on?
Can you help me implement task 3?
Can you help me expand task 4?

Option 2: Using Command Line

Installation

# Install globally
npm install -g task-master-ai

# OR install locally within your project
npm install task-master-ai

Initialize a new project

# If installed globally
task-master init

# If installed locally
npx task-master-init

This will prompt you for project details and set up a new project with the necessary files and structure.

Common Commands

# Initialize a new project
task-master init

# Parse a PRD and generate tasks
task-master parse-prd your-prd.txt

# List all tasks
task-master list

# Show the next task to work on
task-master next

# Generate task files
task-master generate

Documentation

For more detailed information, check out the documentation in the docs directory:

Troubleshooting

If task-master init doesn't respond:

Try running it with Node directly:

node node_modules/claude-task-master/scripts/init.js

Or clone the repository and run:

git clone https://github.com/eyaltoledano/claude-task-master.git
cd claude-task-master
node scripts/init.js

Contributors

Task Master project contributors

Star History

Star History Chart

Licensing

Task Master is licensed under the MIT License with Commons Clause. This means you can:

Allowed:

  • Use Task Master for any purpose (personal, commercial, academic)
  • Modify the code
  • Distribute copies
  • Create and sell products built using Task Master

Not Allowed:

  • Sell Task Master itself
  • Offer Task Master as a hosted service
  • Create competing products based on Task Master

See the LICENSE file for the complete license text and licensing details for more information.

Description
An AI-powered task-management system you can drop into Cursor, Lovable, Windsurf, Roo, and others.
Readme MIT 42 MiB
Languages
JavaScript 71.1%
TypeScript 23.8%
MDX 3.2%
Shell 1.7%
CSS 0.2%