"Build me an army worthy of Mordor" - but for code
A terminal-based orchestrator that summons multiple Claude coding agents to tackle your development tasks in parallel. Named after Saruman's fortress, Isengard gives you a command center to deploy, monitor, and coordinate autonomous coding agents from your terminal.
Isengard is a local TUI (Terminal User Interface) tool that spins up multiple Claude coding agents, assigns them tasks, and manages their execution. Think of it as your own tower of power for software development - but instead of breeding Uruk-hai, you're deploying intelligent coding agents, all from the comfort of your terminal.
- π§ββοΈ Agent Orchestration - Spin up multiple Claude coding agents on demand
- π Task Distribution - Intelligently distribute coding tasks across agents
- π Parallel Execution - Multiple agents working simultaneously on different parts of your project
- π Real-time TUI - Monitor agent progress, view logs, and control execution in a beautiful terminal interface
- π― Smart Coordination - Prevents conflicts and manages dependencies between agent tasks
- π» Fully Local - Runs entirely on your machine, using your Anthropic API key
Just as Isengard was Saruman's seat of power for coordinating forces, this tool serves as your command center for orchestrating coding agents. The LOTR naming scheme continues throughout:
- The Tower (TUI) - Your command interface overlooking all operations
- Uruk-hai (Agents) - Autonomous coding agents, each with a specific mission
- The PalantΓr - Real-time monitoring and communication with agents
- Missions - Tasks dispatched from the tower
# Install with uv (recommended)
uv tool install isengard
# Or with pipx
pipx install isengard
# Or build from source
git clone https://github.com/yourusername/isengard.git
cd isengard
uv sync
uv run isengard --init mission.yml
uv run isengard mission.yml# Set your API key
export ANTHROPIC_API_KEY="your-key-here"
# Generate a sample mission file
isengard --init mission.yml
# Launch Isengard with your mission file
isengard mission.yml
# Or create/edit a mission interactively
isengard --edit
# Run in dry-run mode to test without API calls
isengard mission.yml --dry-run# Clone and setup
git clone https://github.com/yourusername/isengard.git
cd isengard
uv sync
# Create a sample mission file
uv run isengard --init mission.yml
# Run directly with uv
uv run isengard mission.yml
# Or install locally for development
uv pip install -e .
isengard mission.ymlββ ISENGARD ββββββββββββββββββββββββββββββββββββββββββββββββββ
β The Tower of Orchestration 5 Agents Active β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β ACTIVE MISSIONS β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [β] uruk-1 β Implement authentication β 67% β βββββββ β
β β [β] uruk-2 β Build REST API endpoints β 43% β βββββββ β
β β [β] uruk-3 β Write unit tests β 89% β βββββββ β
β β [β] uruk-4 β Queued: Update docs β 0% β βββββββ β
β β [β] uruk-5 β Refactor database layer β100% β DONE β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β PALANTΓR - AGENT OUTPUT β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β [uruk-1] Creating auth middleware... β β
β β [uruk-1] β Generated JWT helper functions β β
β β [uruk-2] ERROR: Missing dependency @types/express β β
β β [uruk-3] Writing tests for user service... β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β [s]tart [p]ause [k]ill [a]dd [q]uit β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββ
β ISENGARD TOWER β
β (Orchestrator Core) β
βββββββββββββββββββ¬ββββββββββββββββββββ
β
βββββββββββ΄ββββββββββ
β β
βββββΌββββ βββββΌββββ
βAgent 1β βAgent 2β
β(Uruk) β β(Uruk) β
βββββ¬ββββ βββββ¬ββββ
β β
βΌ βΌ
[Task A] [Task B]
# Define your missions for the Uruk-hai
missions:
- name: "Implement authentication"
description: "Add JWT-based authentication to the API"
files:
- "src/auth/**"
- "src/middleware/auth.js"
priority: high
- name: "Build REST API endpoints"
description: "Create CRUD endpoints for user management"
files:
- "src/routes/users.js"
- "src/controllers/users.js"
dependencies:
- "Implement authentication"
- name: "Write unit tests"
description: "Comprehensive test coverage for auth and user modules"
files:
- "tests/auth.test.js"
- "tests/users.test.js"
priority: medium# Isengard configuration
model: "claude-sonnet-4-20250514"
max_agents: 5
workspace: "."
# Agent behavior
auto_commit: false
require_approval: true
# TUI preferences
theme: "sauron" # Options: sauron, shire, rivendell
show_tokens: true
log_level: "info"- Large Refactoring Projects - Deploy multiple agents to refactor different modules simultaneously
- Feature Development - Parallel implementation of independent features
- Code Migration - Coordinate agents to migrate codebases across frameworks or languages
- Test Generation - Spin up agents to write comprehensive test suites
- Documentation - Generate docs for different parts of your codebase in parallel
# Run a mission file
isengard mission.yml
# Run with a specific number of concurrent agents
isengard mission.yml --agents 5
isengard mission.yml -a 5
# Dry run (simulate without calling Claude)
isengard mission.yml --dry-run
isengard mission.yml -n
# Auto-start orchestration immediately
isengard mission.yml --auto-start
isengard mission.yml -s
# Enable verbose output
isengard mission.yml --verbose
isengard mission.yml -v
# Generate a sample mission file
isengard --init mission.yml
isengard -i mission.yml
# Open mission editor (create new mission)
isengard --edit
isengard -e
# Edit an existing mission file
isengard --edit mission.yml
isengard -e mission.yml
# Show version
isengard --versions- Start orchestration (or resume if paused)p- Pause/Resume agentsr- Retry failed tasksq- Quit Isengard
- Core orchestrator engine (Orthanc)
- Beautiful TUI with real-time updates
- Agent lifecycle management
- Task queue and priority system
- File conflict detection and resolution
- Git integration (auto-branch per agent)
- Agent collaboration protocols
- Mission templates and presets
- Session recording and replay
- Cost tracking and token usage monitoring
- Export agent outputs to reports
- Plugin system for custom agent behaviors
Contributions welcome! Whether you're a wizard, ranger, or hobbit of the coding world, all are welcome to help build Isengard.
# Clone the repository
git clone https://github.com/yourusername/isengard.git
cd isengard
# Install dependencies with uv
uv sync
# Create a sample mission and run in development mode
uv run isengard --init mission.yml
uv run isengard mission.yml
# Run tests
uv run pytest
# Format code
uv run ruff format
# Lint
uv run ruff check- Python 3.11+ - Core language
- uv - Fast Python package installer and resolver
- Textual - Modern TUI framework
- Anthropic SDK - Claude API integration
- Rich - Terminal formatting and styling
- asyncio - Concurrent agent management
MIT
- Built with Anthropic's Claude
- Inspired by J.R.R. Tolkien's Middle-earth
- Named after the fortress that definitely didn't have any structural integrity issues
"The old world will burn in the fires of industry" - Saruman (but make it CI/CD pipelines)