A local-first conversation, context, and knowledge recorder for LLM workflows.
Nidhogg 是一个面向工程师、重度 LLM 使用者的 本地优先(local-first)上下文与对话管理工具。
它关注的不是“如何把聊天做得更像人”,而是一个更工程化、更长期的问题:
LLM 的上下文是易失的,但工程知识应该是可重建、可审计、可复用的。
Nidhogg 通过 结构化存储 + MCP(Model Context Protocol)+ Plugin 机制,
把一次次与模型的对话,沉淀为真正可以长期积累的工程资产。
在真实的工程场景中,你大概率遇到过这些情况:
- 架构设计、排障推理、决策讨论都消失在聊天窗口里
- Prompt 很复杂,但无法被版本化或回溯
- 每次都要“重新喂上下文”,效率极低
- 模型很强,但上下文管理极其原始
Nidhogg 想解决的核心问题只有一个:
把 LLM 对话,从“临时交流”升级为“工程材料”。
-
Local-first
所有数据默认存储在本地文件系统,可离线、可备份、可审计 -
Rebuildable(可重建)
向量、索引、统计数据都不是源数据,随时可以丢弃并重建 -
LLM-agnostic
不绑定任何模型或厂商,通过 MCP 与上层工具交互 -
Engineering-friendly
面向工程师,而不是泛聊天用户
Nidhogg/ ├── README.md ├── LICENSE ├── AGENTS.md │ ├── nidhogg-mcp/ # MCP Server(Python) │ └── src/ │ └── nidhogg_mcp/ │ ├── nidhogg-marketplace/ # Claude Code Plugin Marketplace │ ├── .claude-plugin/ │ │ └── marketplace.json │ └── nidhogg/ # Plugin 定义 │ └── prd/ # 设计 / 产品文档 conversation.md:按时间顺序保存完整对话,便于回溯与审计。meta.json:结构化元数据(标题、摘要、标签、决策等),支撑检索与二次消费。chunks.jsonl:分块后的纯文本,供向量化或索引重建;v0 可为空,按需生成。
- 已安装 Claude Code / claude CLI
- 已安装 Python 3.10+
- 已安装 uv(用于运行 Python 环境与依赖)
可选检查:
python --version uv --version claude --version- git clone https://github.com/Shuimo03/Nidhogg.git
- 启动 claude code
/plugin marketplace add ./Nidhogg/nidhogg-marketplace /plugin install nidhogg@nidhogg- 查看 plugin 命令,如果出现 /nidhogg:save 表示安装成功。
因为使用的是 stdio-server,需要确保 MCP 服务的 cwd 与 PYTHONPATH 指向 nidhogg-mcp 目录。以下示例基于仓库结构:
<repo-root>/ nidhogg-mcp/ nidhogg-marketplace/ nidhogg/ # CLAUDE_PLUGIN_ROOT 举例说明:如果你在 /Users/mac/code/prometheus 下 clone 了 Nidhogg, 需要修改 /Users/mac/code/prometheus/nidhogg-marketplace/nidhogg/.mcp.json。
示例配置(插件目录内的 .mcp.json):
{ "mcpServers": { "nidhogg-mcp": { "type": "stdio", "command": "uv", "args": ["run", "python", "-m", "nidhogg_mcp"], "cwd": "${CLAUDE_PLUGIN_ROOT}/../../nidhogg-mcp", "env": { "PYTHONPATH": "${CLAUDE_PLUGIN_ROOT}/../../nidhogg-mcp/src" } } } }如果你将插件目录移动到其他位置,请相应调整 cwd 与 PYTHONPATH, 确保能定位到 nidhogg-mcp。