Backend task runner for steerdev.com - orchestrates CLI coding agents with activity reporting
Project description
SteerDev Agent
Task runner for steerdev.com — orchestrates AI coding agents via subprocess execution while streaming events to the SteerDev platform.
What It Does
SteerDev Agent connects your AI coding agent (Claude Code, Codex, Aider) to the steerdev.com platform:
- Fetches tasks from your SteerDev project
- Builds prompts with project context, task details, and workflow instructions
- Launches the agent as a subprocess with JSON streaming
- Streams events back to the API for real-time monitoring
- Manages sessions for tracking and resuming conversations
Installation
# Install with uv (recommended)
uv tool install steerdev-agent
# Or from source
git clone https://github.com/pentoai/steerdev-agent.git
cd steerdev-agent
uv tool install .
Quick Start
1. Set Up Your Project
# Configure the agent for your project
steerdev-agent setup --project-id YOUR_PROJECT_ID --api-key YOUR_API_KEY
2. Set Environment Variables
export STEERDEV_API_KEY="your-api-key"
# Ensure your CLI agent is logged in (e.g., `claude login` for Claude Code)
3. Run the Agent
# Run the next task in your project
steerdev-agent run --project-id YOUR_PROJECT_ID
# Run a specific task
steerdev-agent run --project-id YOUR_PROJECT_ID --task-id TASK_ID
# Resume an existing session
steerdev-agent resume --session-id SESSION_ID --message "Continue working..."
CLI Commands
steerdev-agent run
Run the agent against a project or specific task.
steerdev-agent run --project-id PROJECT_ID
steerdev-agent run --project-id PROJECT_ID --task-id TASK_ID
steerdev-agent run -c agent.yaml --prompt "Fix the failing tests"
steerdev-agent tasks
Manage tasks from your SteerDev project.
steerdev-agent tasks next # Get the next task to work on
steerdev-agent tasks list # List all tasks
steerdev-agent tasks get TASK_ID # Get task details
steerdev-agent tasks update TASK_ID --status in-progress
steerdev-agent setup
Configure your project for use with the agent.
steerdev-agent setup --project-id YOUR_PROJECT_ID --api-key YOUR_API_KEY
steerdev-agent config
Manage YAML configuration files.
steerdev-agent config init --output agent.yaml # Generate config
steerdev-agent config validate agent.yaml # Validate config
steerdev-agent config show agent.yaml # Show config
Configuration
YAML Config File
agent:
model: null # Model override
max_turns: null # Max agent turns per task
timeout_seconds: 3600 # Max execution time
workflow_id: null # Workflow ID for multi-phase execution
api:
api_endpoint: "https://steerdev.com/api/v1"
api_key_env: STEERDEV_API_KEY
project_id_env: STEERDEV_PROJECT_ID
executor:
type: claude # claude, codex, aider
permission_mode: default
allowed_tools: []
disallowed_tools: []
mcp_config: null
worktrees:
enabled: false
Environment Variables
| Variable | Description |
|---|---|
STEERDEV_API_KEY |
API key for steerdev.com |
STEERDEV_PROJECT_ID |
Default project ID |
Note: CLI agents (Claude Code, Codex, etc.) must be logged in independently before running steerdev-agent. No LLM API keys are needed here.
Architecture
steerdev-agent run
│
├── Fetch task from steerdev.com API
├── Build prompt (project context + task + workflow)
├── Create session
├── Launch agent subprocess (Claude Code)
│ └── Stream JSON events
│ ├── Parse (assistant, tool_use, tool_result)
│ └── Batch & send to steerdev.com API
└── Complete session
Key Modules
| Module | Purpose |
|---|---|
cli.py |
Typer CLI entry point |
runner.py |
Main orchestrator |
executor/ |
Agent subprocess management |
api/ |
SteerDev API clients |
prompt/ |
Prompt building and templates |
workflow/ |
Multi-phase workflow execution |
config/ |
Configuration models and settings |
setup/ |
Project setup utilities |
Development
# Install dependencies
uv sync --extra dev
# Run tests
uv run pytest
# Lint & format
uv run ruff check .
uv run ruff format .
# Type check
uv run basedpyright
Requirements
- Python 3.12+
- uv package manager
- An AI coding agent CLI (e.g.,
claudefor Claude Code) - SteerDev API key
License
MIT — see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file steerdev-0.4.27.tar.gz.
File metadata
- Download URL: steerdev-0.4.27.tar.gz
- Upload date:
- Size: 103.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b1bdedc96b32844c2cedd252ba9667a5394395bd24729562f3444df62d15eb3
|
|
| MD5 |
97b23581939381bd8e89b36ecc7fbbf1
|
|
| BLAKE2b-256 |
8e46df80d95f286328ff01f0c7dab901925e481daa5fca697a906b64ce51b6de
|
File details
Details for the file steerdev-0.4.27-py3-none-any.whl.
File metadata
- Download URL: steerdev-0.4.27-py3-none-any.whl
- Upload date:
- Size: 130.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81cdfcc63645ad731cffdfbe1b18cc9650d85421492ec041c0ffc3209089bcce
|
|
| MD5 |
cf0d89407b8acb9c53daeea36af7d739
|
|
| BLAKE2b-256 |
4b39370df78b31917dcf8ac146e26ad6c7a376224a3ef302a14e006d3bc1ce4e
|