Skip to main content

acoder

Interactive agentic coding CLI backed by your own open-source model endpoint (any OpenAI-compatible URL — e.g. Qwen3-Coder on RunPod serverless). A terminal coding agent like Claude Code / Codex, but pointed at a model you host.

Install & run (no install needed)

uvx acoder setup      # one-time: enter your endpoint URL + API key
uvx acoder chat       # interactive agent session

uvx (from uv) runs acoder without installing it and provisions Python for you — nothing to set up but your endpoint. Prefer a permanent install? uv tool install acoder or pipx install acoder, then just acoder chat.

Config is read from env vars, ./.env, or ~/.config/acoder/config.env (written by acoder setup): ACODER_ENDPOINT, ACODER_API_KEY, ACODER_MODEL. Optional extras: acoder[research] (Firecrawl library docs), acoder[bench] (benchmark harness), acoder[all].

Interactive agent

acoder chat --mode approve   # default: approve each write/command (y/n/a)
acoder chat --mode auto      # full autonomy
acoder chat --mode plan      # read-only: investigates, proposes, never edits
acoder do "fix the failing test in parser.py and run pytest"   # one-shot

The agent reads/searches freely and gates every file write and shell command by your chosen mode. Slash commands in the REPL: /mode, /ingest, /cost, /reset, /help, /exit.

Batch workflow (the original staged pipeline)

Works like a careful human dev, in strict stages:

  1. Ingest — map the repo: every file, class, function, signature, docstring, import, and cross-file call edge → .acoder/repomap.json
  2. Research — detect the libraries the task touches; fetch official docs via Firecrawl (free search fallback without a key); cache condensed API notes per package in .acoder/libdocs/
  3. Plan — short step plan + edge-case list, grounded in the map + docs
  4. Code — generate the full solution with that assembled context
  5. Verify — run tests in a sandbox; repair loop with anchored acceptance

Verification design (measured, not vibes)

Naive self-repair (model writes tests, repairs until they pass) lowered HumanEval+ from 89.0 → 87.2 in our runs: bad model-written tests break good code. acoder therefore treats task-statement examples as ground truth anchors; model-written tests are advisory, and a repair is only accepted if it strictly improves the score.

Usage

cp .env.example .env   # RUNPOD_API_KEY, ACODER_ENDPOINT, FIRECRAWL_API_KEY
pip install -e ".[bench]"

acoder ingest .                    # build the repo map
acoder research pandas             # cache API notes for a library
acoder solve "add a retry decorator to http_get in client.py" --path .
acoder bench humaneval --mode baseline
acoder bench bigcodebench --mode agent
acoder report                      # scorecard vs frontier reference numbers

Benchmarks (this deployment, pass@1)

Benchmark Baseline Agentic Notes
HumanEval 92.7 — greedy, FP8, 48GB serverless worker
HumanEval+ 89.0 87.2 (naive v1) v1 regression is what motivated anchored verify
BigCodeBench-Hard pending pending research stage on

macOS note: EvalPlus's sandbox calls resource.setrlimit(RLIMIT_AS, ...), which macOS rejects — wrap it in try/except ValueError in evalplus/eval/utils.py or every task scores 0.

Metadata

Release files for acoder 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 acoder 0.1.0
File Size Uploaded
acoder-0.1.0.tar.gz 39.8 kB Details

Built distribution (wheel)

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

Total release size: 87.4 kB

Release files / acoder-0.1.0.tar.gz

Download URL acoder-0.1.0.tar.gz
Size 39.8 kB
Tags Source
SHA-256 checksum
How to use checksums
eaea239068fad5ceb9887e74a40331dcf8e5839b0a6e1ccea30dc93bbabfef8c
BLAKE2b-256 checksum
How to use checksums
a959125cf0fc962f2a0bc49efdbef9091f105f4900d3b250810f94606be96b24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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}

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

Download URL acoder-0.1.0-py3-none-any.whl
Size 47.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f193131ef31d656aff8b347c0604f8e7c55eab12d18fe7b9caffa2b6b24d9839
BLAKE2b-256 checksum
How to use checksums
117fae0c1fc0b4ac451bb76c5741c98f8ed1750df19267db1e59f968c5452f4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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