Personal unified memory system for AI agents. SQLite-backed, local-first, hybrid RAG retrieval with MCP integration.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio counts 44 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
agent_task
-
diary_list_agents
-
diary_read
-
diary_write
-
embedding_models
-
goal
-
memory_auto
-
memory_benchmark
-
memory_browse
-
memory_clip
-
memory_compile
-
memory_context
-
memory_contradictions
-
memory_correct
-
memory_diff
-
memory_entities
-
memory_facts
-
memory_feedback
-
memory_forget
-
memory_get
-
memory_graph
-
memory_ingest
-
memory_job_health
-
memory_link
-
memory_lint
-
memory_maintenance
-
memory_navigate
-
memory_obsidian_sync
-
memory_ping
-
memory_project_snapshot
-
memory_promote
-
memory_reason
-
memory_research
-
memory_search
-
memory_security_audit
-
memory_store
-
memory_timeline
-
memory_update
-
memory_wakeup
-
memory_wiki_refresh
-
prediction
-
unified_search
-
wiki_append_article
-
wiki_write_article
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 2fb4d37 · analyzer v33 · 2d ago
skills & prompt files 5
- agent-rules shawnhack-exocortex-2fb4d37/.claude/agents/dashboard-dev.md
- agent-rules shawnhack-exocortex-2fb4d37/.claude/agents/mcp-developer.md
- agent-rules shawnhack-exocortex-2fb4d37/.claude/agents/memory-engineer.md
- agent-rules shawnhack-exocortex-2fb4d37/CLAUDE.md
- skill shawnhack-exocortex-2fb4d37/packages/server/public/SKILL.md
danger signals3
- suspicious endpoint 1.2.3.4 shawnhack-exocortex-2fb4d37/packages/core/src/security/url-reputation.test.ts :25
expect(checkUrl("http://1.2.3.4/phishing").allowed).toBe(false); - suspicious endpoint 172.15.0.1 shawnhack-exocortex-2fb4d37/packages/core/src/security/url-reputation.test.ts :43
expect(checkUrl("http://172.15.0.1/public").allowed).toBe(false); // blocked as IP-as-domain - committed secret Anthropic key shawnhack-exocortex-2fb4d37/packages/core/src/security/action-validator.test.ts :12
sk-ant…(45 chars, redacted)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 239
filesystem 33
- fs (weak) shawnhack-exocortex-2fb4d37/benchmarks/longmemeval/run.mjs :17
import fs from "node:fs"; - fs (weak) shawnhack-exocortex-2fb4d37/benchmarks/run-all.mjs :19
import fs from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/cli/src/commands/export.ts :2
import { writeFileSync } from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/cli/src/commands/import.ts :2
import fs from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/cli/src/commands/verify-backup.ts :2
import { readFileSync } from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/core/src/backup.ts :7
import fs from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/core/src/db/connection.ts :4
import fs from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/core/src/export/obsidian-sync.ts :1
import fs from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/core/src/export/obsidian.ts :1
import fs from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/core/src/intelligence/wiki-compile.ts :1
import fs from "node:fs"; - fs (weak) shawnhack-exocortex-2fb4d37/packages/core/src/memory/digest.test.ts :2
import fs from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/core/src/memory/digest.ts :1
import fs from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/core/src/memory/ingest.ts :1
import fs from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/mcp/src/hooks/session-orient.js :20
import fs from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/mcp/src/hooks/stop.js :11
import fs from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/intelligence.ts :2
import fs from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-ingest.ts :2
import fs from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/wiki-compile.ts :2
import fs from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/server/src/index.ts :29
import fs from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/server/src/middleware/x402.ts :8
import { readFileSync, writeFileSync, mkdirSync } from "node:fs"; - fs shawnhack-exocortex-2fb4d37/packages/server/src/scheduler.ts :2
import fs from "node:fs"; - fs (weak) shawnhack-exocortex-2fb4d37/scripts/run-benchmark.mts :1
import { readFileSync } from "node:fs"; - fs (weak) shawnhack-exocortex-2fb4d37/scripts/take-screenshots.mjs :8
import fs from "node:fs"; - fs (weak) shawnhack-exocortex-2fb4d37/scripts/test-dashboard-interactions.mjs :3
import fs from "node:fs"; - fs (weak) shawnhack-exocortex-2fb4d37/scripts/test-memory-detail-layout.mjs :3
import fs from "node:fs"; - fs (weak) shawnhack-exocortex-2fb4d37/tests/backup.test.ts :2
import fs from "node:fs"; - fs (weak) shawnhack-exocortex-2fb4d37/tests/cli-retrieval-regression.test.ts :3
import fs from "node:fs"; - fs (weak) shawnhack-exocortex-2fb4d37/tests/connection.test.ts :2
import fs from "node:fs"; - fs (weak) shawnhack-exocortex-2fb4d37/tests/e2e-lifecycle.test.ts :2
import fs from "node:fs"; - fs (weak) shawnhack-exocortex-2fb4d37/tests/mcp-contract.test.ts :2
import fs from "node:fs"; - fs (weak) shawnhack-exocortex-2fb4d37/tests/mcp-memory-tools.test.ts :2
import fs from "node:fs"; - fs (weak) shawnhack-exocortex-2fb4d37/tests/scheduler-retrieval-regression.test.ts :2
import fs from "node:fs"; - fs (weak) shawnhack-exocortex-2fb4d37/tests/server-routes.test.ts :2
import fs from "node:fs";
shell / exec 8
- shell shawnhack-exocortex-2fb4d37/packages/cli/src/commands/mcp.ts :2
import { spawn } from "node:child_process"; - shell shawnhack-exocortex-2fb4d37/packages/core/src/memory/deep-context.ts :1
import { spawn } from "node:child_process"; - shell shawnhack-exocortex-2fb4d37/packages/mcp/src/hooks/session-orient.js :17
import { execSync } from "node:child_process"; - shell (weak) shawnhack-exocortex-2fb4d37/scripts/take-screenshots.mjs :10
import { spawn } from "node:child_process"; - shell (weak) shawnhack-exocortex-2fb4d37/scripts/test-dashboard-interactions.mjs :6
import { spawn } from "node:child_process"; - shell (weak) shawnhack-exocortex-2fb4d37/scripts/test-memory-detail-layout.mjs :6
import { spawn } from "node:child_process"; - shell (weak) shawnhack-exocortex-2fb4d37/tests/cli-retrieval-regression.test.ts :2
import { spawnSync } from "node:child_process"; - shell (weak) shawnhack-exocortex-2fb4d37/tests/e2e-lifecycle.test.ts :6
import { spawn, type ChildProcess } from "node:child_process";
network 13
- net (weak) shawnhack-exocortex-2fb4d37/packages/core/src/benchmark/runner.ts :36
const res = await fetch("https://api.anthropic.com/v1/messages", { - net shawnhack-exocortex-2fb4d37/packages/core/src/memory/hyde.ts :46
const res = await fetch("https://api.anthropic.com/v1/messages", { - net shawnhack-exocortex-2fb4d37/packages/core/src/memory/ingest-url.ts :146
const response = await fetch(url, { - net shawnhack-exocortex-2fb4d37/packages/core/src/memory/research.ts :48
const response = await fetch(url, { - net shawnhack-exocortex-2fb4d37/packages/dashboard/src/api/client.ts :7
const res = await fetch(`${BASE}${path}`, { - net shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-core.ts :692
ids: z.array(z.string()).min(1).max(10).describe("Memory IDs to fetch (max 10)"), - net shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-ingest.ts :23
content: z.string().optional().describe("Pre-fetched content, skips HTTP fetch (source: url)"), - net shawnhack-exocortex-2fb4d37/packages/server/src/middleware/x402.ts :118
const res = await fetch(rpcUrl, { - net shawnhack-exocortex-2fb4d37/packages/server/src/routes/chat.ts :114
const res = await fetch("https://api.openai.com/v1/chat/completions", { - net (weak) shawnhack-exocortex-2fb4d37/scripts/take-screenshots.mjs :268
const res = await fetch(`${url}/health`); - net (weak) shawnhack-exocortex-2fb4d37/scripts/test-dashboard-interactions.mjs :40
const res = await fetch(`${baseUrl}/health`); - net (weak) shawnhack-exocortex-2fb4d37/scripts/test-memory-detail-layout.mjs :37
const res = await fetch(`${baseUrl}/health`); - net (weak) shawnhack-exocortex-2fb4d37/tests/e2e-lifecycle.test.ts :31
const res = await fetch(`${baseUrl}/health`);
secrets 3
- secrets (weak) shawnhack-exocortex-2fb4d37/packages/core/src/benchmark/runner.ts :141
const apiKey = options.apiKey ?? process.env.ANTHROPIC_API_KEY; - secrets shawnhack-exocortex-2fb4d37/packages/core/src/memory/hyde.ts :88
const apiKey = getSetting(db, "ai.api_key") ?? process.env.ANTHROPIC_API_KEY; - secrets (weak) shawnhack-exocortex-2fb4d37/scripts/run-benchmark.mts :7
if (!process.env.ANTHROPIC_API_KEY) {
tool registrations 44
- agent_task shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/agent-tasks.ts :8
- goal shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/goals.ts :8
- memory_navigate shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/hierarchy.ts :8
- memory_wakeup shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/hierarchy.ts :96
- diary_write shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/hierarchy.ts :113
- diary_read shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/hierarchy.ts :132
- diary_list_agents shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/hierarchy.ts :165
- embedding_models shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/hierarchy.ts :183
- memory_benchmark shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/hierarchy.ts :227
- memory_project_snapshot shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/intelligence.ts :12
- memory_diff shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/intelligence.ts :129
- memory_contradictions shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/intelligence.ts :173
- memory_job_health shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/intelligence.ts :244
- memory_lint shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/intelligence.ts :302
- memory_wiki_refresh shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/intelligence.ts :336
- memory_promote shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/intelligence.ts :377
- memory_correct shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/intelligence.ts :455
- memory_clip shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/intelligence.ts :516
- memory_feedback shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/intelligence.ts :550
- memory_reason shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/intelligence.ts :633
- unified_search shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/intelligence.ts :710
- memory_link shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/links.ts :10
- memory_auto shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-auto.ts :41
- memory_store shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-core.ts :13
- memory_search shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-core.ts :290
- memory_forget shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-core.ts :490
- memory_context shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-core.ts :515
- memory_get shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-core.ts :688
- memory_facts shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-core.ts :754
- memory_entities shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-core.ts :792
- memory_graph shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-core.ts :889
- memory_update shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-core.ts :973
- memory_browse shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-core.ts :1049
- memory_ingest shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-ingest.ts :12
- memory_research shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-ingest.ts :250
- memory_maintenance shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-maintenance.ts :9
- memory_timeline shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-maintenance.ts :458
- memory_ping shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/memory-maintenance.ts :632
- prediction shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/predictions.ts :8
- memory_compile shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/wiki-compile.ts :13
- wiki_write_article shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/wiki-compile.ts :79
- wiki_append_article shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/wiki-compile.ts :120
- memory_security_audit shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/wiki-compile.ts :224
- memory_obsidian_sync shawnhack-exocortex-2fb4d37/packages/mcp/src/tools/wiki-compile.ts :263
install hooks 1
- prepare shawnhack-exocortex-2fb4d37/package.json :16
git config core.hooksPath .githooks 2>/dev/null || true
declared dependencies 4
- playwright@^1.59.1
- tsx@^4.21.0
- typescript@^6.0.3
- vitest@^4.1.5