---
title: AI
canonical: 'https://www.dealmobile.co.uk/writing/tag/ai'
url: 'https://www.dealmobile.co.uk/writing/tag/ai'
type: Tags
---

# AI

## [Safe by default: a local AI server and a cheap model with a shell](https://www.dealmobile.co.uk/writing/safe-by-default-a-local-ai-server-and-a-cheap-model-with-a-shell.md)

Published 2026-10-25

A hardening pass on Mullet: a local server that a web page could not be stopped from calling, tools that fetched any address, and cheap models with more tools than they needed. What each guard checks and where to change it.

## [Every session starts with one question: what’s the budget?](https://www.dealmobile.co.uk/writing/every-session-starts-with-one-question.md)

Published 2026-10-25

A Claude Code hook opens each session by asking how much to spend and how much to delegate to cheaper models, then makes Mullet’s jobs follow the answer.

## [Mullet is free for your company](https://www.dealmobile.co.uk/writing/mullet-is-free-for-your-company.md)

Published 2026-10-25

Mullet’s licence used to say one developer, one running instance. It now allows free production use for any purpose, including inside a company, with one exclusion: offering Mullet to others as a service.

## [We checked the bill, and our ledger was wrong by half](https://www.dealmobile.co.uk/writing/we-checked-the-bill-and-our-ledger-was-wrong-by-half.md)

Published 2026-10-25

Mullet’s ledger said about $38 for a weekend of jobs. The providers billed about $50. How I found the gap, why one OpenRouter model was recorded at about a third of its cost, and the checks that now catch it.

## [Why Mullet doesn’t use FreeLLMAPI](https://www.dealmobile.co.uk/writing/why-mullet-doesnt-use-freellmapi.md)

Published 2026-10-25

FreeLLMAPI puts dozens of free LLM tiers behind one endpoint, and it is a good tool for what it says it is for. Mullet 2 needs to know which model did each step and whose terms apply to my code, so it uses one named OpenRouter free model, for public repos only, instead. That rung hasn’t run yet.

## [The delegation ladder, or who does each step](https://www.dealmobile.co.uk/writing/the-delegation-ladder.md)

Published 2026-10-25

How Mullet 2 hands each step of a coding job to the cheapest worker that can pass its checks: free and local models first, then Kimi and OpenRouter, Claude last, with the order set by how much of my Claude week is left.

## [Running your own Claude subscription unattended](https://www.dealmobile.co.uk/writing/running-your-own-claude-subscription-unattended.md)

Published 2026-10-25

Mullet 2 drives your own claude -p, touches no credentials, pauses at usage limits, and reads usage from the statusline. Plus an API key trap worth knowing.

## [Sandboxing an AI coding worker](https://www.dealmobile.co.uk/writing/sandboxing-an-ai-coding-worker.md)

Published 2026-10-25

How Mullet 2 keeps a coding worker in a private clone behind bubblewrap, and what probing the real Claude Code binary turned up that the docs did not.

## [Gates, not a model’s word](https://www.dealmobile.co.uk/writing/gates-not-a-models-word.md)

Published 2026-10-25

How Mullet 2 decides a coding step is done: eight gates that read the diff and the test results, and a reviewer that can block a step but never pass one.

## [Mullet 2, coding jobs you can leave running](https://www.dealmobile.co.uk/writing/mullet-2-coding-jobs-you-can-leave-running.md)

Published 2026-10-25

Mullet 2 plans a coding job, runs it unattended in a sandboxed clone, and passes each step only on evidence. Why I rebuilt it, and how to try it.

## [A Markdown version of every page, for AI agents](https://www.dealmobile.co.uk/writing/a-markdown-version-of-every-page.md)

Published 2026-10-23

Why every page on this site now has a Markdown version for coding agents, the three ways an agent finds it, what goes into it, and how it stays out of search results and caches.

## [Letting an agent drive the TV](https://www.dealmobile.co.uk/writing/letting-an-agent-drive-the-tv.md)

Published 2026-10-23

The rules a coding agent worked under while it changed a TV we were still watching: only changes that can be undone, small batches with a person testing in between, a log of everything, and the mistakes that added the rest.

## [Picking the cheapest model that can do the job](https://www.dealmobile.co.uk/writing/picking-the-cheapest-model-that-can-do-the-job.md)

Published 2026-10-21

How Mullet sizes up a task, picks the cheapest model that clears a quality floor for it, and carries on when OpenRouter withdraws a model without notice.

## [Indexing code by function, class and method](https://www.dealmobile.co.uk/writing/indexing-code-by-function-class-and-method.md)

Published 2026-10-21

How Trove splits source code into functions, classes and methods with tree-sitter, re-indexes only the files that changed, and where its extractors fall short.

## [Combining keyword and vector search in Trove](https://www.dealmobile.co.uk/writing/combining-keyword-and-vector-search.md)

Published 2026-10-20

How Trove runs BM25 and vector search side by side, puts their scores on one scale, and lets a cross-encoder decide the final order, with an example of the reranker overruling both.

## [Checking a delegate’s edits before trusting them](https://www.dealmobile.co.uk/writing/checking-a-delegates-edits.md)

Published 2026-10-20

How Mullet decides what a cheaper model actually changed, and flags the edits worth a second look, without asking another model and without trusting the first one’s word.

---

Index of this site: [llms.txt](https://www.dealmobile.co.uk/llms.txt)
