The local-first brain for coding agents: project memory + workflow intelligence + lossless ~50% context savings. MCP server + LLM proxy, zero cloud.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 957e5b1 · analyzer v33 · 3w ago
skills & prompt files 3
- prompt-file PDgit12-knitbrain-957e5b1/.github/prompts/goal.prompt.md
- prompt-file PDgit12-knitbrain-957e5b1/.github/prompts/loop.prompt.md
- agent-rules PDgit12-knitbrain-957e5b1/CLAUDE.md
danger signals2
- committed secret Anthropic key PDgit12-knitbrain-957e5b1/tests/audit-fixes.test.ts :14
sk-ant…(77 chars, redacted) - committed secret Anthropic key PDgit12-knitbrain-957e5b1/tests/proxy.test.ts :393
sk-ant…(35 chars, redacted)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 139
filesystem 100
- fs (weak) PDgit12-knitbrain-957e5b1/scripts/bench.ts :21
import { mkdtempSync, rmSync } from "node:fs"; - fs (weak) PDgit12-knitbrain-957e5b1/scripts/consistency.mjs :6
import { readFileSync } from "node:fs"; - fs (weak) PDgit12-knitbrain-957e5b1/scripts/e2e-tools.mjs :15
import { mkdtempSync, rmSync, writeFileSync, mkdirSync } from "node:fs"; - fs (weak) PDgit12-knitbrain-957e5b1/scripts/e2e.mjs :12
import { readFileSync, existsSync, mkdtempSync, rmSync } from "node:fs"; - fs (weak) PDgit12-knitbrain-957e5b1/scripts/production-audit.mjs :20
import { existsSync, mkdtempSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/atomic.ts :1
import { renameSync, writeFileSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/ccr/store.ts :9
} from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/compress-file.ts :1
import { existsSync, lstatSync, readFileSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/engine/activity.ts :1
import { appendFileSync, existsSync, mkdirSync, readFileSync, statSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/engine/agents.ts :1
import { mkdirSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/engine/calibration.ts :1
import { existsSync, mkdirSync, readFileSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/engine/feedback.ts :1
import { existsSync, mkdirSync, readFileSync } from "node:fs";
show 28 more
- fs PDgit12-knitbrain-957e5b1/src/engine/host-scan.ts :1
import { existsSync, readdirSync, readFileSync, statSync, mkdirSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/engine/knowledge.ts :1
import { existsSync, mkdirSync, readdirSync, readFileSync, statSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/engine/memory.ts :2
import { existsSync, mkdirSync, readFileSync, rmSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/engine/meter.ts :1
import { existsSync, mkdirSync, readFileSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/engine/onboard.ts :1
import { existsSync, readdirSync, readFileSync, statSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/engine/quota.ts :1
import { existsSync, readFileSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/engine/receipt.ts :1
import { existsSync, mkdirSync, readFileSync, statSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/engine/retrieval.ts :1
import { readFileSync, statSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/engine/skills.ts :2
import { existsSync, mkdirSync, readFileSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/engine/teams.ts :2
import { existsSync, mkdirSync, readFileSync, statSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/engine/usage.ts :1
import { existsSync, readdirSync, readFileSync, statSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/engine/wiki.ts :1
import { existsSync, mkdirSync, readFileSync, readdirSync, statSync, appendFileSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/engine/workflow.ts :1
import { existsSync, readFileSync, mkdirSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/evals.ts :1
import { mkdtempSync, rmSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/fan.ts :6
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/global-config.ts :1
import { existsSync, mkdirSync, readFileSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/hooks/index.ts :16
import { existsSync, readFileSync, statSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/hooks/pretooluse.ts :1
import { existsSync, readFileSync, statSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/hooks/stop.ts :1
import { existsSync, readFileSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/hub/client.ts :1
import { existsSync, mkdirSync, readFileSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/hub/server.ts :2
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/learn.ts :1
import { createReadStream, existsSync, readdirSync, readFileSync, statSync, writeFileSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/loop.ts :2
import { existsSync, readFileSync, writeFileSync, appendFileSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/mcp/tools.ts :26
import { existsSync, readFileSync, rmSync, mkdirSync, writeFileSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/platforms.ts :1
import { existsSync, mkdirSync, readFileSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/profile.ts :1
import { createReadStream, mkdtempSync, readdirSync, rmSync, statSync } from "node:fs"; - fs PDgit12-knitbrain-957e5b1/src/setup.ts :1
import { existsSync } from "node:fs"; - fs (weak) PDgit12-knitbrain-957e5b1/tests/activity.test.ts :2
import { mkdtempSync, rmSync, writeFileSync, mkdirSync, appendFileSync } from "node:fs";
60 more not shown — this panel samples each group; the count above is the real total.
shell / exec 12
- shell (weak) PDgit12-knitbrain-957e5b1/scripts/e2e-tools.mjs :14
import { spawn } from "node:child_process"; - shell (weak) PDgit12-knitbrain-957e5b1/scripts/e2e.mjs :11
import { spawn } from "node:child_process"; - shell (weak) PDgit12-knitbrain-957e5b1/scripts/production-audit.mjs :19
import { execSync, spawn } from "node:child_process"; - shell PDgit12-knitbrain-957e5b1/src/engine/onboard.ts :4
import { execSync } from "node:child_process"; - shell PDgit12-knitbrain-957e5b1/src/engine/quota.ts :2
import { execFileSync } from "node:child_process"; - shell PDgit12-knitbrain-957e5b1/src/fan.ts :5
import { spawn, spawnSync } from "node:child_process"; - shell PDgit12-knitbrain-957e5b1/src/loop.ts :1
import { spawnSync } from "node:child_process"; - shell PDgit12-knitbrain-957e5b1/src/mcp/tools.ts :27
import { execSync } from "node:child_process"; - shell PDgit12-knitbrain-957e5b1/src/wrap.ts :1
import { spawn } from "node:child_process"; - shell (weak) PDgit12-knitbrain-957e5b1/tests/closed-loop.test.ts :2
import { spawnSync } from "node:child_process"; - shell (weak) PDgit12-knitbrain-957e5b1/tests/hooks.test.ts :131
import { spawnSync } from "node:child_process"; - shell (weak) PDgit12-knitbrain-957e5b1/tests/index-cli.test.ts :2
import { spawnSync } from "node:child_process";
network 13
- net (weak) PDgit12-knitbrain-957e5b1/scripts/production-audit.mjs :21
import { createServer } from "node:http"; - net PDgit12-knitbrain-957e5b1/src/dashboard.ts :1
import { createServer, type Server } from "node:http"; - net PDgit12-knitbrain-957e5b1/src/engine/quota.ts :121
const res = await fetch(CLAUDE_USAGE_URL, { - net PDgit12-knitbrain-957e5b1/src/hub/client.ts :55
const res = await fetch(url, { - net PDgit12-knitbrain-957e5b1/src/hub/server.ts :3
import { createServer, type IncomingMessage, type Server, type ServerResponse } from "node:http"; - net PDgit12-knitbrain-957e5b1/src/proxy/server.ts :1
import { createServer, type IncomingMessage, type Server, type ServerResponse } from "node:http"; - net PDgit12-knitbrain-957e5b1/src/wrap.ts :50
const res = await fetch(`http://127.0.0.1:${port}/health`, { - net (weak) PDgit12-knitbrain-957e5b1/tests/dashboard.test.ts :5
import { type Server } from "node:http"; - net (weak) PDgit12-knitbrain-957e5b1/tests/hub.test.ts :5
import { type Server } from "node:http"; - net (weak) PDgit12-knitbrain-957e5b1/tests/live.test.ts :2
import { type Server } from "node:http"; - net (weak) PDgit12-knitbrain-957e5b1/tests/proxy.test.ts :2
import { createServer, type Server } from "node:http"; - net (weak) PDgit12-knitbrain-957e5b1/tests/security.test.ts :5
import { type Server } from "node:http";
show 1 more
- net (weak) PDgit12-knitbrain-957e5b1/tests/structured.test.ts :44
"@@ -10,30 +10,45 @@ import { createServer } from 'node:http';",
secrets 4
- secrets PDgit12-knitbrain-957e5b1/src/engine/quota.ts :56
const env = (process.env["CLAUDE_CODE_OAUTH_TOKEN"] ?? "").trim(); - secrets PDgit12-knitbrain-957e5b1/src/setup.ts :189
const hasKey = Boolean(process.env["ANTHROPIC_API_KEY"] || process.env["OPENAI_API_KEY"]); - secrets (weak) PDgit12-knitbrain-957e5b1/tests/live.test.ts :16
const live = Boolean(process.env["KNITBRAIN_LIVE_TEST"]) && Boolean(process.env["ANTHROPIC_API_KEY"]); - secrets (weak) PDgit12-knitbrain-957e5b1/tests/quota.test.ts :33
delete process.env["CLAUDE_CODE_OAUTH_TOKEN"];
install hooks 2
- prepack PDgit12-knitbrain-957e5b1/package.json :70
npm run build - prepublishOnly PDgit12-knitbrain-957e5b1/package.json :71
npm run verify
declared dependencies 11
- @modelcontextprotocol/sdk@^1.29.0
- @vscode/tree-sitter-wasm@^0.3.1
- gpt-tokenizer@^3.4.0
- @eslint/js@^10.0.1
- @types/node@^25.9.2
- @vitest/coverage-v8@^4.1.8
- eslint@^10.4.1
- tsx@^4.22.4
- typescript@^6.0.3
- typescript-eslint@^8.61.0
- vitest@^4.1.8
perm:untrusted 3
- untrusted (weak) PDgit12-knitbrain-957e5b1/scripts/production-audit.mjs :133
const state = await (await fetch("http://127.0.0.1:18790/api/state")).json(); - untrusted (weak) PDgit12-knitbrain-957e5b1/tests/dashboard.test.ts :108
const api = (await (await fetch(`http://127.0.0.1:${port}/api/state`)).json()) as { - untrusted (weak) PDgit12-knitbrain-957e5b1/tests/hub.test.ts :50
const list = (await (await fetch(`${url}/board`, { headers: auth })).json()) as Array<Record<string, unknown>>;