MCP plugin that saves 98% of your context window. Works with Claude Code, Gemini CLI, VS Code Copilot, OpenCode, and Codex CLI. Sandboxed code execution, FTS5 knowledge base, and intent-driven search.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
tools
-
ctx_batch_execute
Run multiple commands + search multiple queries in ONE call. Opt-in concurrency: 1-8 for I/O-bound batches.
-
ctx_doctor
Diagnose installation: runtimes, hooks, FTS5, versions.
-
ctx_execute
Run code in 12 languages. Only stdout enters context.
-
ctx_execute_file
Process files in sandbox. Raw content never leaves.
-
ctx_fetch_and_index
Fetch URL, chunk and index. Cache reuses content within TTL (default 24h, override per-call with ttl: <ms>). ttl: 0 or force: true to bypass. Pass requests: [{url, source}, ...] + concurrency: 1-8 for
-
ctx_index
Chunk markdown into FTS5 with BM25 ranking.
-
ctx_purge
Permanently deletes all indexed content from the knowledge base.
-
ctx_search
Query indexed content with multiple queries in one call.
-
ctx_stats
Show context savings, call counts, and session statistics.
-
ctx_upgrade
Upgrade to latest version from GitHub, rebuild, reconfigure hooks.
analyzed v1.0.162 · analyzer v18 · 9h ago
skills & prompt files 19
- agent-rulespackage/configs/antigravity/GEMINI.md
- agent-rulespackage/configs/claude-code/CLAUDE.md
- agent-rulespackage/configs/codex/AGENTS.md
- agent-rulespackage/configs/gemini-cli/GEMINI.md
- agent-rulespackage/configs/jetbrains-copilot/copilot-instructions.md
- agent-rulespackage/configs/kilo/AGENTS.md
- agent-rulespackage/configs/openclaw/AGENTS.md
- agent-rulespackage/configs/opencode/AGENTS.md
- agent-rulespackage/configs/pi/AGENTS.md
- agent-rulespackage/configs/vscode-copilot/copilot-instructions.md
- agent-rulespackage/configs/zed/AGENTS.md
- skillpackage/skills/context-mode/SKILL.md
- skillpackage/skills/ctx-doctor/SKILL.md
- skillpackage/skills/ctx-index/SKILL.md
- skillpackage/skills/ctx-insight/SKILL.md
- skillpackage/skills/ctx-purge/SKILL.md
- skillpackage/skills/ctx-search/SKILL.md
- skillpackage/skills/ctx-stats/SKILL.md
- skillpackage/skills/ctx-upgrade/SKILL.md
filesystem 78
- fs package/bin/statusline.mjs :28
import { existsSync, readFileSync } from "node:fs"; - fs package/build/adapters/antigravity/index.js :19
import { readFileSync, writeFileSync, mkdirSync, } from "node:fs"; - fs package/build/adapters/base.js :38
import { accessSync, copyFileSync, constants, mkdirSync } from "node:fs"; - fs package/build/adapters/claude-code/index.js :14
import { readFileSync, writeFileSync, existsSync, readdirSync, chmodSync, accessSync, mkdirSync, constants, } from "node:fs"; - fs package/build/adapters/codex/index.js :17
import { existsSync, readFileSync, writeFileSync, accessSync, copyFileSync, constants, mkdirSync, } from "node:fs"; - fs package/build/adapters/copilot-base.js :20
import { readFileSync, writeFileSync, mkdirSync, accessSync, chmodSync, constants, } from "node:fs"; - fs package/build/adapters/cursor/index.js :7
import { readFileSync, writeFileSync, mkdirSync, accessSync, chmodSync, constants, existsSync, readdirSync, } from "node:fs"; - fs package/build/adapters/detect.js :23
import { existsSync, readFileSync } from "node:fs"; - fs package/build/adapters/gemini-cli/index.js :21
import { readFileSync, writeFileSync, mkdirSync, accessSync, chmodSync, existsSync, constants, } from "node:fs"; - fs package/build/adapters/jetbrains-copilot/index.js :11
import { readFileSync, } from "node:fs"; - fs package/build/adapters/kimi/index.js :18
import { readFileSync, writeFileSync, accessSync, copyFileSync, constants, mkdirSync, } from "node:fs"; - fs package/build/adapters/kiro/index.js :20
import { readFileSync, writeFileSync, mkdirSync, } from "node:fs"; - fs package/build/adapters/omp/index.js :27
import { readFileSync, writeFileSync, mkdirSync, } from "node:fs"; - fs package/build/adapters/omp/plugin.js :27
import { mkdirSync } from "node:fs"; - fs package/build/adapters/openclaw/index.js :18
import { readFileSync, writeFileSync, copyFileSync, accessSync, constants, } from "node:fs"; - fs package/build/adapters/openclaw/plugin.js :32
import { existsSync, mkdirSync, readFileSync } from "node:fs"; - fs package/build/adapters/opencode/index.js :25
import { readFileSync, writeFileSync, mkdirSync, copyFileSync, accessSync, constants, } from "node:fs"; - fs package/build/adapters/opencode/plugin.js :25
import { existsSync, readFileSync } from "node:fs"; - fs package/build/adapters/pi/extension.js :14
import { existsSync, mkdirSync } from "node:fs"; - fs package/build/adapters/pi/index.js :30
import { readFileSync, writeFileSync, mkdirSync, } from "node:fs"; - fs package/build/adapters/pi/mcp-bridge.js :23
import { existsSync } from "node:fs"; - fs package/build/adapters/qwen-code/index.js :15
import { readFileSync, writeFileSync, existsSync, } from "node:fs"; - fs package/build/adapters/vscode-copilot/index.js :12
import { readFileSync, mkdirSync, accessSync, existsSync, constants, } from "node:fs"; - fs package/build/adapters/zed/index.js :13
import { readFileSync, writeFileSync, mkdirSync, } from "node:fs"; - fs package/build/cli.js :19
import { readFileSync, cpSync, accessSync, existsSync, readdirSync, rmSync, closeSync, openSync, chmodSync, lstatSync, realpathSync, statSync, constants } from "node:fs"; - fs package/build/db-base.js :9
import { existsSync, unlinkSync, renameSync } from "node:fs"; - fs package/build/executor.js :2
import { mkdtempSync, writeFileSync, rmSync, existsSync } from "node:fs"; - fs package/build/openclaw-plugin.js :32
import { existsSync, mkdirSync, readFileSync } from "node:fs"; - fs package/build/opencode-plugin.js :25
import { existsSync, readFileSync } from "node:fs"; - fs package/build/pi-extension.js :14
import { existsSync, mkdirSync } from "node:fs"; - fs package/build/runtime.js :2
import { existsSync } from "node:fs"; - fs package/build/search/auto-memory.js :8
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs"; - fs package/build/security.js :1
import { readFileSync, realpathSync } from "node:fs"; - fs package/build/server.js :5
import { existsSync, unlinkSync, readdirSync, readFileSync, writeFileSync, renameSync, rmSync, mkdirSync, cpSync, statSync, symlinkSync, lstatSync, realpathSync } from "node:fs"; - fs package/build/session/analytics.js :12
import { existsSync, readdirSync, statSync } from "node:fs"; - fs package/build/session/db.js :11
import { accessSync, constants, existsSync, mkdirSync, realpathSync, renameSync } from "node:fs"; - fs package/build/session/event-emit.js :21
import { existsSync } from "node:fs"; - fs package/build/session/persist-tool-calls.js :20
import { existsSync } from "node:fs"; - fs package/build/session/purge.js :34
import { existsSync, unlinkSync } from "node:fs"; - fs package/build/store-directory.js :22
import { readdirSync, statSync, lstatSync, realpathSync, existsSync, readFileSync, } from "node:fs"; - fs package/build/store.js :12
import { readFileSync, readdirSync, unlinkSync, existsSync, statSync, openSync, fstatSync, closeSync } from "node:fs"; - fs package/build/util/db-lock.js :35
import { writeFileSync, readFileSync, unlinkSync } from "node:fs"; - fs package/build/util/plugin-cache-integrity.js :25
import { existsSync } from "node:fs"; - fs package/build/util/project-dir.js :1
import * as fs from "node:fs"; - fs package/hooks/cache-heal-utils.mjs :35
} from "node:fs"; - fs package/hooks/codex/precompact.mjs :19
import { appendFileSync } from "node:fs"; - fs package/hooks/codex/sessionstart.mjs :31
import { existsSync, readFileSync, unlinkSync } from "node:fs"; - fs package/hooks/core/mcp-ready.mjs :14
import { readFileSync, readdirSync, unlinkSync } from "node:fs"; - fs package/hooks/core/routing.mjs :20
import { existsSync, mkdirSync, rmSync, rmdirSync, readdirSync, unlinkSync, openSync, closeSync, readFileSync, writeFileSync, statSync, constants as fsConstants } from "node:fs"; - fs package/hooks/cursor/sessionstart.mjs :28
import { unlinkSync } from "node:fs"; - fs package/hooks/ensure-deps.mjs :22
import { existsSync, copyFileSync, renameSync, unlinkSync } from "node:fs"; - fs package/hooks/gemini-cli/aftertool.mjs :15
import { appendFileSync } from "node:fs"; - fs package/hooks/gemini-cli/precompress.mjs :14
import { appendFileSync } from "node:fs"; - fs package/hooks/gemini-cli/sessionstart.mjs :26
import { readFileSync, unlinkSync } from "node:fs"; - fs package/hooks/heal-partial-install.mjs :128
} from "node:fs"; - fs package/hooks/jetbrains-copilot/posttooluse.mjs :15
import { appendFileSync } from "node:fs"; - fs package/hooks/jetbrains-copilot/precompact.mjs :14
import { appendFileSync } from "node:fs"; - fs package/hooks/jetbrains-copilot/sessionstart.mjs :26
import { readFileSync, unlinkSync } from "node:fs"; - fs package/hooks/kimi/precompact.mjs :19
import { appendFileSync } from "node:fs"; - fs package/hooks/kimi/sessionstart.mjs :31
import { existsSync, readFileSync, unlinkSync } from "node:fs"; - fs package/hooks/kiro/agentspawn.mjs :35
import { unlinkSync } from "node:fs"; - fs package/hooks/normalize-hooks.mjs :16
import { existsSync, readFileSync, writeFileSync } from "node:fs"; - fs package/hooks/platform-bridge.mjs :7
import fs from "node:fs"; - fs package/hooks/pretooluse.mjs :68
'import { existsSync } from "node:fs";', - fs package/hooks/run-hook.mjs :28
import { existsSync, mkdirSync, appendFileSync } from "node:fs"; - fs package/hooks/session-directive.mjs :8
import { writeFileSync } from "node:fs"; - fs package/hooks/session-helpers.mjs :22
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; - fs package/hooks/session-loaders.mjs :11
import { existsSync, readFileSync } from "node:fs"; - fs package/hooks/suppress-stderr.mjs :16
import { closeSync, openSync } from "node:fs"; - fs package/hooks/vscode-copilot/posttooluse.mjs :15
import { appendFileSync } from "node:fs"; - fs package/hooks/vscode-copilot/precompact.mjs :14
import { appendFileSync } from "node:fs"; - fs package/hooks/vscode-copilot/sessionstart.mjs :32
import { readFileSync, unlinkSync } from "node:fs"; - fs package/insight/server.mjs :11
import { readFileSync, readdirSync, statSync, existsSync, mkdirSync } from "node:fs"; - fs package/scripts/heal-better-sqlite3.mjs :44
import { existsSync as fsExistsSync } from "node:fs"; - fs package/scripts/heal-installed-plugins.mjs :20
import { existsSync, readFileSync, writeFileSync, readdirSync, unlinkSync, statSync } from "node:fs"; - fs package/scripts/plugin-cache-integrity.mjs :31
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs"; - fs package/scripts/postinstall.mjs :11
import { existsSync, mkdirSync, readFileSync, writeFileSync, symlinkSync, lstatSync, unlinkSync } from "node:fs"; - fs package/start.mjs :3
import { existsSync, chmodSync, readFileSync, writeFileSync, readdirSync, symlinkSync, mkdirSync, lstatSync, unlinkSync } from "node:fs";
shell / exec 22
- shell package/bin/statusline.mjs :31
import { execFileSync } from "node:child_process"; - shell package/build/adapters/codex/index.js :16
import { execFileSync } from "node:child_process"; - shell package/build/adapters/cursor/index.js :8
import { execSync } from "node:child_process"; - shell package/build/adapters/kimi/index.js :17
import { execFileSync } from "node:child_process"; - shell package/build/adapters/pi/mcp-bridge.js :21
* No external dependencies — pure node:child_process + JSON line frames. - shell package/build/adapters/qwen-code/hooks.js :4
* Qwen Code is a Gemini CLI fork (packages/core/src/tools/tool-names.ts — - shell package/build/cli.js :18
import { execFileSync, execSync, execFile as nodeExecFile } from "node:child_process"; - shell package/build/db-base.js :36
exec(sql) { - shell package/build/executor.js :1
import { spawn, execSync, execFileSync } from "node:child_process"; - shell package/build/lifecycle.js :16
import { execFileSync } from "node:child_process"; - shell package/build/runtime.js :1
import { execFileSync, execSync } from "node:child_process"; - shell package/build/security.js :443
/exec(?:Sync|File|FileSync)?\(\s*(['"`])(.*?)\1/g, - shell package/build/server.js :6
import { execSync, spawnSync } from "node:child_process"; - shell package/build/session/analytics.js :11
import { execFileSync } from "node:child_process"; - shell package/build/session/db.js :10
import { execFileSync } from "node:child_process"; - shell package/build/util/sibling-mcp.js :28
import { execFileSync } from "node:child_process"; - shell package/hooks/ensure-deps.mjs :23
import { execSync } from "node:child_process"; - shell package/hooks/platform-bridge.mjs :10
import { execSync } from "node:child_process"; - shell package/insight/server.mjs :1178
const { execSync } = await import("node:child_process"); - shell package/scripts/heal-better-sqlite3.mjs :45
import { execSync, execFileSync, spawnSync } from "node:child_process"; - shell package/scripts/postinstall.mjs :12
import { execSync } from "node:child_process"; - shell package/start.mjs :2
import { execSync, spawn } from "node:child_process";
network 5
- net package/build/cli.js :20
import { request as httpsRequest } from "node:https"; - net package/build/server.js :10
import { request as httpsRequest } from "node:https"; - net package/hooks/platform-bridge.mjs :286
const res = await fetch(buildUrl(cfg, ev.type), { - net package/insight/server.mjs :15
import { createServer as createHttpServer } from "node:http"; - net package/insight/src/lib/api.ts :128
const r = await fetch(`${API}${path}`);
secrets 1
- secrets package/build/session/analytics.js :1432
const usingDynamicPrice = process.env.PI_CONTEXT_MODE_PRICE_OUTPUT_PER_TOKEN !== undefined;
database 2
- db package/build/db-base.js :289
_Database = require("better-sqlite3"); - db package/hooks/ensure-deps.mjs :98
* Note: require('better-sqlite3') only loads the JS wrapper — the native
tool registrations 12
- ctx_search package/build/search/ctx-search-schema.js :53
- ctx_execute package/build/server.js :1299
- ctx_execute_file package/build/server.js :1640
- ctx_index package/build/server.js :1801
- ctx_search package/build/server.js :2061
- ctx_fetch_and_index package/build/server.js :2878
- ctx_batch_execute package/build/server.js :3102
- ctx_stats package/build/server.js :3317
- ctx_doctor package/build/server.js :3513
- ctx_upgrade package/build/server.js :3625
- ctx_purge package/build/server.js :3774
- ctx_insight package/build/server.js :4087
install hooks 1
- postinstall package/package.json :109
node scripts/postinstall.mjs
declared dependencies 15
- @clack/prompts@^1.0.1
- @mixmark-io/domino@^2.2.0
- @modelcontextprotocol/sdk@^1.26.0
- better-sqlite3@^12.6.2
- picocolors@^1.1.1
- turndown@^7.2.0
- turndown-plugin-gfm@^1.0.2
- zod@^3.25.0
- @types/better-sqlite3@^7.6.13
- @types/node@^22.19.11
- @types/turndown@^5.0.5
- esbuild@^0.27.3
- tsx@^4.21.0
- typescript@^5.7.0
- vitest@^4.0.18