Context window optimization for AI coding agents. Sandboxes tool output (98% reduction), persists session memory, and enforces routing across 17 platforms via MCP + hooks.
이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.
컨텍스트 문제의 나머지 절반.
모든 MCP 도구 호출은 원시 데이터를 컨텍스트 윈도우에 덤프합니다. Playwright 스냅샷 하나는 56KB입니다. GitHub 이슈 20개는 59KB입니다. 액세스 로그 하나는 45KB입니다. 30분 후에는 컨텍스트의 40%가 사라집니다. 그리고 에이전트가 공간을 확보하기 위해 대화를 압축하면, 어떤 파일을 편집 중이었는지, 어떤 작업이 진행 중인지, 마지막으로 무엇을 요청했는지 잊어버립니다. 게다가 에이전트는 채우기, 예의, 장황한 설명에 출력 토큰을 낭비하여 양쪽에서 컨텍스트를 소모합니다.
Context Mode는 이 문제의 네 가지 측면을 모두 해결하는 MCP 서버입니다:
--continue를 사용하지 않으면 이전 세션 데이터는 즉시 삭제됩니다 — 새 세션은 깨끗한 상태를 의미합니다.console.log()하는 스크립트를 작성합니다. 하나의 스크립트가 열 번의 도구 호출을 대체하고 100배의 컨텍스트를 절약합니다. 이는 지원되는 17개 클라이언트와 OpenClaw 게이트웨이 통합에서 필수 패러다임입니다: LLM을 데이터 프로세서로 취급하지 말고, 코드 생성기로 취급하십시오. // 이전: 47 × Read() = 700 KB. 이후: 1 × ctx_execute() = 3.6 KB.
ctx_execute("javascript", `
const files = fs.readdirSync('src').filter(f => f.endsWith('.ts'));
files.forEach(f => console.log(f + ': ' + fs.readFileSync('src/'+f,'utf8').split('\\n').length + ' lines'));
`);
CLAUDE.md / AGENTS.md를 통한 결정)에 맡깁니다. 공격적인 간결함 프롬프트는 코딩/추론 벤치마크를 저하시키는 것으로 나타났습니다(Moonshot AI on kimi-k2.5) — 라우팅 블록은 데이터가 어디로 가는지에 집중하고, 모델이 어떻게 말하는지에는 집중하지 않습니다.플랫폼은 설치 복잡성에 따라 그룹화됩니다. Hook 지원 플랫폼은 자동 라우팅 적용을 받습니다. Hook이 없는 플랫폼은 일회성 라우팅 파일 복사가 필요합니다.
<details open> <summary><strong>Claude Code</strong> — 플러그인 마켓플레이스, 완전 자동</summary>
전제 조건: Claude Code v1.0.33+ (claude --version). /plugin이 인식되지 않으면 먼저 업데이트: brew upgrade claude-code 또는 npm update -g @anthropic-ai/claude-code.
설치:
/plugin marketplace add mksglu/context-mode
/plugin install context-mode@context-mode
Claude Code를 다시 시작하거나 /reload-plugins를 실행하십시오.
확인:
/context-mode:ctx-doctor
모든 검사가 [x]를 표시해야 합니다. doctor는 런타임, 훅, FTS5 및 플러그인 등록을 검증합니다.
라우팅: 자동. SessionStart 훅이 런타임에 라우팅 지침을 주입합니다 — 프로젝트에 파일이 기록되지 않습니다. 플러그인은 모든 훅(PreToolUse, PostToolUse, UserPromptSubmit, PreCompact, SessionStart, Stop)과 11개의 MCP 도구를 등록합니다 — 6개의 샌드박스 도구(ctxbatchexecute, ctxexecute, ctxexecutefile, ctxindex, ctxsearch, ctxfetchandindex)와 5개의 메타 도구(ctxstats, ctxdoctor, ctxupgrade, ctxpurge, ctx_insight).
| 슬래시 명령어 | 기능 | ||
|---|---|---|---|
/context-mode:ctx-stats |
컨텍스트 절약 — 도구별 분석, 소비된 토큰, 절약 비율. | ||
/context-mode:ctx-doctor |
진단 — 런타임, 훅, FTS5, 플러그인 등록, 버전. | ||
/context-mode:ctx-index |
로컬 파일 또는 디렉토리를 영구 FTS5 지식 베이스에 인덱싱. | ||
/context-mode:ctx-search |
이전에 인덱싱된 콘텐츠 검색. | ||
/context-mode:ctx-upgrade |
최신 버전 가져오기, 재빌드, 캐시 마이그레이션, 훅 수정. | ||
/context-mode:ctx-purge |
지식 베이스에서 인덱싱된 모든 콘텐츠를 영구 삭제. | ||
/context-mode:ctx-insight |
호스팅된 Insight 대시보드(context-mode.com/insight)를 브라우저에서 엽니다 — AI 지원 엔지니어링 팀을 위한 조직 분석. |
참고: 슬래시 명령어는 Claude Code 플러그인 기능입니다. 다른 플랫폼에서는 채팅에
ctx stats,ctx doctor,ctx index,ctx search,ctx upgrade또는ctx insight를 입력하면 모델이 MCP 도구를 자동으로 호출합니다. 유틸리티 명령어를 참조하십시오.
상태 표시줄 (선택 사항): Claude Code의 플러그인 매니페스트는 상태 표시줄을 선언할 수 없으므로, ~/.claude/settings.json에 일회성 수동 편집이 필요합니다:
{
"statusLine": {
"type": "command",
"command": "context-mode statusline"
}
}
저장 후 Claude Code를 다시 시작하십시오. 막대는 이 세션에 저장된 금액 · 모든 세션에 저장된 금액 · 효율성 %를 표시하여 실시간으로 절약이 누적되는 것을 볼 수 있습니다. 연결은 경로가 없습니다 — context-mode statusline은 플러그인 캐시 위치에 관계없이 번들 CLI를 통해 해결됩니다.
<details> <summary>대안 — MCP 전용 설치 (훅 또는 슬래시 명령어 없음)</summary>
claude mcp add context-mode -- npx -y context-mode
이렇게 하면 자동 라우팅 없이 11개의 MCP 도구를 모두 사용할 수 있습니다. 모델은 여전히 사용할 수 있지만, 원시 Bash/Read/WebFetch보다 선호하도록 유도되지는 않습니다. 전체 플러그인을 적용하기 전에 시도해보기에 좋습니다.
</details>
</details>
<details> <summary><strong>Gemini CLI</strong> — 하나의 설정 파일, 훅 포함</summary>
전제 조건: Node.js >= 22.5 (또는 Bun), Gemini CLI 설치.
설치:
npm install -g context-mode
~/.gemini/settings.json에 다음을 추가합니다. 이 단일 파일은 MCP 서버와 네 개의 훅을 모두 등록합니다: {
"mcpServers": {
"context-mode": {
"command": "context-mode"
}
},
"hooks": {
"BeforeTool": [
{
"matcher": "run_shell_command|read_file|read_many_files|grep_search|search_file_content|web_fetch|activate_skill|mcp__plugin_context-mode|mcp__context-mode|mcp__(?!.*context-mode)",
"hooks": [{ "type": "command", "command": "context-mode hook gemini-cli beforetool" }]
}
],
"AfterTool": [
{
"matcher": "",
"hooks": [{ "type": "command", "command": "context-mode hook gemini-cli aftertool" }]
}
],
"PreCompress": [
{
"matcher": "",
"hooks": [{ "type": "command", "command": "context-mode hook gemini-cli precompress" }]
}
],
"SessionStart": [
{
"matcher": "",
"hooks": [{ "type": "command", "command": "context-mode hook gemini-cli sessionstart" }]
}
]
}
}
확인:
/mcp list
context-mode:... - Connected가 표시되어야 합니다.
라우팅: SessionStart 훅을 통해 자동. 전체 모델 인식을 위해 라우팅 지침을 선택적으로 복사:
cp node_modules/context-mode/configs/gemini-cli/GEMINI.md./GEMINI.md
BeforeTool 매처가 필요한 이유? 큰 출력을 생성하는 도구(
runshellcommand,readfile,readmanyfiles,grepsearch,searchfilecontent,webfetch,activateskill)와 context-mode 자체 도구(mcp__plugin_context-mode)만 대상으로 합니다. 이렇게 하면 가벼운 도구에 불필요한 훅 오버헤드를 피하면서 컨텍스트 윈도우를 넘칠 수 있는 모든 도구를 가로챕니다.
전체 설정 참조: configs/gemini-cli/settings.json
</details>
<details> <summary><strong>VS Code Copilot</strong> — SessionStart가 있는 훅</summary>
전제 조건: Node.js >= 22.5 (또는 Bun), Copilot Chat v0.32+가 있는 VS Code.
설치:
npm install -g context-mode
.vscode/mcp.json 생성: {
"servers": {
"context-mode": {
"command": "context-mode"
}
}
}
.github/hooks/context-mode.json 생성: {
"hooks": {
"PreToolUse": [
{ "type": "command", "command": "context-mode hook vscode-copilot pretooluse" }
],
"PostToolUse": [
{ "type": "command", "command": "context-mode hook vscode-copilot posttooluse" }
],
"SessionStart": [
{ "type": "command", "command": "context-mode hook vscode-copilot sessionstart" }
]
}
}
확인: Copilot Chat을 열고 ctx stats를 입력합니다. context-mode 도구가 나타나고 응답해야 합니다.
라우팅: SessionStart 훅을 통해 자동. 전체 모델 인식을 위해 라우팅 지침을 선택적으로 복사:
cp node_modules/context-mode/configs/vscode-copilot/copilot-instructions.md.github/copilot-instructions.md
PreCompact를 포함한 전체 훅 설정: configs/vscode-copilot/hooks.json
</details>