Token optimization
This plugin ships a token-optimizer MCP server whose tools cut context usage
60–90% via caching, diffing, and compression. Prefer them over the built-in
tools in the situations below. All tools are model-invoked — you must call them;
nothing rewrites the built-in read/grep output automatically.
When to use which tool
smart_readinstead of a plain file read when a file is large (roughly >400 lines / >25 KB) or you have read it before this session. It caches file content and, on re-reads, returns only a diff of what changed — often a handful of tokens instead of the whole file. Passpath; optionallyenableCache,diffMode,maxSize,includeMetadata.smart_globinstead of a content grep for finding files in a big or unfamiliar tree. It returns paths only (no content) with filtering, sorting, and pagination — a fraction of the tokens of listing with content. Passpattern(e.g.src/**/*.ts) and optionallycwd,extensions,limit.smart_editinstead of a raw edit for large files: it applies the edit and returns a compact unified diff rather than echoing the whole file. (For very small files a plain edit is fine — smart_edit's diff overhead is only worth it once the file is sizeable.)optimize_session/get_session_statswhen the context window is filling up or after a burst of file operations.optimize_sessionbatch-compresses prior file operations and stores them out-of-context;get_session_statsreports tokens saved so far.get_optimization_reportwhen the user asks how much they've saved (or to show it proactively). Returns total tokens saved, overall savings %, approximate cost saved, and a full breakdown by action, by hook phase, and by MCP server, plus a pre-renderedformattedtext summary you can display as-is.count_tokensto measure how expensive a chunk of text is before you decide how to handle it.
Storing bulky content out of context
optimize_text— compress a large text blob under akeyand keep it in the external cache instead of your context; retrieve it later by key. ReportstokensSaved. Good for logs, large outputs, or reference material you don't need inline right now.compress_text— Brotli+base64 compression. Byte reduction only: the base64 output usually has more LLM tokens than the input, so use it for at-rest storage/caching, not for putting back into context. The tool returnsincreasesTokens+ a warning when that's the case.
Rules of thumb
- Reading a big file or one you've seen before →
smart_read. - Searching a large/unknown tree →
smart_glob(paths first, read only what you need). - Editing a large file →
smart_edit. - Context getting tight →
optimize_session, then continue. - Need to stash bulky output →
optimize_text(by key), notcompress_textinto context. - Small files/one-off reads → the built-in tools are fine; don't add overhead.
Source: hashgraph-online/awesome-codex-plugins → plugins/ooples/token-optimizer-mcp/skills/token-optimization/SKILL.md