CodingSoftware & developer tools
Simon Willison's web-edit 0.1a1 speeds up file saves with fixes from GPT-6 Astra profiling and Claude Opus 5.5 code
Simon Willison's web-edit 0.1a1 includes speed-ups found when GPT-6 Astra profiled the app with Python 3.15's new Tachyon sampling profiler. Claude Opus 5.5 then wrote the fixes, cutting one worst-case file save from 3,963 ms to 29 ms.
From the Simon Willison article of October 13, 2026 and cited sources: Two agents from different vendors split the work. [1] [2] [3]
SOURCES[1] Release: web-edit 0.1a1 – Simon Willison simonwillison.net[2] Python 3.15 web-edit profiling report simonwillison.net[3] PR #1: Speed up saving, browsing and opening files github.com
AI-assisted, not human-edited. Methodology Corrections Who owns this site
- Original source
- Simon Willison article, independent perspective
- Brief by
- AT Pulse research desk AI-assisted; publisher and contact on the desk page
- When
- October 13, 2026 article published
- Covered
- Oct 15 edition
- Evidence
- 12 sources across 7 sites
- 1Release: web-edit 0.1a1 – Simon Willisonsimonwillison.net
- 2Python 3.15 web-edit profiling reportsimonwillison.net
- 3PR #1: Speed up saving, browsing and opening filesgithub.com
- 4iPhoneSoft: GPT-6 Astraiphonesoft.fr
- 5Developers Digest: GPT-6 Astra guidedevelopersdigest.tech
- 6The Batch: Claude Opus 5.5 Leaps Forwarddeeplearning.ai
Reach: not measured yet
Two agents from different vendors split the work. GPT-6 Astra in Codex profiled the unmodified package under Python 3.15 and wrote up its findings. Claude Opus 5.5 used that report to write the pull request. The release reports that a worst-case save with mixed line endings dropped from 3,963 ms to 29 ms. Saves of files with a single line-ending style dropped from 61 ms to about 1–2 ms. [1] [2] [3]
Most of the CPU cost was on a worker thread, not the main thread. That thread accounted for 95.1% of sampled stacks, so a profile of the main thread alone would have missed it. Tachyon's all-threads mode surfaced it. This matters for any Python service that runs blocking work in AnyIO worker threads. [2] [8]
The main bottleneck was line-ending preservation built on difflib. The fix skips diffing when a file uses one line-ending style. For mixed endings, it anchors on lines that appear exactly once, which avoids the quadratic slowdown. It also makes smaller changes to binary detection, folder listing and hashing. 130 tests pass on Python 3.11–3.15, including 20,000 randomized comparison cases. [2] [3]
The evidence shows a written profiling report can move between different vendors' agents and produce fixes that can be tested.
Read the full assessment
For teams running async Python services, the lesson is that worker threads can hide most CPU cost from profiling that covers only the main thread.
Executive brief
Simon Willison's web-edit 0.1a1 is a small open-source app for editing the files in a folder. What makes this release notable is how its speed-ups were made. GPT-6 Astra profiled the app with Python 3.15's new built-in sampler, and Claude Opus 5.5 wrote fixes based on that report. The pull request reports that one worst-case save went from 3,963 ms to 29 ms. The profile found that 95.1% of CPU stacks came from a worker thread, so a profile of the main thread alone would have missed them (report, PR #1). No independent coverage or reproduction of these numbers was found.
What changed and event timeline
Anthropic releases Claude Opus 5.5
Cheaper than Opus 5, at $4/$20 per million input/output tokens. Aggregators report dates of Sep 22, and The Batch's write-up gives Sep 25 (,).
OpenAI ships GPT-6 Astra
Released in ChatGPT and Codex, aimed at software engineering and long-running agent work. It adds new higher reasoning-effort levels (,).
Python 3.15 released
It includes Tachyon (
profiling.sampling, PEP 799), a sampling profiler that can attach to a running process ().Web-edit 0.1a0 and the profiling report
The app was built with Codex and GPT-6 Astra so Willison could edit files from his phone over Tailscale. The same model then profiled the unmodified PyPI package under 3.15 (,).
0.1a1 released
PR #1 was co-authored with Claude Opus 5.5, merged, and tagged as a pre-release at 01:40 UTC (,).
Capabilities and access
- web-edit 0.1a1: an alpha Python web app. It browses, uploads, deletes and previews files, and edits text with CodeMirror 6.
- Models: "GPT-6 Astra Extra High" in Codex did the profiling.
- Tooling: Tachyon ships with CPython 3.15.
Read the full section
- web-edit 0.1a1: an alpha Python web app. It browses, uploads, deletes and previews files, and edits text with CodeMirror 6. It is meant to run over Tailscale (web-edit post).
- Models: "GPT-6 Astra Extra High" in Codex did the profiling. Claude Opus 5.5 wrote the code, and a Claude Code session transcript is linked from the linked post.
- Tooling: Tachyon ships with CPython 3.15. It supports all-threads (
-a) and--async-awaremodes, and claims sampling rates up to 1 MHz (docs).
Technical analysis for researchers and developers
Read the full section
- Hotspot:
preserve_endingsappeared in 64.8% of 15,296 CPU stacks.difflib.SequenceMatcher.find_longest_matchwas the leaf frame in 38.3% of samples (report). - Fixes (PR #1):
- Files with one line-ending style: simple counting and replacement instead of diffing.
- Files with mixed endings: patience-diff-style anchoring on lines that appear exactly once, to avoid quadratic slowdowns.
- Binary detection:
bytes.translate()instead of a regex. - Folder listing:
os.scandirinstead of Path objects. - Content is hashed during the write instead of re-reading the file.
- Validation: 130 tests pass on Python 3.11–3.15, including 20,000 randomized comparison cases.
- Lesson: in apps that use AnyIO worker threads, profile all threads.
Claims and evidence
All figures below are reported by the project author in his own PR. They have not been reproduced independently.
Read the full section
All figures below are reported by the project author in his own PR. They have not been reproduced independently.
| Claim | Source |
| Saving a file with one line-ending style: 61 ms → 1.1–1.7 ms | PR #1 |
| Mixed endings with scattered edits: 3,963 ms → 29 ms | PR #1 |
| HTTP throughput 6.5 → 12.7 cycles/s | PR #1 |
| 95.1% of stacks were on a worker thread | report |
| Tachyon has "virtually zero" overhead | Python docs |
Context and prior work
- Tachyon was developed by Pablo Galindo and László Kiss Kollár (gh-135953).
- Willison regularly drops Python versions once they reach end of life; Python 3.10 has just reached that point (Oct 12 archive).
- On the models, The Batch cites Artificial Analysis and Vals AI rankings that put Opus 5.5 first (The Batch).
Read the full section
- Tachyon was developed by Pablo Galindo and László Kiss Kollár (gh-135953). It is the first sampling profiler in the standard library; earlier standard-library profilers worked by instrumenting every call (docs).
- Willison regularly drops Python versions once they reach end of life; Python 3.10 has just reached that point (Oct 12 archive).
- On the models, The Batch cites Artificial Analysis and Vals AI rankings that put Opus 5.5 first (The Batch).
Limitations, safety and contested findings
- This is a single alpha project with one author.
- The 136× gain applies to a worst case (mixed endings with scattered edits), not to typical saves.
- The app was built so that credentials could be edited without passing through an LLM.
Read the full section
- This is a single alpha project with one author. The benchmarks are micro-benchmarks chosen by the author, and the test inputs are not described in detail (PR #1).
- The 136× gain applies to a worst case (mixed endings with scattered edits), not to typical saves.
- The app was built so that credentials could be edited without passing through an LLM. Exposing an editor over a network also widens the attack surface, and web-edit relies on Tailscale for access control (web-edit post).
- Sources disagree on Opus 5.5's release date (Sep 22 vs Sep 25).
Business and practitioner implications
- A workflow others can copy: let one agent profile with a standard-library tool, then hand a written report to a different vendor's agent to implement.
- Profile all threads: the 95.1% worker-thread share is a warning for FastAPI/Starlette-style services, which run blocking work in worker threads.
- Make agents prove correctness: randomized comparison tests are what made the AI-written diff algorithm reviewable.
Read the full section
- A workflow others can copy: let one agent profile with a standard-library tool, then hand a written report to a different vendor's agent to implement. Because the report is a written artifact, the step is easy to audit.
- Profile all threads: the 95.1% worker-thread share is a warning for FastAPI/Starlette-style services, which run blocking work in worker threads.
- Make agents prove correctness: randomized comparison tests are what made the AI-written diff algorithm reviewable.
- Upgrade incentive: you need Python 3.15 to use Tachyon, though the fixes themselves still run on 3.11.