Using Nautelle
Token Saver
Agents read less: filtered output, guarded reads and measured savings.
Token Saver cuts the tokens an agent spends re-reading things nobody needs in full. It changes what agents read, never what people read: questions to you, specs, pull request descriptions and design output stay complete.


What it does
For every Claude launch the runner makes on a project with the setting on:
- Command output is shortened. A covered command such as a test run,
git logor a build is filtered to the lines that matter. The agent sees a footer with the hidden line count and where the full output is. - Only allowed MCP servers load. Every other server's tool schemas cost nothing.
- History compacts at about 150k tokens, on every model.
- Reads are guarded. A whole read of a file over 64 KB or 1,500 lines is refused once with a hint, and so is a repeated read of an unchanged range. Repeating the call reads the file.
- Broad searches go to a cheaper helper, and the worker prompt is ordered so the model's cache hits.
The setting is per project, on by default, under Settings → Token saver for a project admin. Off launches agents exactly as before.
What is never hidden
The exit code is the command's own. Errors, failures, warnings and stack frames are never removed. If the filter cannot tell what a line is, or the result would not be shorter, the agent gets the output unchanged. A command no filter covers runs as written.
The filter rewrites a command only when the session's permission mode is bypassPermissions, auto or plan, no deny or ask rule matches, and the call is simple commands joined by |, &&, || or ;. It never changes what a session is allowed to run.
The raw output
The complete output of every filtered command is kept on the runner machine, and the footer gives its path. To skip filtering once, put NAUTELLE_RAW=1 in front of the command. Bypasses are counted, so a high bypass rate means the filter is in the way.
The MCP allowlist
Under Settings → Token saver, tick the MCP servers agents load. The nautelle server is always loaded, and an empty list means nautelle only. If an agent reports a missing tool, a server was left unticked.
Where the savings show
Figures are estimates, marked with a tilde: the bytes hidden divided by four, priced at the session model's input price.
- Card:
saved ≈ $xnext to the cost, and the filters used by the round. - Usage → Token saver: saved, commands, bypass rate, and cost per run before and after by run kind.
- Project → Token saver: the project's dashboard by time, filter and run kind.
A pull request description must carry the required sections. After two rewrites the third attempt passes and the card shows Description incomplete, so you know to read it.