Skip to main content

Autobolt — Autonomous Coding Agent

Autobolt is an autonomous, self-improving SWE (Software Engineering) agent that writes code, runs tests, reads errors, fixes itself, and iterates until tests pass. It runs entirely locally via Ollama — no API costs, no data leaves your machine.

Quick Start

# Install
pip install -e .

# CLI — chat with the agent
autobolt

# Server — web UI with WebSocket streaming
autobolt-server
# → http://localhost:8000

# Benchmark — measure solve rate on 10 built-in tasks
python -m distributed_agents.benchmark --model llama3.2:3b

# Real-world benchmark — run against real GitHub issues
python -m distributed_agents.real_benchmark --max-per-repo 3

What It Does

Mode Command What Happens
Chat autobolt Interactive CLI. Type a task, agent uses tools to complete it.
Web UI autobolt-server Dark-theme chat at http://localhost:8000. Toggle "Auto Iterate" to write → test → fix → retest autonomously.
Benchmark benchmark Runs 10 predefined tasks (fib → rate-limiter). Reports solve rate, iterations, token cost, failure modes.
Real Benchmark real_benchmark Discovers real GitHub issues via merged PR references, clones repos, runs agent, reports solve rate per repo.
Dashboard http://localhost:8000/dashboard Charts: solve rate by difficulty/repo, token heatmap, iterations distribution.

Architecture

┌─────────────────────────────────────────────────────┐
│  CLI (Rich)           │  Web UI + WebSocket         │
├─────────────────────────────────────────────────────┤
│  Iterative Developer     │  LLM (Ollama)  │  Tools  │
│  write → test → fix →    │  qwen3 /       │  12 fn  │
│  retest (max 5 iters)    │  llama3        │  calls  │
├─────────────────────────────────────────────────────┤
│  Memory Store  │  Project Scanner  │  Change Planner │
│  (SQLite)      │  deps/scripts    │  dependency-    │
│                │  /conventions     │  ordered files  │
├─────────────────────────────────────────────────────┤
│  Auto Quality Gate  │  Benchmark Harness           │
│  lint/typecheck     │  built-in + real GitHub      │
│  after every edit   │  issue pipeline              │
└─────────────────────────────────────────────────────┘

System Components

Module File Purpose
LLM Client llm.py Ollama /api/chat wrapper. 600s timeout, 2048 output tokens.
Tools tools.py 12 function tools: read, write, edit, bash, glob, grep, ls, web_search, web_fetch, git_status, git_diff, git_log, think. Permission system with session-level approval.
Iterative Developer iterative_dev.py Core loop: write code → run tests → parse failures → feed back to LLM → retest. Parses pytest, jest, Go test, Cargo test output. Self-correction on no-tool-use (2 retries).
Memory Store memory_store.py SQLite with 4 tables (projects, sessions, tasks, tool_uses). Keyword-overlap similarity recall injects past context into system prompt.
Project Scanner project_scanner.py Auto-detects project type, package manager, dependencies, frameworks, scripts, test/lint/typecheck commands, code conventions (tabs vs spaces, quotes, semicolons).
Auto Quality Gate auto_quality.py Hooks after write/edit tools — auto-runs linter + typecheck, appends synthetic errors for LLM to fix before proceeding.
Change Planner change_planner.py Uses LLM to plan file creation/modification order respecting cross-file dependencies before making changes.
GitHub Issue Scraper github_scraper.py PR-first discovery: scans merged PRs → extracts referenced issue numbers. Filters by body length (>50 chars), diff size (<500 lines), test presence in diff. Installs repo dependencies. Checks out parent commit. Returns targeted test paths.
Real Benchmark Runner real_benchmark.py Runs agent against real GitHub issues across 12 repos (pytest, django, pydantic, celery, redis-py, aiohttp, fastapi, flask, httpx, rich, requests, sentry). Reports solve rate, iteration efficiency, token cost, failure modes, per-repo breakdown. CSV export.
Built-in Benchmark benchmark.py 10 calibration tasks (3 easy, 4 medium, 3 hard). Automated JSON report + formatted console output with difficulty breakdown and failure mode analysis.
Task Queue task_queue.py In-memory async job queue for long-running benchmarks. POST /benchmark → returns job_id → poll GET /tasks/{id}. Max 1 concurrent job.
Server server.py FastAPI server. Endpoints: /chat, /iterate, /project, /sessions, /session/{id}, /task/{id}, /tasks, /tasks/{job_id}, /benchmark/results, /dashboard. WebSocket /ws.
CLI main.py Rich-powered interactive CLI. Commands: dev <task>, iterate <task>, history, recall <query>, cost. Vision support (image paths).

Benchmark Results (Calibration Suite)

Model: llama3.2:3b via Ollama (19 tok/s on M2 Pro)

Difficulty Solved Rate First Try Avg Iters Avg Tokens
Easy 3/3 100% 2/3 1.3 8,035
Medium 4/4 100% 3/4 1.5 10,255
Hard 3/3 100% 3/3 1.0 2,478
Total 10/10 100% 8/10 (80%) 1.3 7,256

Note: These are calibration tasks, not real-world GitHub issues. The same agent achieved 0% on real issues with a small model (qwen3:8b). The bottleneck is model capability, not the agent platform. Swap in a stronger model (DeepSeek V3, GPT-4o) and the infrastructure scales.

What It CAN'T Do (Yet)

Gap Cause Status
Navigate large unfamiliar codebases 3B-8B models lack the context window and reasoning depth for surgical fixes in 100K+ line repos Model limit — needs 30B+ or API-grade
Distinguish "my fault" from pre-existing failures Parent commit may have unrelated test failures Mitigated via targeted test paths from PR diff
Install complex build dependencies Some repos need compiled extensions, system packages Partial — pip install works for pure Python
Run full test suites quickly 12-15 tok/s on M2 Pro = 15-35 min per issue Switch to faster model or API fallback

Real-World Benchmark

12 configured repos with PR-first issue discovery. To run:

# Scan and run against all repos (takes hours on small models)
python -m distributed_agents.real_benchmark --max-per-repo 3 --max-retries 3

# Quick test on one issue
python -m distributed_agents.real_benchmark --issues "pytest-dev/pytest#14683"

# Export results as CSV
python -m distributed_agents.real_benchmark --export-csv results.csv

Requirements

  • Python 3.10+
  • Ollama with a model pulled (llama3.2:3b, qwen3:8b, etc.)
  • Optional: GitHub CLI (gh) for real-issue benchmark

License

MIT

Metadata

Release files for autobolt-cli 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for autobolt-cli 0.1.0
File Size Uploaded Provenance
autobolt_cli-0.1.0.tar.gz 28.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for autobolt-cli 0.1.0
File Interpreter ABI Platform
autobolt_cli-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 60.8 kB

Release files / autobolt_cli-0.1.0.tar.gz

Download URL autobolt_cli-0.1.0.tar.gz
Size 28.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d64c01252a15cf38919532b3acc8328374afccd8f602831312c24ba0b15b1be0
BLAKE2b-256 checksum
How to use checksums
9b0c8f15602710d548952b37c89c93da537cf8590f6d40be1bc87dcc2e15086c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / autobolt_cli-0.1.0-py3-none-any.whl

Download URL autobolt_cli-0.1.0-py3-none-any.whl
Size 32.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
405a0f6b6f536b21a1dbc6a6f26fe4617edaed7a3ad96fdd04f9f365d00651d0
BLAKE2b-256 checksum
How to use checksums
26ada653845adeb2fe053732907e330094e91416eafe170e3db38d49f5fa1916
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Security for autobolt-cli 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page