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
# Or from source
git clone https://github.com/pentoai/steerdev.git
cd steerdev
uv tool install .
Quick Start
1. Set Up Your Project
# Configure the agent for your project
steerdev 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 run --project-id YOUR_PROJECT_ID
# Run a specific task
steerdev run --project-id YOUR_PROJECT_ID --task-id TASK_ID
# Resume an existing session
steerdev resume --session-id SESSION_ID --message "Continue working..."
CLI Commands
steerdev run
Run the agent against a project or specific task.
steerdev run --project-id PROJECT_ID
steerdev run --project-id PROJECT_ID --task-id TASK_ID
steerdev run -c agent.yaml --prompt "Fix the failing tests"
steerdev tasks
Manage tasks from your SteerDev project.
steerdev tasks next # Get the next task to work on
steerdev tasks list # List all tasks
steerdev tasks get TASK_ID # Get task details
steerdev tasks update TASK_ID --status in-progress
steerdev setup
Configure your project for use with the agent.
steerdev setup --project-id YOUR_PROJECT_ID --api-key YOUR_API_KEY
steerdev config
Manage YAML configuration files.
steerdev config init --output agent.yaml # Generate config
steerdev config validate agent.yaml # Validate config
steerdev 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. No LLM API keys are needed here.
Architecture
steerdev 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.5.1.tar.gz.
File metadata
- Download URL: steerdev-0.5.1.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 |
91d1d790d87d1a30ae2cffd49e5f3e815d9d39fa8b71b7c0907a79db8bfc6a9b
|
|
| MD5 |
37fb172ebc3d902aef4f7f464e794263
|
|
| BLAKE2b-256 |
719ae21ef865be84b2537398cd8e0d7a87a2c38eab31b0ff8eb5e77a8588c986
|
File details
Details for the file steerdev-0.5.1-py3-none-any.whl.
File metadata
- Download URL: steerdev-0.5.1-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 |
b127e1fdb9d9153294357f3f3435e064b4938830cc6a0cc096ddc26303f6ce8f
|
|
| MD5 |
df8200f4445696c47b700bb32629dc29
|
|
| BLAKE2b-256 |
af8bad51251da9b86e44be3670b113dae06bced875f4b2dd8c58f429ed2e9868
|