# Tool: Claude's local intern

URL: https://insidethemachine.ai/build/local-intern
Part: B-06. Family: Creator ops. Status: Runs today (CPU test, speed not measured).
Runs today. Tested in a cloud container on CPU with Qwen3.5 0.8B. Speed not measured.

A small MCP server that lets Claude Code hand bulk jobs to your own machine: draft, sort, transcribe, caption. Each job comes back with a token receipt.

- Input: A job from Claude Code (draft, classify, transcribe or caption).
- Output: The result, plus a receipt: local tokens used and the Claude tokens it saved (an estimate, labelled as one).
- Runs from: 8 GB of memory.
- Tools: ollama (https://insidethemachine.ai/setups/ollama.md), whisper-cpp (https://insidethemachine.ai/setups/whisper-cpp.md), claude-code (https://insidethemachine.ai/setups/claude-code.md)

## Claude's job

- Plans the work and hands the bulk to the intern.
- Reviews what comes back.

What Claude never sees: The intern talks only to Ollama and whisper.cpp on your computer.

## Local parts per memory size

Data: models.json 2026-10-15, speech.json 2026-10-15, images.json 2026-10-15.

| memory GB | Drafter | Decider (Local Jev) | Transcriber |
|---|---|---|---|
| 8 | Qwen3.5 4B (needs 5.8 GB, runs, but tight) | Qwen3.5 4B (needs 5.8 GB, runs, but tight) | Distil-Whisper large-v3.5 (needs 2 GB, runs well) |
| 16 | Gemma 4 12B (needs 11.2 GB, runs, but tight) | Qwen3.5 0.8B (needs 2.6 GB, runs well) | Distil-Whisper large-v3.5 (needs 2 GB, runs well) |
| 24 | Gemma 4 12B (needs 11.2 GB, runs well) | Qwen3.5 4B (needs 5.8 GB, runs well) | Distil-Whisper large-v3.5 (needs 2 GB, runs well) |
| 32 | Qwen3.8 27B (needs 22.7 GB, runs, but tight) | Qwen3.5 4B (needs 5.8 GB, runs well) | Distil-Whisper large-v3.5 (needs 2 GB, runs well) |
| 48 | Qwen3.8 27B (needs 22.7 GB, runs well) | Gemma 4 12B (needs 11.2 GB, runs well) | Distil-Whisper large-v3.5 (needs 2 GB, runs well) |
| 64 | Qwen3.8 27B (needs 22.7 GB, runs well) | Gemma 4 12B (needs 11.2 GB, runs well) | Distil-Whisper large-v3.5 (needs 2 GB, runs well) |
| 96 | Qwen3.8 27B (needs 22.7 GB, runs well) | Qwen3.8 27B (needs 22.7 GB, runs well) | Distil-Whisper large-v3.5 (needs 2 GB, runs well) |
| 128 | Qwen3.8 27B (needs 22.7 GB, runs well) | Qwen3.8 27B (needs 22.7 GB, runs well) | Distil-Whisper large-v3.5 (needs 2 GB, runs well) |
| 192 | Qwen3.8-Flash-Next (125B-A6B) (needs 140 GB, runs, but tight) | Qwen3.8 27B (needs 22.7 GB, runs well) | Distil-Whisper large-v3.5 (needs 2 GB, runs well) |
| 256 | Qwen3.8-Flash-Next (125B-A6B) (needs 140 GB, runs well) | Qwen3.8 27B (needs 22.7 GB, runs well) | Distil-Whisper large-v3.5 (needs 2 GB, runs well) |
| 512 | Qwen3.8-Flash-Next (125B-A6B) (needs 140 GB, runs well) | Qwen3.8 27B (needs 22.7 GB, runs well) | Distil-Whisper large-v3.5 (needs 2 GB, runs well) |

How each part is picked:
- Drafter: Writes the first draft of many small things: summaries, title options, reply drafts. Rule: The smartest chat model that fits your usable memory and has an Ollama download (the same model the /do recipes install). (models.json)
- Decider (Local Jev): Answers typed questions about each item: pick one, give a score, or yes/no. It never writes. Rule: The smartest chat model with an Ollama download that needs no more than a third of your usable memory. Smaller models answer sooner, and a decider only picks a label. If no model is that small, the drafter's model decides too. (models.json)
- Transcriber: Turns speech into text with timestamps. Rule: The most accurate speech-to-text model that fits and runs in whisper.cpp (Mac, Windows and Linux). Accuracy is the Open ASR word error rate: lower is better. (speech.json)
- Fit: We count 75% of your memory as usable for AI. The rest is for the system and your apps. Runs well: the model fits in usable memory with at least 10% to spare. Runs, but tight: it fits, but less than 10% of usable memory is left. Close other apps first. Needs N GB+: it does not fit. N is the smallest memory size it fits in. Size unknown: we do not know how much memory it needs.

## Steps

1. **Claude plans** (Claude; stage id `plan`): Claude splits the job and calls the intern for the bulk work.
2. **The intern does the bulk** (Your machine; stage id `bulk`): draft, classify (through Local Jev), transcribe or caption, on your machine.
3. **A receipt per job** (A script; stage id `receipt`): Local tokens used, and an estimate of the Claude tokens the job would have cost.
4. **Claude reviews** (Claude; stage id `review`): Claude checks the result and does the hard part.
5. **Share your run (optional)** (You; stage id `share`): At the end, the script shows exactly what it would upload: your chip, memory, the models, how long each stage took and the token counts. No prompts, no outputs, no file names. Say yes and it goes to our review queue. Nothing is public until we approve it.

## Make it yours

- Read what the intern wrote before you publish it.

## Receipts

- Claude tokens, this recipe: not run yet
- Claude tokens, all in Claude: not run yet
- Local minutes: not run yet
- Claude dollars (estimate): not run yet

No approved runs yet. Blueprints now, numbers later. We run every recipe on a 128 GB Mac Studio from 10 Nov 2026, then publish the receipts.

## Run it

Source: https://insidethemachine.ai/tools/local-intern/local-intern.mjs

```sh
mkdir -p itm-tools/local-jev itm-tools/local-intern && cd itm-tools
curl -fsSL https://insidethemachine.ai/tools/local-intern/local-intern.mjs -o local-intern/local-intern.mjs
curl -fsSL https://insidethemachine.ai/tools/local-jev/local-jev.mjs -o local-jev/local-jev.mjs
curl -fsSL https://insidethemachine.ai/tools/itm-share.mjs -o itm-share.mjs
cd local-intern
claude mcp add local-intern -e INTERN_DRAFT_MODEL=<your model> -- node "$PWD/local-intern.mjs"
```

## Share your run

Opt-in. The script shows exactly what it would upload and asks first. It sends: Your chip, memory, graphics card and operating system; The recipe and the models you used; How long each stage took; Token counts: Claude in and out, local in and out; How many items came out; Tool versions; A fingerprint (SHA-256) of the log and up to 15 cleaned log lines; A handle you pick (not your name or email). Never: Your prompts or the model's answers; Your files, file names or folder paths; Emails, links, keys or IP addresses (the server rejects any upload that has one); Your IP address in plain form: we keep a scrambled copy for rate limits only. Nothing is public until a person approves it. Agents can submit with the `submit_run` tool of https://insidethemachine.ai/mcp.

Privacy: https://insidethemachine.ai/privacy.md
