gbrussich52/neuron

GitHub: gbrussich52/neuron

Neuron 是一个基于 LLM 的本地优先知识库工具,能将各类原始素材自动编译、交叉链接为动态 wiki,并提供自主研究、语义搜索和自我改进能力。

Stars: 2 | Forks: 0

# Neuron 由 LLM 驱动的你的第二大脑。把任何东西丢进来——LLM 会进行编译、交叉链接,并维护一个活的知识库 wiki。你的每一个提问都在丰富它。你的每一次编程会话都在滋养它。它会主动挑战你的假设,并揭示你未知的盲区。它可以自主研究主题、自我改进,并完全在本地运行,无需任何 API 成本。 本项目基于 [Karpathy 模式](https://x.com/karpathy/status/2039805659525644595) 构建,并融入了 [Allie Miller](https://x.com/alliekmiller/status/2040884878229565816)、[Nick Spisak](https://x.com/NickSpisak_/status/2041012360668750229)、[CyrilXBT](https://x.com/cyrilXBT/status/2040988306154901742)、[Michael Chomsky](https://x.com/michael_chomsky/status/2040946855148929499) 和 [Geoffrey Huntley](https://ghuntley.com/) 的思想。 ## 工具 vs. 知识库 本仓库包含 **Neuron 工具**以及一个模板知识库。你的个人 知识存放在一个独立的知识库目录中(例如 `~/knowledge-base/`)。 `neuron` 命令会进行全局安装,并在你运行它的任何知识库中 执行操作。不要将 `brain-cli/*.js` 复制到你的知识库中——只需在此仓库中 全局安装该工具一次即可。 ## 它能做什么 ``` You → Inbox/ Drop anything: URLs, files, YouTube links, brain dumps ↓ Neuron CLI Auto-detects type, processes, routes to raw/ ↓ compile.sh LLM compiles raw → wiki (concepts, summaries, wikilinks) ↓ wiki/ Living knowledge base with typed relationships ↓ connections.js Semantic search finds related articles, suggests wikilinks ↓ insights / research Proactive insights, autonomous web research, gap detection ↓ deep-research Karpathy auto-research loop: research → compile → find gaps → repeat ↓ improve Self-improvement loop: compile → lint → research → recompile ↓ metrics Brain Score (A-F) tracks if the system is making you smarter ↓ Obsidian Browse everything with Dataview dashboards + classification badges ``` ## 功能 **收集** - **零摩擦收件箱** — 将任何内容放入 `Inbox/` 目录,Neuron CLI 会自动处理(URL、YouTube、文本、PDF、图像、思维倾倒) - **YouTube 内容提取** — 使用 yt-dlp 自动提取视频转录文本 - **思维倾倒模式** — `neuron braindump` 接受任何非结构化文本,自动分类并存档 - **统一入口** — 使用 `capture.sh` 一条命令路由所有内容 **知识** - **动态 wiki** — LLM 将原始素材编译为带有 `[[wikilinks]]` 和反向链接的概念文章 - **类型化关系** — 文章之间通过 `supports`(支持)、`contradicts`(矛盾)、`supersedes`(取代)建立链接,让知识图谱更清晰 - **增量编译** — 仅处理新的/未编译的素材(节省 token) - **全文搜索** — 使用 `neuron search` 通过 ripgrep 在整个知识库中进行搜索 - **语义搜索** — `neuron semantic-search` 通过 embedding 查找概念匹配(基于 Ollama + nomic-embed-text) - **关联发现器** — `neuron connections` 使用语义搜索 + LLM 建议 wikilink 和知识盲区问题 **智能** - **主动洞察** — `neuron insights` 挑战你的假设,识别知识盲区,发现隐藏的关联 - **每日简报** — `neuron daily` 生成包含当前活跃内容、开放性问题和待探索关联的晨间笔记 - **会话提取** — Claude Code hook 自动从每次编程对话中捕获学习成果 - **自主研究** — `neuron research "topic"` 分解主题,通过 Tavily 搜索网络,提取结果,并编译进 wiki - **Karpathy 深度研究** — `neuron deep-research "topic"` 迭代执行研究、编译、寻找盲区、研究盲区、重新编译,直到彻底完成 - **自我改进循环** — `neuron improve` 循环执行 编译→lint→研究盲区→重新编译,直到 Brain Score 达到目标等级 - **Brain Score** — `neuron metrics` 计算综合的 A-F 等级:内容量、链接密度、每周活跃度、编译延迟、lint 健康 - **Dataview 仪表板** — 知识演化、思维变化、思维倾倒追踪器、Brain Score **模型不可知** - **Provider 抽象** — `providers.js` 通过 Claude CLI、Anthropic API 或任何 OpenAI 兼容的 endpoint(Ollama、Grok、LM Studio)路由 LLM 调用 - **分层路由** — classify(分类,最便宜)、compile(编译,中等)、synthesize(综合,最好)、embed(embedding 模型)——每个层级映射到不同的模型 - **完全本地运行** — 在 `neuron.config.json` 中切换到 Ollama + Gemma 4,实现零 API 成本运行 - **零改动默认** — 默认使用 `claude-cli`,逐字节保留现有行为 **信任阶梯 (v2)** - **默认隔离** — agent/LLM 写入的内容初始状态为 `trust: unverified`;只有你亲自写入的内容初始状态才为 `verified`。搜索仅提供已验证的笔记(故障关闭),因此 AI 永远不会将其自身未经审查的输出作为事实引用 - **REVIEW.md** — 位于知识库根目录的唯一自动生成的审批界面:包含机械性失败、软标记、重新验证通道,以及等待您批准的干净草稿。勾选复选框并同步,或者使用 `neuron approve|reject|reverify ` - **哈希绑定审批** — 批准操作会将笔记正文的 sha256 哈希值记录在仅追加的 `approvals.log` 中;后续对已批准正文的任何修改都会自动将其重新隔离 - **扫描** — `neuron validate --sweep` 为任何未经扫描的写入操作标记信任级别/分类/哈希(适用于 Obsidian 保存、写入后即退出的 agent) - **权威检查点** — `scripts/neuron-sync.sh` 负责所有的 commit:扫描 → 应用你的复选框 → 白名单暂存(从不使用 `git add -A`) → 树状态 CONFIDENTIAL + 凭据扫描 → commit;发生泄漏时会暂停 push,绝不影响你的安全文件 **安全性** - **分类系统** — 每个文件都会标记为 PUBLIC/PRIVATE/CONFIDENTIAL - **凭据扫描** — 检测 API 密钥、JWT、token、密码(pre-commit hook + pre-push 目录树扫描) - **`.gitignore` 强制执行** — 私有/机密文件永远不会被提交;如果 CONFIDENTIAL 文件被暂存,会自动隔离 - **Obsidian CSS 徽章** — 绿色/橙色/红色视觉指示器 **自动化** - **文件监听器** — `neuron watch` 监听 Inbox/ 目录并自动处理新文件 - **每周定时任务 (crons)** — 周一进行汇总,周三进行 编译+lint(通过 LaunchAgents/cron 执行) - **GitHub Actions CI** — 在每个 PR 上进行分类审计 - **智能 git 自动提交** — `auto-commit.sh` 生成由 LLM 驱动的 commit 消息 - **跨设备同步** — 使用带有 git-crypt 加密的 `sync.sh` 处理 PRIVATE/CONFIDENTIAL 文件 - **迭代改进** — `neuron improve` 循环执行 编译 → lint → 研究盲区 → 重新编译,逐步收敛至目标 Brain Score 等级 ## 快速开始 ``` git clone https://github.com/gbrussich52/neuron.git cd neuron chmod +x setup.sh ./setup.sh # Install to ~/knowledge-base/ ./setup.sh /custom/path # Or install to custom location ``` ## 使用说明 ``` # 捕获任何内容 capture.sh url https://example.com ai,research # Web article capture.sh youtube https://youtube.com/watch?v=abc # YouTube transcript capture.sh file ~/Downloads/paper.pdf ml # Local file capture.sh thought "Rate limiting needs quotas" pap # Quick thought capture.sh decision "Haiku for free, Sonnet for pro" # Decision capture.sh gotcha "PostgREST drops schemas" pap # Gotcha capture.sh braindump # Interactive brain dump # 或者只需将文件放入 ~/knowledge-base/Inbox/ — Neuron CLI 会处理剩下的事情 # Core neuron watch # Watch Inbox/ and auto-process neuron process # Process all pending Inbox/ files neuron braindump # Interactive brain dump neuron status # KB stats and health neuron daily # Generate today's daily note # 搜索 neuron search "query" # Full-text search (ripgrep) neuron smart-search "query" # Combined semantic + keyword (best results) neuron semantic-search "query" # Pure semantic/vector search neuron reindex # Build or update semantic search index # Intelligence neuron insights # Proactive insight generation neuron connections # Find related articles, suggest wikilinks neuron metrics # Show Brain Score (A-F grade) neuron metrics --history # Show score trends over time neuron research "topic" # Autonomous web research (single pass) neuron deep-research "topic" # Karpathy auto-research loop (iterative) neuron improve # Self-improvement loop (compile→lint→research→repeat) # Config neuron config # Show current provider, models, features neuron config provider openai-compatible # Switch to local Ollama neuron config feature semantic_search on # Toggle features neuron config model compile gemma4:e4b # Set tier model # Pipeline capture.sh compile # Compile raw → wiki capture.sh lint # Health checks capture.sh audit # Security scan # Sync scripts/sync.sh init # Initialize git + git-crypt scripts/sync.sh push # Commit and push to remote scripts/sync.sh pull # Pull latest from remote ``` ### 研究层级 | 命令 | 范围 | 迭代次数 | 退出条件 | |---------|-------|------------|----------------| | `neuron research "topic"` | 单一主题,单次执行 | 1 | 完成一个周期后结束 | | `neuron deep-research "topic"` | 单一主题,迭代执行 | 1-5 | 主题中没有剩余盲区 | | `neuron improve` | 整个知识库 | 1-5 | Brain Score >= 目标等级 | ### 切换至本地模型(零 API 成本) ``` # 安装 Ollama + models brew install ollama && brew services start ollama ollama pull gemma4:e2b # Classify tier (fast, tiny) ollama pull gemma4:e4b # Compile + synthesize tier ollama pull nomic-embed-text # Embedding model for semantic search # 切换 neuron 到本地 — 编辑 neuron.config.json: # "provider": "openai-compatible" # 就是这样。所有 LLM 调用现在都将通过 Ollama 路由。 ``` ## 分类系统 每个 `.md` 文件必须在其 YAML frontmatter 中包含 `classification:`: | 等级 | 含义 | 规则 | |-------|---------|-------| | `PUBLIC` | 通用知识 | 可安全分享、发布博客、开源 | | `PRIVATE` | 个人/项目上下文 | 仅限本地,绝不发布 | | `CONFIDENTIAL` | 凭据、PII、客户数据 | 绝不分享,绝不提交 | `.gitignore` 会阻止 PRIVATE 和 CONFIDENTIAL 文件。`classify-check.sh` 会审计缺失的标签,并扫描泄露的凭据(API 密钥、JWT、Stripe 密钥、GitHub token 等)。 ## 架构 ``` ~/knowledge-base/ ├── Inbox/ # Drop anything here — auto-processed ├── Daily/ # Daily notes (Templater template) ├── Dashboards/ # Dataview dashboards │ ├── Knowledge-Evolution # Track KB growth over time │ ├── Thinking-Changes # How your thinking evolved │ ├── Brain-Dump-Tracker # Capture history and processing stats │ └── Brain-Score # Thinking quality score + trends ├── Brain-Index/ # Semantic search index (auto-generated) │ ├── embeddings.json # File-backed vector embeddings │ └── metrics.json # Weekly Brain Score snapshots ├── memory/ # Working memory │ ├── context.md # Current focus + roadmap [PRIVATE] │ ├── preferences.md # Workflow prefs [PUBLIC] │ ├── projects.md # Project facts [PRIVATE] │ └── people.md # Stakeholders [CONFIDENTIAL] ├── raw/ # Processed source material ├── wiki/ │ ├── index.md # Auto-maintained master index │ ├── concepts/ # Compiled articles with [[wikilinks]] │ ├── summaries/ # Per-source summaries │ ├── queries/ # Filed Q&A, research reports, gap questions │ └── sessions/ # Auto-extracted session learnings [PRIVATE] ├── Notes/ # Unstructured brain dumps (swept to Inbox nightly) ├── Archive/ # Processed inbox items, retired content ├── brain-cli/ # Node.js Neuron CLI │ ├── brain.js # Main CLI (16 commands) │ ├── providers.js # LLM provider abstraction (Claude/Anthropic/Ollama) │ ├── llm-run.js # Shell bridge for bash scripts → providers │ ├── neuron.config.json # Provider routing, feature flags, research config │ ├── semantic.js # File-backed vector search + incremental indexing │ ├── connections.js # Cross-linker + gap detector │ ├── metrics.js # Brain Score (A-F grade) + weekly snapshots │ ├── research.js # Autonomous web research + Karpathy deep research │ └── improve.js # Self-improvement loop (compile → lint → research → recompile) ├── scripts/ # Shell automation │ ├── capture.sh # Universal entry point (18 subcommands) │ ├── compile.sh # raw → wiki compilation │ ├── lint.sh # Wiki health checks │ ├── query.sh # Q&A against wiki │ ├── ingest.sh # URL/file ingestion (firecrawl preferred) │ ├── session-extract.sh # Claude Code session → learnings │ ├── consolidate.sh # Memory pruning + session promotion │ ├── classify-check.sh # Classification + credential audit │ ├── auto-commit.sh # Smart git commits with LLM messages │ ├── sync.sh # Cross-device git + git-crypt sync │ └── notes-sweep.sh # Nightly sweep: Notes/ → Inbox/ ├── templates/ # Obsidian Templater templates └── CLAUDE.md # Vault rules for LLM agents ``` ## 自动化 | 触发器 | 执行操作 | |---------|-------------| | 每次会话结束 | 提取学习成果 → `wiki/sessions/` | | 每晚 10:00 | 清理 `Notes/` → 移至 `Inbox/` 等待处理 | | 周一早 9:00 | 记忆汇总 + 会话提升 | | 周三早 9:00 | 知识库 编译 + lint + 分类审计 | ### Claude Code 会话 Hook(可选) 从每次 Claude Code 对话中自动提取学习成果: ``` claude settings set hooks.Stop '[{"command": "~/knowledge-base/scripts/session-hook.sh"}]' ``` ### 卸载自动化 ``` ./setup.sh --uninstall # Removes LaunchAgents, keeps your data ``` ## 环境要求 **必需(以下之一):** - **Claude Code CLI** (`claude`) — 默认 LLM 引擎,零配置(推荐) - **Anthropic API key** — 用于在没有 Claude CLI 的情况下直接访问 API **可选 — 本地模型:** - **Ollama** (`ollama`) — 适用于使用 Gemma 4、Llama 等进行完全本地、零 API 成本的运行。如果你使用 Claude CLI 或 Anthropic API,则不需要。 **平台:** - **macOS** — 使用 LaunchAgents 进行自动化 - **Linux** — 使用 cron 进行自动化(由安装程序自动检测) **可选:** - **Obsidian** — 用于浏览 wiki,查看可视化分类徽章和 Dataview 仪表板 - **firecrawl-cli** — 提供更好的 URL 提取时的 Web 转 Markdown 转换 - **Tavily API key** — 启用 `neuron research` 和 `neuron deep-research` 的网络研究功能 - **git-crypt** — 加密 PRIVATE/CONFIDENTIAL 文件,以便安全地进行远程同步 ## 设计原则 1. **是 LLM 在维护 wiki,而不是你** — 你只需投入素材,由它进行编译 2. **每次查询都在复利增长** — Q&A 结果会回流到 wiki 中 3. **模型不可知** — 在一行配置中切换 Provider;在本地或云端运行 4. **设计上的成本优化** — 分层路由将廉价任务分配给廉价模型,困难任务分配给优质模型 5. **自我改进** — 系统自主研究自身盲区并重新编译 6. **在此规模下无需 RAG** — LLM 上下文窗口 + 自动维护的索引即可处理;针对概念查询提供可选的语义搜索 7. **默认安全** — 每个文件都进行分类、凭据扫描,并强制执行 .gitignore 8. **记忆只是提示,而非真相** — 在根据记忆采取行动之前,务必对照当前状态进行验证 ### 最初的蓝图 - **[Andrej Karpathy — LLM 知识库](https://x.com/karpathy/status/2039805659525644595)**(2026年4月2日)— 核心模式:原始数据 → LLM 编译的 wiki → Q&A + lint 循环。*"我最近的 token 吞吐量中很大一部分不再用于操作代码,而是更多地用于操作知识。"* 另请参阅他的 [GitHub Gist](https://gist.github.com/karpathy) 获取实现说明。这是其他一切构建的基础。 ### 直接影响(塑造 Neuron 的讨论线索) - **[Allie Miller — Claudeopedia](https://x.com/alliekmiller/status/2040884878229565816)** — 扩展了 Karpathy 模式,引入了 `/wiki` 技能(可捕获屏幕截图和下载文件)、Dataview 可视化仪表板,以及一个能主动挑战你信念的、用于质疑假设的 cron 任务。Neuron 的 `neuron insights` 和 Dataview 仪表板正源于此。 - **[Nick Spisak — LLM 知识 Pipeline](https://x.com/NickSpisak_/status/2041012360668750229)** — 构建了一个 pipeline,使用 yt-dlp 获取 YouTube 转录文本,使用 [steipete 的 summarize CLI](https://github.com/steipete/summarize) 进行内容压缩,使用 [tobi/qmd](https://github.com/tobi/qmd) 进行极快的本地 Markdown 搜索,以及一个用于索引 YouTube 存档、X 导出数据和 AI agent JSONL 日志的 brain CLI。Neuron 的 YouTube 提取、brain CLI 架构和文件监听器概念正源于此。 - **[CyrilXBT — 第二大脑系统](https://x.com/cyrilXBT/status/2040988306154901742)** — 一个完整的基于 Obsidian 的第二大脑,拥有 4 文件夹的 PARA 结构(Inbox/Notes/Projects/Archive),集成了 Dataview + Templater + Canvas,包含每日笔记模板、CLAUDE.md 知识库配置,以及 4 个 Claude 工作流:晨间简报、想法开发、关联发现写作加速器。Neuron 的文件夹结构、每日笔记模板和 4 个工作流部分直接来源于此。 - **[Michael Chomsky — 自我更新的知识库愿景](https://x.com/michael_chomsky/status/2040946855148929499)** — 一种将来自 iMessage、邮件、X 和 AI 聊天记录中的知识自动同步到纯文本可观察 Markdown 文件中的愿景,具备 MCP 风格的访问方式、基于规则的自动组织,以及主动的生活改善建议。Neuron 的主动洞察生成和“系统应该主动让你变得更聪明”的哲学正源于此。 ### 架构影响 - **[Claude Code 记忆系统](https://docs.anthropic.com/en/docs/claude-code)** — Anthropic 基于文件的记忆架构(MEMORY.md 指针索引 + 主题文件)启发了记忆层。Neuron 在此基础上扩展了分类、会话提取、类型化关系和编译 pipeline。 - **[Obsidian](https://obsidian.md/)** — “思维 IDE”。本地优先、原生 Markdown、可扩展插件。Neuron 被设计为原生的 Obsidian 知识库,包含 `[[wikilinks]]`、frontmatter 元数据和 Dataview 查询。关键插件:[Dataview](https://github.com/blacksmithgu/obsidian-dataview)、[Templater](https://github.com/SilentVoid13/Templater) 和内置的 Canvas。 - **[Tiago Forte — 构建第二大脑](https://www.buildingasecondbrain.com/)** — PARA 方法(Projects、Areas、Resources、Archive)影响了目录结构。Neuron 对此进行了调整:Inbox(收集)→ raw(处理过的素材)→ wiki(编译后的知识)→ Archive(已完成的资料)。 ### 相关工具参考 | 工具 | 功能 | 在 Neuron 中的用途 | |------|-------------|----------------| | [yt-dlp](https://github.com/yt-dlp/yt-dlp) | YouTube 视频/音频/字幕下载器 | YouTube 转录文本提取 | | [firecrawl](https://github.com/mendableai/firecrawl) | 网页抓取 → 干净的 Markdown | URL 提取(优于 curl) | | [ripgrep (rg)](https://github.com/BurntSushi/ripgrep) | 极速正则表达式搜索 | `neuron search` 全文搜索 | | [tobi/qmd](https://github.com/tobi/qmd) | 快速的本地 Markdown 搜索 | 推荐用于大型知识库(未内置) | | [steipete/summarize](https://github.com/steipete/summarize) | CLI 内容摘要工具 | 推荐用于长文本内容(未内置) | ### 安全模式 - **数据分类(NIST SP 800-60)** — PUBLIC/PRIVATE/CONFIDENTIAL 分级系统是联邦信息分类标准的简化版。在此应用是因为无论你是否察觉,你的笔记中都不可避免地会包含 API 密钥、项目机密和利益相关者信息。 ### 延伸阅读 - [Simon Willison — LLM 增强的个人数据管理](https://simonwillison.net/) — 关于使用 LLM 管理个人知识的开创性工作 - [Karpathy — 关于临时 wiki 的后续讨论](https://x.com/karpathy/status/2039805659525644595) — *"对前沿级 LLM 提出的每一个问题都可以生成一个 LLM 团队:迭代构建整个临时 wiki,对其进行 lint,循环几次,然后撰写一份完整的报告。"* ## 快速入门指南 **刚开始接触 Neuron?**从这里开始:**[QUICKSTART.md](QUICKSTART.md)** 涵盖安装、Obsidian 设置、你的第一段内容、搜索、研究和日常工作流的分步指南。无需任何前期经验。 ## 贡献 欢迎提交 Issue 和 PR。一些想法: - **Obsidian 插件** — 文件浏览器中的分类徽章,从命令面板触发“编译选中项”,Brain Score 小部件 - **额外的搜索 Provider** — Brave Search、SearXNG、Perplexity 作为 Tavily 的替代方案 - **更好的 Web 转 Markdown** — pandoc、readability、Jina Reader - **移动端快速捕获** — 集成 Shortcuts/Tasker 以实现 iOS/Android → Inbox/ - **MCP 服务器** — 将 neuron 作为 MCP 工具暴露给其他 AI agent - **Fine-tuning pipeline** — Karpathy 的愿景:从 wiki 生成合成数据,进行 fine-tune,让 LLM 在其权重中“掌握”这些数据 ## 许可证 MIT
标签:AI风险缓解, Cutter, LLM, Obsidian, Petitpotam, Unmanaged PE, 个人知识管理, 人工智能, 数据可视化, 用户模式Hook绕过, 知识库管理, 笔记软件, 网络调试, 自动化, 自定义脚本