Inside The Machine

← All business recipes

B-06Tool · assembly sheet

Claude's local intern

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.

Title blockbuild.ts

Part no.
B-06
Family
Creator ops
Runs from
8 GBParts run one at a time
Status
Partly tested
In
A job from Claude Code (draft, classify, transcribe or caption).
Out
The result, plus a receipt: local tokens used and the Claude tokens it saved (an estimate, labelled as one).
Note
Runs today. Tested in a cloud container on CPU with Qwen3.5 0.8B. Speed not measured.
1Claude's job

Claude does the few hard parts.

Planning, the hard writing and the final review. That takes few tokens.

Claude does
  • Plans the work and hands the bulk to the intern.
  • Reviews what comes back.
Claude never sees

The intern talks only to Ollama and whisper.cpp on your computer.

2Local partsFig. 1 · Parts listmodels.json ·

Your machine does the bulk.

Find your memory. Each row names the model for each part. Free, private, on your computer.

The model for each part at each memory size. Parts run one at a time.models.json · speech.json ·
No.MemoryDrafterDecider (Local Jev)Transcriber
SZ-018 GB6 GB usableQwen3.5 4Bneeds 5.8 GBRuns, but tightQwen3.5 4Bneeds 5.8 GBRuns, but tightDistil-Whisper large-v3.5needs 2 GBRuns well
SZ-0216 GB12 GB usableGemma 4 12Bneeds 11.2 GBRuns, but tightQwen3.5 0.8Bneeds 2.6 GBRuns wellDistil-Whisper large-v3.5needs 2 GBRuns well
SZ-0324 GB18 GB usableGemma 4 12Bneeds 11.2 GBRuns wellQwen3.5 4Bneeds 5.8 GBRuns wellDistil-Whisper large-v3.5needs 2 GBRuns well
SZ-0432 GB24 GB usableQwen3.8 27Bneeds 22.7 GBRuns, but tightQwen3.5 4Bneeds 5.8 GBRuns wellDistil-Whisper large-v3.5needs 2 GBRuns well
SZ-0548 GB36 GB usableQwen3.8 27Bneeds 22.7 GBRuns wellGemma 4 12Bneeds 11.2 GBRuns wellDistil-Whisper large-v3.5needs 2 GBRuns well
SZ-0664 GB48 GB usableQwen3.8 27Bneeds 22.7 GBRuns wellGemma 4 12Bneeds 11.2 GBRuns wellDistil-Whisper large-v3.5needs 2 GBRuns well
SZ-0796 GB72 GB usableQwen3.8 27Bneeds 22.7 GBRuns wellQwen3.8 27Bneeds 22.7 GBRuns wellDistil-Whisper large-v3.5needs 2 GBRuns well
SZ-08128 GB96 GB usableQwen3.8 27Bneeds 22.7 GBRuns wellQwen3.8 27Bneeds 22.7 GBRuns wellDistil-Whisper large-v3.5needs 2 GBRuns well
SZ-09192 GB144 GB usableQwen3.8-Flash-Next (125B-A6B)needs 140 GBRuns, but tightQwen3.8 27Bneeds 22.7 GBRuns wellDistil-Whisper large-v3.5needs 2 GBRuns well
SZ-10256 GB192 GB usableQwen3.8-Flash-Next (125B-A6B)needs 140 GBRuns wellQwen3.8 27Bneeds 22.7 GBRuns wellDistil-Whisper large-v3.5needs 2 GBRuns well
SZ-11512 GB384 GB usableQwen3.8-Flash-Next (125B-A6B)needs 140 GBRuns wellQwen3.8 27Bneeds 22.7 GBRuns wellDistil-Whisper large-v3.5needs 2 GBRuns well
Drafter

Writes the first draft of many small things: summaries, title options, reply drafts.

How we pick it: The smartest chat model that fits your usable memory and has an Ollama download (the same model the /do recipes install).

Decider (Local Jev)

Answers typed questions about each item: pick one, give a score, or yes/no. It never writes.

How we pick it: 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.

Transcriber

Turns speech into text with timestamps.

How we pick it: 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.

Fit labels

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.

3Steps

5 steps.

Each step says who does it: you, Claude, your machine or a script.

  1. Claudeplan

    Claude plans

    Claude splits the job and calls the intern for the bulk work.

  2. Your machinebulk

    The intern does the bulk

    draft, classify (through Local Jev), transcribe or caption, on your machine.

  3. A scriptreceipt

    A receipt per job

    Local tokens used, and an estimate of the Claude tokens the job would have cost.

  4. Claudereview

    Claude reviews

    Claude checks the result and does the hard part.

  5. Youshare

    Share your run (optional)

    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.

4Make it yours

The step only you can do.

Before you publish
  • Read what the intern wrote before you publish it.
5Receiptsapproved runs

What a run costs.

Claude tokens for this recipe and for doing it all in Claude, local minutes and dollars. Only from runs a person has approved.

Receipts

No runs yet
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
Not run yet

Not run yetBlueprints now, numbers later. We run every recipe on a 128 GB Mac Studio from 10 Nov 2026, then publish the receipts.

6Run ittools/

Get it and run it.

You need Node 20 or newer and Ollama with one model. Read a script before you run it.

local-intern.mjsClaude's local intern
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"
7Share your run

Share your run. Only if you want to.

At the end, the script shows exactly what it would upload and asks first. A person reviews every run before it shows here.

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)
It never sends
  • 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

Agents can share with the submit_run tool of https://insidethemachine.ai/mcp. Privacy

Agent view · text/markdown · or send Accept: text/markdown
# 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