Inspiration

Coding agents are powerful but opaque: you describe a task, you get code back, but you have no confidence it was tested or that it runs. The last mile — execution and verification — is left entirely to the human.

What it does

Give Anvil a coding task in plain English. A planner decomposes the task into a plan: files to create, steps, and the exact test command that defines "done". A builder loop then emits one JSON action per turn — write, read, exec, search, done. Every exec result streams back into context, so failing tests trigger automatic fix-and-rerun cycles. All code runs inside isolated sandboxes. The agent repairs malformed outputs and retries transient API errors by itself. The deliverable is a tested patch: a unified diff plus a run report.

Key features

  • Natural-language task to tested, diffable code patch
  • Planner/builder model routing
  • Sandboxed code execution
  • Self-healing test loop (failing tests trigger automatic fix-and-rerun)
  • Live web UI with streaming agent timeline (Server-Sent Events)
  • Optional Tavily web research
  • CLI plus web interfaces
  • Dual LLM backend (Nebius Token Factory / NVIDIA)

How we built it

Python + FastAPI backend serving a vanilla JS frontend over Server-Sent Events for the live agent timeline. The builder runs code inside isolated sandboxes, with pytest as the verification gate. Model routing uses Nebius Token Factory and NVIDIA Nemotron 3 (Ultra/Super/Nano); Tavily API powers optional web research.

Challenges we ran into

Designing a constrained JSON action schema so the agent's outputs are reliably parseable, and streaming exec results back into context without blowing the context window during long fix-and-rerun loops.

Disclosure

Anvil is original work designed and built September 22–24, 2026 with AI-assisted development tools, and remains under active development.

Built With

  • api
  • fastapi
  • nebius-token-factory
  • nvidia-nemotron-3-(ultra/super/nano)
  • pytest
  • python
  • server-sent-events
  • tavily
  • vanilla-js
Share this project:

Updates

Submission history