Files
context-kit/README.md

150 lines
3.9 KiB
Markdown

# 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
```sh
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:
```sh
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:
```sh
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:
```sh
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
```sh
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:
```sh
bin/context-kit web-search
bin/context-kit docs
bin/context-kit repomix
```
After pulling Context Kit updates, rebuild local images and restart services:
```sh
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