npm analyzed 1.0.162

context-mode

v1.0.162
npm

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.

maintainer
mksglu
license
Elastic-2.0
first seen
2026-05-22
last seen
2026-06-17
releases · 30d
52
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 10 tools
transport stdio · http counts 10 tools · 0 res · 0 prompts permission surface via code analysis

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.

skills & danger signals npm-tarball
code evidence v1.0.162 · npm-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

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