mcpField
C
cco-config

cco-config

github.com/egorfedorovAgent workflows12550 installsUpdated 1d ago
Repository

About cco-config

cco-config exposes range-validated settings for the Claude Context Optimizer in a JSON configuration file. It is for users tuning optimizer behavior, with commands to inspect, change, and reset thresholds.

Key features

  1. 01Show current threshold values
  2. 02Get and set individual settings
  3. 03Validate values against allowed ranges
  4. 04Reset one or all settings
  5. 05Configure file-read and prompt thresholds

Use cases

  1. 01Adjust how many repeated reads trigger warnings
  2. 02Tune Read Cache staleness behavior
  3. 03Change prompt-length guidance thresholds
  4. 04Restore selected settings or defaults

MCP support

It is a configuration skill and does not describe MCP functionality.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/egorfedorov/claude-context-optimizer --skill cco-config

After installing, type/cco-configin Claude Code to confirm it loaded.

Details

From the project README

CCO Config — tune how aggressive the optimizer is

CCO's behavior knobs used to be magic numbers spread across four modules. This surfaces them, range-validated, in ~/.claude-context-optimizer/config.json under thresholds.

The plugin root is the directory containing src/config.js. Run everything from there.

Parse $ARGUMENTS:

show (or no arguments)

node ${CLAUDE_PLUGIN_ROOT}/src/config.js

Print the table as-is. * marks values the user set; ! marks a stored value that failed validation and is being ignored in favour of the default. If any ! rows appear, point them out — a typo there means a knob silently isn't doing what the user thinks.

get <key>

node ${CLAUDE_PLUGIN_ROOT}/src/config.js get <key>

set <key> <value>

node ${CLAUDE_PLUGIN_ROOT}/src/config.js set <key> <value>

Exits non-zero with the valid range on a bad value or unknown key — relay that message rather than guessing a correction. After a successful set, say which behavior it changes (see the table below), because the effect is not obvious from the key name alone.

reset [key]

node ${CLAUDE_PLUGIN_ROOT}/src/config.js reset <key>    # one key
node ${CLAUDE_PLUGIN_ROOT}/src/config.js reset          # everything back to defaults

Resetting everything discards all the user's tuning — confirm first unless they were explicit ("reset all", "вернуть всё по умолчанию").

The keys

KeyDefaultWhat it changes
rereadWarnAt3reads of an unedited file before the first re-read warning
rereadEscalateAt5reads before the "put it in CLAUDE.md" escalation
bigFileLines500full-read line count that triggers the offset/limit warning
mediumFileLines200full-read line count that triggers the soft hint
staleTokenRatio0.10share of budget loaded after a file before Read Cache re-allows it
staleFiles8other files loaded after a file before it counts as evicted (at 200K)
staleTimeMs600000ms since last read before a cached file counts as stale
promptMinWords8word count below which the coach calls a prompt too vague
promptIdealMaxWords200upper bound of the coach's "ideal length" band
promptTooLongWords500word count above which the ask is considered buried
packBudgetPercent25max share of the budget /cco-pack may consume

Tuning guidance

  • Too many re-read warnings? Raise rereadWarnAt to 4–5.
  • Read Cache blocking files you still need? Lower staleTimeMs (e.g. 300000 = 5 min) or staleTokenRatio so cached entries go stale sooner.
  • Read Cache not saving much? Raise them — entries stay fresh longer and more repeat reads get blocked.
  • Working on a 1M-context model with long prompts? Raise promptTooLongWords; the default band is tuned for shorter asks.
  • CCO_STALE_TIME_MS in the environment still overrides staleTimeMs, for a one-off experiment without changing config.

Comments

Markdown supported