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
Log in or sign up for Devpost to join the conversation.