Per-pane optimizers
Every pane in Senkani carries five feature switches — Filter, Cache, Secrets, Indexer, Terse — visible as five colored capitals in the pane header. Click any letter to open that pane's settings panel, where each toggle sits next to a one-line explanation and a link back to this page. State is per-pane: a research pane can run in terse mode while the build pane stays full-fidelity.
Why per-pane
A global "compression on / off" switch can't tell the difference between a pane where you want every byte (a code-review session) and a pane where you want maximum token savings (an exploratory research thread). Senkani's compression surfaces all run in the same process — the per-pane flags decide which ones actually run for each session, so the same workspace can mix high-fidelity and high-compression contexts side by side without restarting anything. The five switches are deliberately granular: you can keep secret redaction on while turning the cache off for a pane that's intentionally re-reading the same file every iteration.
F — Filter
Filter is the input-compression layer. Every tool output that comes back from senkani_exec runs through 24 command-specific reducers: npm install output collapses from hundreds of progress lines to a 2-line summary, git clone drops its enumeration noise, cargo build deduplicates repeated warnings. ANSI escape codes are stripped, repeated blank-line runs are collapsed, and progress-bar carriage-return spam is squashed before the agent ever sees it. Filter is the cheapest savings in the stack — typical reductions land in the 60-90% range on build and test output, and the agent reading the compressed version generally produces better next-step decisions than one drowning in unprocessed terminal scrollback. Turn it off only when you're debugging the filter itself or auditing what raw tool output actually looked like. See compression layer for the full input/redundancy/output picture and the filter option reference for the per-command rules.
C — Cache
Cache is the within-session memo for file reads. When the agent reads the same file twice — and on real sessions, this happens constantly — Senkani returns the cached content keyed on (path, mtime) instead of re-processing the read. Unchanged files come back instantly and contribute zero new tokens; if the file's mtime has moved, the cache transparently re-reads from disk and re-populates. Typical savings on read-heavy sessions are 50-99% of the byte budget that would otherwise be repeated reads — a single browse-then-edit loop can pull the same header file ten times in a session, and only the first one pays the token cost. Turn it off if you're intentionally testing a write-then-read cycle and need to see freshly written bytes flow through every read (rare in practice; the mtime check usually catches this for you). The cache is per-pane and per-session; killing the pane clears it. See cache option reference.
S — Secrets
Secrets is the redaction layer that runs between every tool output and the agent. It looks for API keys, JWTs, OAuth tokens, private keys, and a dozen other patterns — both regex matches against common secret shapes and an entropy fallback for high-randomness strings that fit no known shape — and replaces matched substrings with a stable placeholder before the model sees the output. Redaction happens locally; the model never receives the original bytes. This is the only toggle that should stay on by default unless you have a deliberate reason to turn it off (e.g., you're auditing the redactor itself on a fixture you control). Even on panes where you've taken every other safeguard, leaving Secrets off is a one-step path to a leaked credential ending up in agent context or — worse — in a downstream log. See security posture for the broader trust-boundary model and secrets option reference for the supported pattern families.
I — Indexer
Indexer routes symbol-lookup work to the tree-sitter index Senkani maintains for your project, instead of letting the agent grep entire files. With Indexer on, an "outline this file" request returns just the symbol names and line ranges (senkani_outline), a "find this function" request returns the matching symbol's lines (senkani_fetch), and a "search for X" request searches the index in milliseconds (senkani_search). Reading the full body of a 2,000-line file when the agent only needed the signature of one function costs roughly 95% more tokens than the indexed path. Turn it off only when you genuinely need full-file reads — most often during a refactor where context above and below the symbol matters as much as the symbol itself. See indexer option reference.
T — Terse
Terse is the only switch that shrinks what the model emits, not what it reads. It does two things: injects a system-prompt clause that asks the model to skip preamble, narration, and trailing summaries; and strips filler phrases from upstream tool outputs so the model isn't trained mid-session to mimic them. Typical output-token reductions on agent-driven sessions are in the 50-75% range, with the largest savings on chatty models that would otherwise restate the question, narrate each tool call, and wrap with a recap. Terse defaults to off — unlike the other four toggles — because some interactive sessions genuinely want the narration (live pair-programming, teaching, debugging where you want the model to think out loud). Turn it on for batch agent work, long unattended runs, and anywhere you're paying for output tokens at scale. See compression layer for how Terse fits the input/redundancy/output split.
How to toggle
Click any of the five letters in a pane header to open that pane's settings panel. The Optimization section lists all five with their explanations and a switch each; flip the switch and the change takes effect immediately for the current session. Settings persist per-pane to ~/.senkani/panes/{paneId}.env and reload with the pane. Environment-variable overrides (SENKANI_FILTER=on|off, etc.) and the senkani_session MCP toggle are available for scripted control; see the FCSIT options reference for the full surface.