This PRD outlines the implementation of Claude Code CLI as an AI provider option for Task Master, enabling users to leverage Claude's capabilities without requiring API keys. Instead, users can authenticate through their existing Claude Code installation and use their Claude Pro/Team subscriptions.
- Users must obtain and manage API keys for AI providers
- API costs can be unpredictable and expensive for heavy usage
- Security concerns around storing API keys in configuration files
- Users with Claude Pro subscriptions cannot leverage their existing access
Claude Code now provides CLI access with authentication handled through the browser, offering a secure, cost-effective alternative for users who already have Claude subscriptions.
- Enable Task Master to use Claude Code CLI as an AI provider
- Eliminate the need for API keys when using Claude
- Maintain full compatibility with existing Task Master features
- Provide seamless switching between API and CLI modes
- Users can configure Claude Code CLI as their AI provider
- All task management operations work identically with CLI provider
- Performance remains acceptable (< 2x latency vs API)
- Clear documentation and error messages guide users
- I want to use my Claude subscription instead of API keys
- So that I can avoid additional costs and API key management
- I want to avoid storing API keys in my project
- So that I reduce the risk of credential exposure
- I want team members to use their own Claude accounts
- So that usage is tracked individually and securely
- Create
ClaudeCodeCLIProviderclass extendingBaseAIProvider - Implement all required methods:
generateText(),streamText(),generateObject() - Handle CLI process spawning with proper error handling
- Parse CLI JSON output to match provider interface
- Check Claude Code CLI installation on provider initialization
- Verify authentication status using
claude auth status - Provide clear error messages for authentication issues
- Support re-authentication flow guidance
- Add
claude-code-clias a provider option in configuration - Support model selection (opus, sonnet) via
--modelflag - Allow CLI-specific parameters:
--max-turns: Limit agentic turns (default: 3 for thorough processing)--output-format: json/text output format- Process timeout for Node.js execution
- Enable role-based provider selection (main, research, fallback)
- Note: Claude Code CLI does not support temperature, maxTokens, or other inference parameters
- Use Node.js child process APIs for CLI interaction
- Handle stdin/stdout communication for prompts and responses
- Implement proper timeout and buffer size limits
- Support both interactive and non-interactive modes
- Detect and report CLI installation issues
- Handle authentication failures gracefully
- Parse CLI error outputs into user-friendly messages
- Implement retry logic for transient failures
src/ai-providers/
├── claude-code-cli.js # New CLI provider implementation
├── base-provider.js # Existing base class (no changes)
└── index.js # Export new provider
scripts/modules/
├── ai-services-unified.js # Register new provider
└── config-manager.js # Update provider configurations
- Provider Registry: Add to PROVIDERS object
- Model Mapping: Define available models for CLI
- Authentication: Override
validateAuth()for CLI checks - API Key Logic: Bypass API key requirements for CLI provider
sequenceDiagram
participant TM as Task Master
participant CCP as ClaudeCodeCLI Provider
participant CC as Claude CLI
participant API as Claude API
TM->>CCP: generateText(messages)
CCP->>CC: Check authentication
CC-->>CCP: Auth status
CCP->>CC: Execute with prompt
CC->>API: API request (handled by CLI)
API-->>CC: Response
CC-->>CCP: JSON output
CCP-->>TM: Formatted response
- CLI invocation overhead < 500ms
- Total response time < 2x API direct calls
- Support concurrent requests without blocking
- Graceful degradation to fallback providers
- Clear error messages for troubleshooting
- Automatic retry for transient failures
- No API keys stored or transmitted
- Leverage Claude Code's secure authentication
- Process isolation for CLI execution
- Zero-config option for Claude Code users
- Clear setup instructions in documentation
- Helpful error messages with resolution steps
- Create ClaudeCodeCLIProvider class
- Implement generateText() method
- Add basic error handling
- Write unit tests
- Register provider in ai-services-unified.js
- Update configuration system
- Implement authentication validation
- Add integration tests
- Implement streamText() if possible
- Add generateObject() with schema support
- Optimize performance
- Handle edge cases
- Write user documentation
- Create setup guide
- Add example configurations
- Conduct end-to-end testing
- Mock CLI execution for isolated testing
- Test error handling scenarios
- Validate output parsing
- Test with actual Claude Code CLI (when available)
- Verify all Task Master features work
- Test provider switching
- Measure latency vs API providers
- Test concurrent request handling
- Monitor resource usage
- Installation prerequisites
- Authentication setup steps
- Configuration examples
- Troubleshooting guide
- Provider implementation details
- CLI communication protocol
- Extension points for customization
- Adoption rate among Claude Pro users
- Reduction in API key-related support issues
- Performance metrics vs API providers
- User satisfaction scores
- Streaming support for real-time responses
- Context caching for conversation continuity
- Support for Claude Code's special features
- Integration with Claude Code's memory system
Mitigation: Version detection and compatibility layer
Mitigation: Configurable fallback to API providers
Mitigation: Extensive testing on Windows, Mac, Linux
This PRD requires approval from:
- Project Maintainer
- Technical Lead
- Documentation Team
{
"models": {
"main": {
"model": "opus",
"provider": "claude-code-cli"
},
"fallback": {
"model": "gpt-4-turbo",
"provider": "openai",
"temperature": 0.7,
"maxTokens": 4096
}
},
"claudeCodeCLI": {
"maxTurns": 3,
"outputFormat": "json",
"processTimeout": 120000
}
}# User configures Claude Code CLI
task-master config --provider claude-code-cli
# Authentication check
task-master auth status
# Normal usage - no API keys needed!
task-master parse-prd "Build a todo app"