Skip to content

Watch one observation pass through the filter

Every time the agent runs a Bash command, its output passes a row of checks before the model reads it. Fonn shortens the output only when every check passes. This page runs the same compiled filter code as the CLI, in your browser. Nothing is sent anywhere.

What each check means

Filter mode
off stops here. observe runs every check and archives the original, then delivers the full output anyway, so you can see what would change.
Plain shell text
The response must be ordinary stdout text. Images, interrupted commands, error responses and structured content pass through.
Not already filtered
Output that already carries a Fonn footer or duplicate note is never reduced twice.
At least 2,000 characters
Short output has little to gain, so it is delivered as is.
Recognized format or repeated lines
Colour codes and carriage returns are refused first. A format adapter runs when the command is one direct call to PHPUnit, Pest, artisan test, PHPStan analyse, tsc, pytest, Jest or Vitest. npm test and friends try Jest and Vitest and the output shows the tool's own summary markers. Pipes, ;, &&, quotes and $ skip the adapters. Otherwise, at the standard level, the generic reduction looks for 3 or more identical adjacent lines. At the similar level it also looks for 4 or more lines that differ only in numbers or IDs. The strict level stops after the adapters.
Safe reduction exists
The adapter removes only exact progress rows or adjacent identical diagnostics. If nothing matches, nothing changes.
Saves at least 256 characters
The saving must outweigh the recovery footer that gets added.
Original archived
The full response is written to the local store before anything is shortened. If archiving fails, the original is delivered.

What the filter never touches

  • Model reasoning, conversation history and your instructions.
  • Source files and anything on disk outside its own archive.
  • Failures and warnings. Claude Code and Codex merge a command's stderr into the output, and those lines follow the same rules.
  • Unknown formats and arbitrary MCP payloads, apart from runs of identical lines.
  • Lines that mention errors, failures or warnings are never merged by similarity.

Native subagents inherit the same hooks, so their supported Bash observations go through these exact checks. Read the filtering guide or the adapter source for details.

Install Fonn