llms

43 posts
look at it, it’s got anxiety

look at it, it’s got anxiety

what hath Amanda Askell wrought?

Mar 14, 2026

Of Monsters, Men, and Lawyers

Generalist LLMs are not lawyers, and evaluating them that way is a waste of time. Evaluating LLMs with useful specialized prompts (and eventually, with specialized legal harnesses) is where the work must happen.


L
lu.is
lu.is
Mar 2, 2026
.plan-26-02: Back from India and straight into the conservation conference

.plan-26-02: Back from India and straight into the conservation conference

Hosting the Conservation Evidence conference at Pembroke, recovering from the India trip, and keeping up with LLM developments.


A
Anil Madhavapeddy
anil.recoil.org
Jan 10, 2026
AoAH Day 25: Claude OCaml Marketplace for all your festive coding needs

AoAH Day 25: Claude OCaml Marketplace for all your festive coding needs

Wrapping up 25 days of agentic coding with a Claude Code OCaml plugin marketplace to share the skills and tools developed throughout the series.


A
Anil Madhavapeddy
anil.recoil.org
Dec 24, 2025
AoAH Day 24: Tuatara, an evolving Atom aggregator that mutates

AoAH Day 24: Tuatara, an evolving Atom aggregator that mutates

Tuatara is a feed aggregator that integrates Claude to evolve and patch its own code when encountering parsing errors, embodying the concept of self-healing software.


A
Anil Madhavapeddy
anil.recoil.org
Dec 23, 2025
AoAH Day 23: Unpac unifies git branching with package management

AoAH Day 23: Unpac unifies git branching with package management

Introducing unpac, a tool that unifies git and package management into a single workflow where all code dependencies live in one repository as trackable branches.


A
Anil Madhavapeddy
anil.recoil.org
Dec 22, 2025
AoAH Day 22: Assembling monorepos for agentic OCaml development

AoAH Day 22: Assembling monorepos for agentic OCaml development

Materialising opam metadata into git submodules and monorepos, enabling cross-cutting fixes and unified odoc3 documentation across dozens of OCaml libraries.


A
Anil Madhavapeddy
anil.recoil.org
Dec 21, 2025
AoAH Day 21: Complete dynamic HTML5 validation in OCaml and the browser

AoAH Day 21: Complete dynamic HTML5 validation in OCaml and the browser

Porting the W3C's Nu HTML Validator from Java to OCaml and running in the browser dynamically


A
Anil Madhavapeddy
anil.recoil.org
Dec 20, 2025
AoAH Day 20: Human language detection in native code, JS and wasm

AoAH Day 20: Human language detection in native code, JS and wasm

Porting the Nu HTML Validator's language detection to OCaml, then optimizing from 115MB to 28MB and fixing WASM array limits for browser deployment.


A
Anil Madhavapeddy
anil.recoil.org
Dec 19, 2025
AoAH Day 19: Zulip bot framework to bring Vicuna the friendly camel back

AoAH Day 19: Zulip bot framework to bring Vicuna the friendly camel back

Building an OCaml Zulip bot framework with functional handlers, and pivoting from TOML to INI codecs for Python configparser compatibility


A
Anil Madhavapeddy
anil.recoil.org
Dec 18, 2025
AoAH Day 18: TOML 1.1 codecs directly from the spec and paper

AoAH Day 18: TOML 1.1 codecs directly from the spec and paper

Building tomlt, a pure OCaml TOML 1.1 parser with bidirectional codecs following the jsont design patterns


A
Anil Madhavapeddy
anil.recoil.org
Dec 17, 2025
AoAH Day 17: OCaml JMAP to plaster my painful email papercuts

AoAH Day 17: OCaml JMAP to plaster my painful email papercuts

Building an OCaml JMAP client that runs in browsers and CLI, then using it to build personalised email workflows for taming notification overload.


A
Anil Madhavapeddy
anil.recoil.org
Dec 16, 2025
AoAH Day 16: Vibesplaining JSON Pointers using OCaml/Javascript

AoAH Day 16: Vibesplaining JSON Pointers using OCaml/Javascript

Building interactive OCaml tutorials that compile to JavaScript, using agents to generate executable documentation that teaches protocols like JSON Pointer while you code review.


A
Anil Madhavapeddy
anil.recoil.org
Dec 15, 2025
AoAH Day 15: Porting a complete HTML5 parser and browser test suite

AoAH Day 15: Porting a complete HTML5 parser and browser test suite

Vibespiling JustHTML from Python to pure OCaml, achieving 100% pass rate on the browser html5lib test suite using agentic workflows.


A
Anil Madhavapeddy
anil.recoil.org
Dec 14, 2025
AoAH Day 14: Debugging a Karakeep CLI against the live service

AoAH Day 14: Debugging a Karakeep CLI against the live service

Vibe coding an OCaml library for the Karakeep bookmarking service by giving an agent a live API key and letting it debug jsont codecs against the real service.


A
Anil Madhavapeddy
anil.recoil.org
Dec 13, 2025
AoAH Day 13: Heckling an OCaml HTTP client from 50 implementations in 10 languages

AoAH Day 13: Heckling an OCaml HTTP client from 50 implementations in 10 languages

Agentically synthesising a batteries-included OCaml HTTP client by gathering recommendations from fifty open-source implementations across JavaScript, Python, Java, Rust, Swift, Haskell, Go, C++, PHP and shell.


A
Anil Madhavapeddy
anil.recoil.org
Dec 12, 2025
AoAH Day 12: Eio Connection pooling and event tracing

AoAH Day 12: Eio Connection pooling and event tracing

Building a TCP/TLS connection pooling library for Eio with DNS-based load balancing, stacked error handling, and self-contained HTML visualisations for stress test results.


A
Anil Madhavapeddy
anil.recoil.org
Dec 11, 2025
AoAH Day 11: HTTP Cookies and vibing RFCs for breakfast

AoAH Day 11: HTTP Cookies and vibing RFCs for breakfast

Synthesizing three RFC-compliant libraries (punycode, public-suffix, and cookeio) directly from Internet RFC specifications, establishing a workflow for automating standards implementation with proper cross-referencing to spec sections.


A
Anil Madhavapeddy
anil.recoil.org
Dec 9, 2025
AoAH Day 10: Building a TUI for Sortal using Mosaic

AoAH Day 10: Building a TUI for Sortal using Mosaic

Building a simpler single-process terminal UI for Sortal using Mosaic's effects-based direct-style API, with Eio integration and discovering multimodal image debugging for terminal layouts.


A
Anil Madhavapeddy
anil.recoil.org
Dec 9, 2025
AoAH Day 9: Adding a Bonsai terminal UI to Sortal

AoAH Day 9: Adding a Bonsai terminal UI to Sortal

Experimenting with OxCaml's bonsai_term framework for Sortal's terminal UI, navigating Eio-Async interoperability challenges through JSON-RPC while discovering image-based debugging techniques for terminal applications.


A
Anil Madhavapeddy
anil.recoil.org
Dec 8, 2025
AoAH Day 8: Building a contacts CLI manager with Sortal

AoAH Day 8: Building a contacts CLI manager with Sortal

Creating Sortal, a CLI contacts management application using Yaml storage, XDG directories, Git-based synchronization, and integrating all previously built libraries into a cohesive CLI tool.


A
Anil Madhavapeddy
anil.recoil.org
Dec 7, 2025
AoAH Day 7: Converting between JSON and Yaml with yamlt

AoAH Day 7: Converting between JSON and Yaml with yamlt

Building yamlt to enable jsont codec definitions to work with both JSON and Yaml, providing data manipulation with location tracking and good error messages for both formats.


A
Anil Madhavapeddy
anil.recoil.org
Dec 6, 2025
AoAH Day 6: Getting a Yaml 1.2 implementation in pure OCaml

AoAH Day 6: Getting a Yaml 1.2 implementation in pure OCaml

Implementing a pure OCaml Yaml 1.2 parser using bytesrw by synthesizing from the specification and existing C library behavior, passing thousands of test suite cases while being 20% faster than the C-based implementation.


A
Anil Madhavapeddy
anil.recoil.org
Dec 5, 2025
AoAH Day 5: Bytesrw Eio adapters and automating opam metadata

AoAH Day 5: Bytesrw Eio adapters and automating opam metadata

Building Bytesrw-Eio adapters for composable byte stream I/O while discovering Claude Skills as a powerful way to automate opam package metadata management through reusable workflow templates.


A
Anil Madhavapeddy
anil.recoil.org
Dec 4, 2025
AoAH Day 4: Going recursive with Claudeio for Claude

AoAH Day 4: Going recursive with Claudeio for Claude

Creating OCaml bindings for the Claude API using Eio and jsont codecs by reverse-engineering the JSON-RPC protocol from Python and Go SDKs, enabling Claude to write more Claude-powered OCaml code.


A
Anil Madhavapeddy
anil.recoil.org
Dec 3, 2025
AoAH Day 3: XDG filesystem paths using Eio capabilities

AoAH Day 3: XDG filesystem paths using Eio capabilities

Building an XDG Base Directory Specification library with Eio capabilities and Cmdliner integration, providing sandboxed filesystem access patterns with full environment variable and CLI override support.


A
Anil Madhavapeddy
anil.recoil.org
Dec 2, 2025
AoAH Day 2: Building an OCaml JSONFeed library

AoAH Day 2: Building an OCaml JSONFeed library

Implementing a JSONFeed specification library using jsont codecs, discovering how Claude can automate the construction of complex combinators from prose specifications with excellent error messages.


A
Anil Madhavapeddy
anil.recoil.org
Dec 1, 2025
AoAH Day 1: Building a Base32 Crockford library in OCaml

AoAH Day 1: Building a Base32 Crockford library in OCaml

Building a Base32 Crockford encoding library in OCaml using Claude Code, establishing the development workflow with sandboxed Docker containers and local development environments.


A
Anil Madhavapeddy
anil.recoil.org
Nov 30, 2025
The AI French Connection to the Practice of Science

The AI French Connection to the Practice of Science

Reflections on the Franco-British AI collaboration workshops exploring how AI is transforming scientific practice, plus follow-up funding for the Conservation Copilot project.


A
Anil Madhavapeddy
anil.recoil.org
Nov 30, 2025
2025 Advent of Agentic Humps: Building a useful O(x)Caml library every day

2025 Advent of Agentic Humps: Building a useful O(x)Caml library every day

An exploration of agentic programming through building useful OCaml libraries daily using Claude Code while establishing groundrules for responsible development.


A
Anil Madhavapeddy
anil.recoil.org
Nov 30, 2025

Grokked & Pilfered

Elon Musk’s new Wikipedia clone has been criticized for nicking Wikipedia. Something else it also does: Aggressively cite the Tedium archive.

Oct 29, 2025
Presenting our Ecology of the Internet ideas at Aarhus 2025

Presenting our Ecology of the Internet ideas at Aarhus 2025

Presentation at Aarhus 2025 on Internet ecology, proposing AI-driven software diversity to fight protocol ossification and create more resilient networks.


A
Anil Madhavapeddy
anil.recoil.org
Aug 21, 2025
Tracking locations with OwnTracks, Life Cycle and Home Assistant

Tracking locations with OwnTracks, Life Cycle and Home Assistant

Setting up self-hosted location tracking using OwnTracks and reverse engineering Life Cycle app data with Claude Code for field work in Botswana.


A
Anil Madhavapeddy
anil.recoil.org
Aug 13, 2025

The Game Genie Generation

For an unlicensed game accessory, the Game Genie sure casts a long shadow. It reshaped the games we already owned—and had a profound effect on copyright law.

Jul 21, 2025

Cresting the OCaml AI humps

Community efforts to improve agentic coding experience for OCaml including MCP libraries, opam embeddings, and tooling improvements.


A
Anil Madhavapeddy
anil.recoil.org
Jul 17, 2025
Is AI poisoning the scientific literature? Our comment in Nature

Is AI poisoning the scientific literature? Our comment in Nature

Nature comment on AI-generated paper threats to evidence synthesis proposing federated living evidence databases with human-in-loop review.


A
Anil Madhavapeddy
anil.recoil.org
Jul 7, 2025

Explaining The Vibes

AI gets a lot of hate these days, and it often frustrates me too, but let’s be clear about what it can realistically do. Here’s my attempt to explain by example.

New preprint survey on energy-aware deep learning on embedded hardware

New preprint survey on energy-aware deep learning on embedded hardware

Survey paper on energy-aware approaches for optimizing deep learning training and inference on embedded devices.


A
Anil Madhavapeddy
anil.recoil.org
May 19, 2025
Out-of-the-box LLMs are not ready for conservation decision making

Out-of-the-box LLMs are not ready for conservation decision making

PLOS One publication showing pretrained LLMs perform poorly on conservation questions but improve dramatically with Conservation Evidence database training.


A
Anil Madhavapeddy
anil.recoil.org
May 15, 2025

Gunkroad

The creator-economy service Gumroad decided to open-source its platform at a suspiciously convenient time. (And even “open source” might be stretching it.)

A Clarifying Moment

In case you were on the fence about whether OpenAI was a positive force in the world, they sort of revealed their hand this week by leaning into a meme.

Don’t Call Me, I’ll Call You

On large language models, artificial intelligence, DeepSeek, and trying to find the middle lane between skepticism and surety. I mention bionic arms a lot for some reason.

Jan 29, 2025

When Robots Aggregate

The mess between Forbes and Perplexity AI highlights how soulless and extractive aggregation can be in the wrong hands. It’s the wrong direction for LLMs.