cd /news/ai-agents/llm-coding-agent-0-1a0 ยท home โ€บ topics โ€บ ai-agents โ€บ article
[ARTICLE ยท art-47351] src=simonwillison.net โ†— pub= topic=ai-agents verified=true sentiment=โ†‘ positive

llm-coding-agent 0.1a0

Simon Willison released llm-coding-agent 0.1a0, an experimental coding agent built on his LLM library. The agent provides tools for file editing, command execution, and code search, and is available via PyPI with a Python API.

read3 min views1 publishedJul 2, 2026

Release: llm-coding-agent 0.1a0

Another Fable 5 experiment. Now that my LLM library has evolved into more of an agent framework it's time to see what a simple coding agent would look like built on it.

I started a new Python library using my python-lib-template-repository GitHub template repository, then ran these two prompts (here's the Claude Code for web transcript):

Write a spec.md for this project - it will depend on the latest โ€œllmโ€ alpha from PyPI and implement a Claude code style coding agent complete with tools for reading and editing files and executing commands

Then:

Commit the spec, then build it using red/green TDD in a series of sensible commits (each with passing tests and updated docs) - occasionally manually test it using the OpenAI API key in your environment

Here's the spec, the resulting README file, and the sequence of commits.

I've shipped a slop-alpha to PyPI, so you can run the new agent like this:

uvx --prerelease=allow --with llm-coding-agent llm code

It's pretty good for a first attempt! Here's the (Fable-authored) README, which lists recipes like llm code --yolo

and llm code --allow "pytest*" --allow "git diff*"

.

It also presents a Python API based around a CodingAgent(model="gpt-5.5", root="/path", approve=True).run("Fix the failing test in tests/test_parser.py")

class which I didn't ask for but I'm delighted to see implemented.

Here's the suite of tools it implemented, listed using uvx ... llm tools

:

CodingTools_edit_file(path: str, old_string: str, new_string: str, replace_all: bool = False) -> str

Replace an exact string in a file.

old_string must match the file contents exactly (including whitespace) and must identify a unique location unless replace_all is true. Returns a diff of the change so it can be verified.

CodingTools_execute_command(command: str, timeout: int = 120) -> str

Run a shell command in the session root directory.

Returns combined stdout and stderr followed by an Exit code line. timeout is in seconds (maximum 600); on timeout the whole process tree is killed.

CodingTools_list_files(pattern: str = '**/*', path: str = '.') -> str

List files matching a glob pattern, newest first.

Skips hidden directories, node_modules, pycache and (in a git repository) anything covered by .gitignore. Returns at most 200 paths relative to the searched directory.

CodingTools_read_file(path: str, offset: int = 0, limit: int = 2000) -> str

Read a text file, returning numbered lines like cat -n.

Paths are relative to the session root. Use offset (0-based first line) and limit (max lines) to page through files too large to read in one call.

CodingTools_search_files(pattern: str, path: str = '.', glob: str = None, max_results: int = 100) -> str

Search file contents for a regular expression.

Returns matches as path:line_number:line, capped at max_results. Use glob (e.g. "*.py") to restrict which files are searched.

CodingTools_write_file(path: str, content: str) -> str

Create or overwrite a file with the given content.

Parent directories are created as needed. Prefer edit_file for modifying existing files.

I tried it out by running llm code --yolo

and then prompting:

mkdir /tmp/demo and then in that folder create a simple swiftui CLI app for telling the time in ascii art

Here's the transcript, in which GPT-5.5 reasoning notes that "SwiftUI isn't suitable for a true CLI" and then builds an app that outputs this on swift run AsciiTime

:

      โ–ˆ    โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ         โ–ˆโ–ˆโ–ˆโ–ˆ     โ–ˆ             โ–ˆ     โ–ˆโ–ˆโ–ˆ   
     โ–ˆโ–ˆ    โ–ˆ        โ–ˆ        โ–ˆ   โ–ˆโ–ˆ      โ–ˆ     โ–ˆโ–ˆ    โ–ˆ   โ–ˆ  
      โ–ˆ    โ–ˆโ–ˆโ–ˆโ–ˆ           โ–ˆโ–ˆโ–ˆ     โ–ˆ             โ–ˆ       โ–ˆ   
      โ–ˆ        โ–ˆ    โ–ˆ        โ–ˆ    โ–ˆ      โ–ˆ      โ–ˆ      โ–ˆ    
     โ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆโ–ˆ          โ–ˆโ–ˆโ–ˆโ–ˆ    โ–ˆโ–ˆโ–ˆ           โ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ

Tags: projects, ai, generative-ai, llm, llm-tool-use, coding-agents, claude-code, claude-mythos-fable

โ”€โ”€ more in #ai-agents 4 stories ยท sorted by recency
โ”€โ”€ more on @simon willison 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain โ€” perfect for shipping the agent you just read about.

$git push zahid main
โ†’ Live at https://your-agent.zahid.host โœ“
Get free account โ†’ Pricing
from โ‚ฌ0/mo ยท no card required
LIVE [news/llm-coding-agent-0-1โ€ฆ] indexed:0 read:3min 2026-07-02 ยท โ€”