Developers using Claude Code often spend time managing pull requests, fixing CI failures, and handling review comments. Claude Task Master (CLI claudetm) removes that manual overhead by orchestrating the entire development loop autonomously. The tool reads a high-level goal, creates a detailed plan, executes code changes, opens pull requests, monitors CI, addresses feedback, and merges when the defined success criteria are satisfied. This article explains how the system works, its core features, and how to integrate it into existing workflows.
Claude Task Master is built on the Claude Agent SDK and follows a PR-based workflow. The main concepts are:
The typical workflow proceeds through four phases:
claudetm reads the codebase, creates a task list organized by pull requests, and writes a plan file. The plan includes the goal, the tasks, and the criteria that define success.
Each phase can be interrupted at any point. Because the state is persisted, a subsequent run of claudetm picks up where it left off, re-establishes the PR, and continues the verification.
Claude Task Master supports profiles to isolate credentials and configuration for multiple Claude subscriptions. A profile is a directory under ~/.claudetm/profiles/<name>/ containing its own Claude Code configuration. There are two profile types:
~/.claude directory, preventing credential clashes.ANTHROPIC_API_KEY and ANTHROPIC_BASE_URL.
Multiple instances of claudetm can run concurrently, each using a different profile. The instances communicate through a mailbox system (REST API, MCP server, or CLI) to exchange dynamic plan updates and status information.
Beyond the CLI, Claude Task Master offers three integration mechanisms:
These mechanisms make it possible to embed Claude Task Master in larger automation platforms, CI/CD pipelines, or custom developer tools.
The following steps show a minimal setup for a Python project. The same commands work for Ruby or JavaScript projects as long as the Claude CLI is authenticated.
uv tool install claude-task-master
claude login
cd your-project
claudetm start "Add user authentication with tests"
The CLI will create a plan, open a branch, push commits, and open a pull request. You can monitor progress with claudetm status or via the web UI provided by the REST API.
If a pull request already exists, you can hand over its lifecycle to Claude Task Master:
claudetm merge-pr 42
The command takes ownership of the PR, monitors CI, fixes failures, and merges when ready.
Using the REST API, you can query the list of active tasks, their current phase, and any pending actions. A simple Flask app can display this information in real time, giving managers visibility into the autonomous development process.
import requests
response = requests.get('https://your-server/api/tasks')
print(response.json())
A webhook that posts a message to Slack after a successful merge might look like this:
import hmac, hashlib, json, requests
def verify_signature(payload, signature, secret):
mac = hmac.new(secret.encode(), payload, hashlib.sha256)
return hmac.compare_digest('sha256=' + mac.hexdigest(), signature)
def handle(event):
if event['type'] == 'pr_merged':
requests.post('https://hooks.slack.com/services/XXX/YYY/ZZZ', json={
'text': f"PR #{event['pr_number']} merged successfully."
})
Deploy this endpoint and register its URL in the Claude Task Master configuration.
Claude Task Master turns Claude Code into an autonomous development assistant that manages the full PR lifecycle, survives interruptions, and integrates with external systems via REST, MCP, and webhooks. By off repetitive tasks such as CI handling and review comment resolution, engineering teams can focus on higher-level design and architecture. The tool is open source under the MIT license and can be installed via PyPI or Docker. Give it a goal, walk away, and let the CLI deliver a merged pull request when the work is done.
Explore the repository for more details and contribution guidelines: https://github.com/developerz-ai/claude-task-master