Local-first Obsidian shared memory bus for Codex, Claude Code, OpenCode, and other MCP-capable agents
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 830712c · analyzer v33 · 1w ago
skills & prompt files 8
- agent-rules passionworkeer-obsidian-shared-memory-bus-830712c/.github/copilot-instructions.md
- agent-rules passionworkeer-obsidian-shared-memory-bus-830712c/.trae/rules/project_rules.md
- agent-rules passionworkeer-obsidian-shared-memory-bus-830712c/AGENTS.md
- agent-rules passionworkeer-obsidian-shared-memory-bus-830712c/CLAUDE.md
- skill passionworkeer-obsidian-shared-memory-bus-830712c/SKILL.md
- agent-rules passionworkeer-obsidian-shared-memory-bus-830712c/docs/AGENTS.md
- skill passionworkeer-obsidian-shared-memory-bus-830712c/docs/SKILL.md
- skill passionworkeer-obsidian-shared-memory-bus-830712c/templates/agents/portable-skill/SKILL.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 374
filesystem 130
- fs (weak) passionworkeer-obsidian-shared-memory-bus-830712c/_gen_fixture.js :2
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/bin.js :17
import { readFileSync } from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/bus/generate-embeddings-load.js :17
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/bus/generate-embeddings.js :3
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/bus/platform/darwin.js :2
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/bus/platform/linux.js :2
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/bus/platform/windows.js :2
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/bus/python-runtime.js :1
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/bus/runtime-config.js :1
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/bus/store-root.js :4
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/bus/vault-root.js :2
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/cli/commands/doctor.js :7
import fs from 'node:fs';
show 28 more
- fs passionworkeer-obsidian-shared-memory-bus-830712c/cli/lib/registry.js :2
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/cli/lib/resolve-vault-root.js :2
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/cli/lib/spawn-powershell.js :3
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/hooks/stop-hook-llm-extract/src/dedup.mjs :1
import { existsSync, createReadStream } from 'node:fs'; - fs passionworkeer-obsidian-shared-memory-bus-830712c/hooks/stop-hook-llm-extract/src/jsonl-queue.mjs :13
} from 'node:fs'; - fs passionworkeer-obsidian-shared-memory-bus-830712c/hooks/stop-hook-llm-extract/src/session-start-replay.mjs :3
import { readFileSync } from 'node:fs'; - fs passionworkeer-obsidian-shared-memory-bus-830712c/hooks/stop-hook-llm-extract/src/transcript-path.mjs :1
import { existsSync, statSync } from 'node:fs'; - fs passionworkeer-obsidian-shared-memory-bus-830712c/hooks/stop-hook-llm-extract/stop-extract.mjs :3
import { existsSync, mkdirSync, readFileSync, createReadStream } from 'node:fs'; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/adapters/generate-schemas.js :27
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/adapters/migrate-schema.js :19
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/build/build-handoff-pack.js :1
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/build/build-l0-l1-bootstrap.js :1
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/build/build-memory-layers.js :9
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/cascade/cascade-queue.js :46
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/cascade/cascade-worker.js :19
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/daemon/obsidian-blackboard-daemon.js :1
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/entity/entity-backfill.js :10
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/entity/entity-extractor/pipeline.js :8
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/export/export-md.js :51
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/extract/extraction-stress-test.mjs :10
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/generate/generate-context.js :16
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/generate/generate-memory-hygiene-report.js :4
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/generate/refresh-generated-artifacts.cjs :2
const fs = require("fs"); - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/generate/refresh-generated-artifacts.js :1
import fs from "fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/inbox/inbox-atomic-write.js :1
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/knowledge/knowledge-graph/class-core.js :8
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/knowledge/knowledge-graph/db.js :10
import fs from "node:fs"; - fs passionworkeer-obsidian-shared-memory-bus-830712c/ops/mcp/mcp-memory-tools.js :12
import fs from "node:fs";
90 more not shown — this panel samples each group; the count above is the real total.
shell / exec 52
- shell passionworkeer-obsidian-shared-memory-bus-830712c/bin.js :14
import { spawn } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/bus/embedding-provider-registry-core.mjs :51
const child = spawn(pythonRuntime.command, withPythonArgs(pythonRuntime, ["-c", scriptText]), { - shell passionworkeer-obsidian-shared-memory-bus-830712c/bus/embedding-provider-registry.js :7
import { spawn } from 'node:child_process'; - shell passionworkeer-obsidian-shared-memory-bus-830712c/bus/embedding-providers/gemini-provider.js :4
import { spawn } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/bus/embedding-providers/transformer-provider.js :4
import { spawn } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/bus/generate-embeddings.js :1
import { spawnSync } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/bus/platform/darwin.js :3
import { spawn } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/bus/platform/linux.js :3
import { spawn } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/bus/platform/windows.js :4
import { spawn, spawnSync } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/bus/python-runtime.js :4
import { spawnSync } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/cli/commands/doctor.js :4
import { spawn } from 'node:child_process'; - shell passionworkeer-obsidian-shared-memory-bus-830712c/cli/lib/spawn-powershell.js :1
import { spawn } from "node:child_process";
show 28 more
- shell passionworkeer-obsidian-shared-memory-bus-830712c/ops/build/build-memory-layers.js :12
import { execFileSync } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/ops/daemon/obsidian-blackboard-daemon.js :3
import { spawnSync } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/ops/generate/refresh-generated-artifacts.cjs :4
const { spawnSync } = require("child_process"); - shell passionworkeer-obsidian-shared-memory-bus-830712c/ops/generate/refresh-generated-artifacts.js :3
import { spawnSync } from "child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/ops/knowledge/knowledge-graph/db.js :129
exec(sql) { - shell passionworkeer-obsidian-shared-memory-bus-830712c/ops/stress/stress-test-concurrent.js :10
import { spawn } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/ops/sync/sync-openclaw-to-obsidian.js :4
import { spawnSync } from "child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/ops/verify/verify-atomic-write.js :12
import { spawn } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/retrieval/eval/judgments-generator.js :20
import { spawn } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/retrieval/semantic-search.js :7
import { spawn } from "node:child_process"; - shell (weak) passionworkeer-obsidian-shared-memory-bus-830712c/scripts/env-check.js :10
import { execFileSync } from 'node:child_process'; - shell (weak) passionworkeer-obsidian-shared-memory-bus-830712c/scripts/pressure-test-embedding-pool.js :78
const { execSync } = require("child_process"); - shell (weak) passionworkeer-obsidian-shared-memory-bus-830712c/scripts/test-all.js :9
import { spawn } from 'node:child_process'; - shell (weak) passionworkeer-obsidian-shared-memory-bus-830712c/scripts/validate-schema-sync.js :24
const { execSync, spawnSync } = require("child_process"); - shell (weak) passionworkeer-obsidian-shared-memory-bus-830712c/scripts/watchdog.js :5
import { spawn } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/shared-mcp/embedding-worker-pool.cjs :22
const { spawn } = require("child_process"); - shell passionworkeer-obsidian-shared-memory-bus-830712c/shared-mcp/health-check.js :7
import { spawn } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/shared-mcp/memory-embeddings.js :13
import { spawn } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/shared-mcp/memory-generation.js :13
import { spawn } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/shared-mcp/metrics/compute.js :27
import { spawn } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/shared-mcp/omni-platform-helpers.js :14
import { spawnSync } from "node:child_process"; - shell passionworkeer-obsidian-shared-memory-bus-830712c/shared-mcp/proto/child-process.mjs :1
import { spawn, execSync } from 'node:child_process'; - shell passionworkeer-obsidian-shared-memory-bus-830712c/shared-mcp/proto/windows-shim.mjs :1
import { spawnSync } from 'node:child_process'; - shell passionworkeer-obsidian-shared-memory-bus-830712c/start.js :10
import { spawn } from 'node:child_process'; - shell (weak) passionworkeer-obsidian-shared-memory-bus-830712c/tests/cross-language/lsh_equivalence.test.js :11
import { spawnSync } from "node:child_process"; - shell (weak) passionworkeer-obsidian-shared-memory-bus-830712c/tests/cross-language/schema-consistency.test.mjs :3
import { spawnSync } from 'node:child_process'; - shell (weak) passionworkeer-obsidian-shared-memory-bus-830712c/tests/cross-language/shared-config-parity.test.js :19
import { spawnSync } from "node:child_process"; - shell (weak) passionworkeer-obsidian-shared-memory-bus-830712c/tests/integration/js/cascade-worker-e2e.test.js :13
import { spawnSync } from "node:child_process";
12 more not shown — this panel samples each group; the count above is the real total.
network 10
- net passionworkeer-obsidian-shared-memory-bus-830712c/cli/commands/doctor.js :5
import net from 'node:net'; - net (weak) passionworkeer-obsidian-shared-memory-bus-830712c/scripts/health-check-core.mjs :18
const response = await fetch(url, { signal: AbortSignal.timeout(4000) }); - net passionworkeer-obsidian-shared-memory-bus-830712c/shared-mcp/health-check.js :8
import http from "node:http"; - net passionworkeer-obsidian-shared-memory-bus-830712c/shared-mcp/memory-bridge.js :142
const response = await fetch(`${baseUrl.toString().replace(/\/$/, "")}${route}`, options); - net passionworkeer-obsidian-shared-memory-bus-830712c/shared-mcp/memory-retrieval.js :360
const response = await fetch(`${baseUrl}/chat/completions`, { - net passionworkeer-obsidian-shared-memory-bus-830712c/shared-mcp/metrics/server.js :9
import http from "node:http"; - net passionworkeer-obsidian-shared-memory-bus-830712c/shared-mcp/omni-memory-server.js :189
const response = await fetch(`${base}/api/health`); - net passionworkeer-obsidian-shared-memory-bus-830712c/shared-mcp/playwright-stdio-proxy.js :7
import http from 'node:http'; - net passionworkeer-obsidian-shared-memory-bus-830712c/shared-mcp/singleton-stdio-mcp-proxy.mjs :12
import http from 'node:http'; - net passionworkeer-obsidian-shared-memory-bus-830712c/start.js :11
import { createServer } from 'node:net';
secrets 4
- secrets passionworkeer-obsidian-shared-memory-bus-830712c/hooks/stop-hook-llm-extract/src/session-start-replay.mjs :120
'x-api-key': process.env.ANTHROPIC_API_KEY || 'proxy-managed', - secrets passionworkeer-obsidian-shared-memory-bus-830712c/hooks/stop-hook-llm-extract/stop-extract.mjs :92
'x-api-key': process.env.ANTHROPIC_API_KEY || 'proxy-managed', - secrets passionworkeer-obsidian-shared-memory-bus-830712c/ops/extract/extraction-stress-test.mjs :430
process.env.OPENAI_API_KEY = "sk-stress-test"; - secrets (weak) passionworkeer-obsidian-shared-memory-bus-830712c/tests/unit/js/runtime-config.test.js :52
originalEmbedKey = process.env.TEST_EMBED_KEY;
declared dependencies 1
- eslint@^10.2.0
obfuscation 2
- dynamic require()/import() passionworkeer-obsidian-shared-memory-bus-830712c/tests/integration/js/inbox-atomic-flow.test.js :112
const { appendLineAtomic } = await import(${JSON.stringify(scriptUrl)}); - dynamic require()/import() passionworkeer-obsidian-shared-memory-bus-830712c/tests/unit/js/jsonl.test.mjs :19
const { createTempDir, cleanupTempDir, createTempJsonl } = await import(pathToFileURL(helpersPath + ".js"));