by xianjianlf2
Open-source AI agent that reads your PDFs and draws editable mind maps — visible tool-calling loop, built-in RAG, BYOK, multi-provider (OpenAI / Claude / DeepSeek)
# Add to your Claude Code skills
git clone https://github.com/xianjianlf2/MindGeniusAILast scanned: 6/11/2026
{
"issues": [
{
"type": "npm-audit",
"message": "@typescript-eslint/eslint-plugin: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "@typescript-eslint/parser: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "@typescript-eslint/type-utils: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "@typescript-eslint/typescript-estree: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "@typescript-eslint/utils: Vulnerability found",
"severity": "high"
},
{
"type": "npm-audit",
"message": "esbuild: esbuild enables any website to send any requests to the development server and read the response",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "lint-staged: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "micromatch: Regular Expression Denial of Service (ReDoS) in micromatch",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "minimatch: minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
"severity": "high"
},
{
"type": "npm-audit",
"message": "vite: Vite Vulnerable to Path Traversal in Optimized Deps `.map` Handling",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "vite-node: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "vitest: When Vitest UI server is listening, arbitrary file can be read and executed",
"severity": "critical"
},
{
"type": "npm-audit",
"message": "yaml: yaml is vulnerable to Stack Overflow via deeply nested YAML collections",
"severity": "medium"
}
],
"status": "FAILED",
"scannedAt": "2026-06-11T08:49:18.528Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}No comments yet. Be the first to share your thoughts!
Requires a passing catalog security scan. Resolve the flagged issues and resubmit to enable featuring.
Talk to Hermas — an autonomous agent that plans, retrieves your documents, and draws editable mind maps for you, with every tool call visible in real time.

🤖 A real agent, not a prompt wrapper. Most "AI mind map" tools do a single prompt → markdown → render. Hermas runs a multi-step tool-calling loop (Vercel AI SDK v5): it decides on its own to search your uploaded PDF (rag_query), generate the map structure (mindmap_generate), and expand branches (node_expand) — chained automatically, with each step shown live as an expandable tool card (input/output included).
📄 It reads your documents while drawing. Attach a PDF from the composer (📎): upload → chunk → embed → in-memory vector index, all in ~100 lines without LangChain. Hermas cites retrieved passages and incorporates them into the map.
🔑 Bring your own key, keep your privacy. OpenAI / Anthropic (Claude) / DeepSeek, switchable at runtime. Keys live only in your browser's localStorage and are sent per-request to your own backend — never stored server-side. Custom gateway (base URL) supported.
🔁 Rebuilt without breaking anything. The stack was migrated from Vue/Koa/LangChain to React/Hono/AI SDK incrementally: the legacy SSE envelope {status, data} and every old endpoint still work — agent events are layered inside the existing protocol (packages/shared), not bolted on beside it.
🎨 A focused single workbench. Chat panel + editable X6 canvas + document drawer in one screen. Add/rename/delete nodes, AI-brainstorm any branch, undo/redo, export PNG. Dark, restrained design system with zero UI-framework dependency (custom tokens & components — no antd).
├── apps/
│ ├── web/ # React 18 + Vite + Zustand + AntV X6 (custom design system)
│ └── server/ # Hono + Vercel AI SDK v5 (Hermas agent, RAG, SSE streaming)
└── packages/
└── shared/ # SSE / agent-event protocol shared by both ends
streamText + stopWhen: stepCountIs(8), tools defined with zod schemasembedMany → cosine retrieval, in-processAuthorization / X-LLM-Provider / OpenAI-proxy headersSee docs/REFACTOR_PLAN.md for the full design.
Requirements: Node.js >= 20, pnpm >= 9
pnpm install
# configure the server
cp apps/server/.env.example apps/server/.env # set OPENAI_API_KEY etc.
# start web (5173) + server (3000) together
pnpm dev
Or with Docker:
cp apps/server/.env.example apps/server/.env
docker compose up --build # web on :8080, api on :3000
| Command | Description |
|---|---|
pnpm dev |
run web + server in parallel |
pnpm build |
typecheck & build all packages |
pnpm test |
run vitest workspace |
pnpm lint |
eslint |