github analyzed 8dee1a2

flowing-abyss/obsidian-hybrid-search

github

Hybrid search over your Obsidian vault – CLI and MCP server

maintainer
flowing-abyss
license
MIT
first seen
2026-06-06
last seen
2026-06-15
releases · 30d
10
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged dynamic code execution in flowing-abyss/obsidian-hybrid-search
  2. HIGH code analysis flagged dynamic code execution in flowing-abyss/obsidian-hybrid-search
capabilities4 tools
transport stdio · streamable-http · http counts 4 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • read

    Fetch one or more notes by vault-relative path. Returns full content, title, aliases, tags, links, and backlinks. On path miss: returns found: false with top-3 fuzzy suggestions. Accepts a single path

  • reindex

    Reindex the vault or a specific file

  • search

    Search the vault. Use query for text search (mode: hybrid/semantic/fulltext/title) or path for semantic similarity. Combine path with related: true for graph traversal. Pass queries[] for multi-query

  • status

    Show total notes, indexed count, last indexed time

skills & danger signalsgithub-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 8dee1a2 · analyzer v17 · 2d ago

skills & prompt files 1

code evidencevv0.13.7 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

filesystem 17

  • fs flowing-abyss-obsidian-hybrid-search-8dee1a2/eval/compare.ts :8 import fs from 'node:fs';
  • fs flowing-abyss-obsidian-hybrid-search-8dee1a2/eval/evaluate-qmd.ts :18 import fs from 'node:fs';
  • fs flowing-abyss-obsidian-hybrid-search-8dee1a2/eval/evaluate.ts :11 import fs from 'node:fs';
  • fs flowing-abyss-obsidian-hybrid-search-8dee1a2/eval/prepare-evergreen-notes.ts :1 import fs from 'node:fs';
  • fs flowing-abyss-obsidian-hybrid-search-8dee1a2/eval/prepare-longmemeval.ts :1 import fs, { createWriteStream } from 'node:fs';
  • fs flowing-abyss-obsidian-hybrid-search-8dee1a2/eval/prepare-obsidian-help.ts :2 import fs from 'node:fs';
  • fs flowing-abyss-obsidian-hybrid-search-8dee1a2/eval/quality.ts :1 import { readFileSync } from 'node:fs';
  • fs flowing-abyss-obsidian-hybrid-search-8dee1a2/eval/speed-profile.ts :10 import fs from 'node:fs';
  • fs flowing-abyss-obsidian-hybrid-search-8dee1a2/src/auto-heal.ts :11 } from 'node:fs';
  • fs flowing-abyss-obsidian-hybrid-search-8dee1a2/src/cli.ts :8 import { existsSync, readFileSync } from 'node:fs';
  • fs flowing-abyss-obsidian-hybrid-search-8dee1a2/src/db.ts :2 import { statSync, unlinkSync } from 'node:fs';
  • fs flowing-abyss-obsidian-hybrid-search-8dee1a2/src/indexer.ts :3 import { readdirSync, statSync } from 'node:fs';
  • fs flowing-abyss-obsidian-hybrid-search-8dee1a2/src/mcp-runtime.ts :3 import { existsSync, readFileSync } from 'node:fs';
  • fs flowing-abyss-obsidian-hybrid-search-8dee1a2/src/mcp-supervisor.ts :10 } from 'node:fs';
  • fs flowing-abyss-obsidian-hybrid-search-8dee1a2/src/native-preflight.ts :1 import { appendFileSync, mkdirSync, writeFileSync } from 'node:fs';
  • fs flowing-abyss-obsidian-hybrid-search-8dee1a2/src/preflight.ts :1 import { writeSync } from 'node:fs';
  • fs flowing-abyss-obsidian-hybrid-search-8dee1a2/src/reranker.ts :1 import fs from 'node:fs';

shell / exec 5

  • shell flowing-abyss-obsidian-hybrid-search-8dee1a2/eval/evaluate-qmd.ts :17 import { spawnSync } from 'node:child_process';
  • shell flowing-abyss-obsidian-hybrid-search-8dee1a2/eval/prepare-obsidian-help.ts :1 import { spawnSync } from 'node:child_process';
  • shell flowing-abyss-obsidian-hybrid-search-8dee1a2/src/auto-heal.ts :1 import { spawn } from 'node:child_process';
  • shell flowing-abyss-obsidian-hybrid-search-8dee1a2/src/cli.ts :7 import { exec } from 'node:child_process';
  • shell flowing-abyss-obsidian-hybrid-search-8dee1a2/src/mcp-supervisor.ts :1 import { spawn } from 'node:child_process';

network 7

  • net flowing-abyss-obsidian-hybrid-search-8dee1a2/eval/prepare-evergreen-notes.ts :349 const response = await fetch(`${BASE_URL}/${encodeURIComponent(slug)}`, {
  • net flowing-abyss-obsidian-hybrid-search-8dee1a2/eval/prepare-longmemeval.ts :2 import { get as httpsGet } from 'node:https';
  • net flowing-abyss-obsidian-hybrid-search-8dee1a2/src/cli.ts :411 const res = await fetch('https://registry.npmjs.org/obsidian-hybrid-search/latest', { signal });
  • net flowing-abyss-obsidian-hybrid-search-8dee1a2/src/embedder.ts :143 const res = await fetch(`${config.apiBaseUrl}/models/${config.apiModel}`, { headers });
  • net flowing-abyss-obsidian-hybrid-search-8dee1a2/src/mcp-http-server.ts :8 } from 'node:http';
  • net flowing-abyss-obsidian-hybrid-search-8dee1a2/src/mcp-runtime.ts :68 const res = await fetch('https://registry.npmjs.org/obsidian-hybrid-search/latest', { signal });
  • net flowing-abyss-obsidian-hybrid-search-8dee1a2/src/mcp-supervisor.ts :11 import net from 'node:net';

secrets 1

  • secrets flowing-abyss-obsidian-hybrid-search-8dee1a2/src/config.ts :19 return process.env.OPENAI_API_KEY;

database 2

  • db flowing-abyss-obsidian-hybrid-search-8dee1a2/src/cli.ts :4 import Database from 'better-sqlite3';
  • db flowing-abyss-obsidian-hybrid-search-8dee1a2/src/db.ts :1 import Database from 'better-sqlite3';

declared dependencies 29

  • @modelcontextprotocol/sdk@^1.29.0
  • better-sqlite3@^12.10.0
  • chokidar@^5.0.0
  • cli-table3@^0.6.5
  • commander@^14.0.3
  • gray-matter@^4.0.3
  • onnxruntime-node@^1.26.0
  • picocolors@^1.1.1
  • sqlite-vec@^0.1.9
  • yaml@^2.9.0
  • zod@^4.4.3
  • @commitlint/cli@^20.5.3
  • @commitlint/config-conventional@^20.5.3
  • @types/better-sqlite3@^7.6.13
  • @types/node@^25.9.2
  • @vitest/coverage-v8@^4.1.5
  • eslint@^9.39.4
  • eslint-plugin-import@^2.32.0
  • eslint-plugin-sonarjs@^4.0.3
  • husky@^9.1.7
  • knip@^6.16.1
  • lint-staged@^16.4.0
  • prettier@^3.8.3
  • prettier-plugin-organize-imports@^4.3.0
  • tsx@^4.22.4
  • typescript@^6.0.3
  • typescript-eslint@^8.60.1
  • vitest@^4.1.5
  • @huggingface/transformers@^4.2.0