Files
context-kit/README.md

3.9 KiB

Context Kit

Local context tools for Claude Code and OpenCode.

Local web search. Local docs. Repo packing. No API keys required.

What You Get

Context Kit gives coding agents three local tools:

Tool Purpose
context-web-search Current web search through local SearXNG plus URL fetch/extract
context-docs Semantic search over curated llms.txt documentation
context-repomix Pack repositories into AI-friendly context

The first public release deliberately keeps the surface area small: web search, docs search, and repository packing.

Quick Start

git clone https://gitea.krishnan.ca/ajaynomics/context-kit.git
cd context-kit
cp .env.example .env
export PATH="$PWD/bin:$PATH"
bin/context-kit start
bin/context-kit doctor

Then connect your assistant.

For Claude Code:

bin/context-kit install claude

Copy the printed JSON into your project's .mcp.json, or use the equivalent claude mcp add commands if you prefer managing servers through the Claude CLI. The default snippet uses context-kit on PATH, which is the right shape for shared project config. For a private user-only config, you can print absolute paths with bin/context-kit install claude --absolute.

For OpenCode:

bin/context-kit install opencode

Merge the printed mcp block into your opencode.json, then restart OpenCode. The default snippet uses context-kit on PATH. Use bin/context-kit install opencode --absolute only for private, machine-local config that will not be committed.

How It Runs

  • SearXNG binds to 127.0.0.1:8099 only.
  • context-web-search and context-repomix run as local stdio MCP commands.
  • context-docs runs as a local HTTP MCP service. bin/context-kit docs is a stdio fallback for clients that cannot use HTTP MCP.
  • context-docs browser CORS is disabled by default; set exact local origins only when a browser-based client needs direct access.
  • Docs and model caches live in $HOME/.local/share/context-kit.
  • Docs refresh TTL defaults to 24h.
  • Repomix mounts only the current project read-only.
  • No code-editing MCP server is enabled by default.

Docs Sources

The default docs index is intentionally small:

  • Claude Code docs
  • OpenAI API docs and reference
  • OpenRouter docs
  • Model Context Protocol docs

Optional profiles live in config/:

  • sources.ruby-ai.txt
  • sources.js.txt
  • sources.cloudflare.txt

Example:

CONTEXT_KIT_DOCS_SOURCES="config/sources.default.txt config/sources.js.txt" \
  bin/context-kit restart

Source changes are loaded by start/restart; bin/context-kit docs is only a stdio bridge to the already-running docs service.

Large vendor feeds are opt-in because they can expand to thousands of sections and take a while to embed.

Commands

bin/context-kit start
bin/context-kit stop
bin/context-kit build
bin/context-kit status
bin/context-kit doctor
bin/context-kit install claude
bin/context-kit install opencode
bin/context-kit redaction-check

MCP entrypoints:

bin/context-kit web-search
bin/context-kit docs
bin/context-kit repomix

After pulling Context Kit updates, rebuild local images and restart services:

bin/context-kit build
bin/context-kit restart

Security Model

Context Kit is local-first, but MCP tools still extend what your agent can do.

  • Treat fetched web pages as untrusted input.
  • Do not expose SearXNG publicly without changing the secret and reviewing its configuration.
  • Keep docs profiles curated. More sources means more background indexing and more untrusted text in your retrieval corpus.
  • Be cautious when adding code-editing MCP servers. Context Kit's default MCP servers either read remote content or mount the current project read-only.

See docs/security.md for details.

Requirements

  • Docker with Compose v2
  • Bash
  • curl for health checks

No hosted API keys are required for the default stack.

License

MIT