tags:
"#Claude_Obsidian"
适用环境:macOS + Claude Code v2.1.138
主题:安装AgriciDaniel/claude-obsidian与AgriciDaniel/claude-canvas过程中遇到的问题与解决方法
本次主要安装两个 Claude Code 插件:
| 插件 | 作用 |
|---|---|
claude-obsidian |
用于 Claude Code + Obsidian,基于 Karpathy LLM Wiki 思路管理知识库 |
claude-canvas |
用于生成 / 编辑 Obsidian Canvas,可做流程图、思维导图、知识图谱、演示画布等 |
最终安装结果:
claude-canvas@local-claude-marketplace
Version: 1.0.0
Scope: user
Status: enabled
claude-obsidian@claude-obsidian-marketplace
Version: 1.6.0
Scope: user
Status: enabled
claude-obsidian 安装过程执行:
claude plugin marketplace add AgriciDaniel/claude-obsidian
输出:
✔ Successfully added marketplace: claude-obsidian-marketplace
说明 marketplace 添加成功。
执行:
claude plugin install claude-obsidian@claude-obsidian-marketplace
报错:
Connection closed by 198.18.1.34 port 22
fatal: Could not read from remote repository.
claude plugin install 阶段尝试通过 GitHub SSH 克隆仓库,但本地网络 / 代理环境阻断了 GitHub SSH 的 22 端口。
即使已经添加了 marketplace,真正安装插件时仍然需要再次 clone 仓库。
检查:
ls ~/.ssh
当时只有:
config
id_ed25519_gitee
id_ed25519_gitee.pub
说明本机只有 Gitee 的 SSH key,没有 GitHub 专用 key。
执行:
ssh-keygen -t ed25519 -C "zhensolid@outlook.com" -f ~/.ssh/id_ed25519_github
然后复制公钥:
pbcopy < ~/.ssh/id_ed25519_github.pub
去 GitHub 添加 SSH Key:
GitHub → Settings → SSH and GPG keys → New SSH key
Title 可写:
MacBook Claude Code
因为 22 端口被断开,所以需要让 GitHub SSH 改走 443 端口。
编辑配置:
nano ~/.ssh/config
加入或修改为:
Host github.com
HostName ssh.github.com
User git
Port 443
IdentityFile ~/.ssh/id_ed25519_github
IdentitiesOnly yes
Host gitee.com
HostName gitee.com
User git
IdentityFile ~/.ssh/id_ed25519_gitee
IdentitiesOnly yes
设置权限:
chmod 600 ~/.ssh/config
chmod 600 ~/.ssh/id_ed25519_github
执行:
ssh -T git@github.com
第一次会提示确认主机:
The authenticity of host '[ssh.github.com]:443 ...' can't be established.
Are you sure you want to continue connecting?
输入:
yes
成功输出:
Hi zhensolid! You've successfully authenticated, but GitHub does not provide shell access.
这说明 GitHub SSH 已成功通过 443 端口连接。
claude-obsidian执行:
claude plugin install claude-obsidian@claude-obsidian-marketplace
成功:
✔ Successfully installed plugin: claude-obsidian@claude-obsidian-marketplace
/wiki 命令不可用的问题安装前,直接在 clone 下来的 claude-obsidian 文件夹里运行 Claude Code,输入:
/wiki
报错:
Unknown command: /wiki
直接 git clone 项目作为 Vault,并不一定会自动注册 slash command。
clone 方式下,Claude Code 可以读取项目里的:
skills/wiki/SKILL.md
WIKI.md
CLAUDE.md
但 /wiki 这类 slash command 只有在插件安装成功后才会注册。
安装成功后,命令列表里看到的不是单独的:
/wiki
而是:
/claude-obsidian:wiki
/wiki-ingest
/wiki-query
/wiki-lint
/wiki-fold
对应关系:
| 命令 | 作用 |
|---|---|
/claude-obsidian:wiki |
初始化或检查 claude-obsidian wiki vault |
/wiki-ingest |
导入资料,将 source 整理进 wiki |
/wiki-query |
基于 wiki 查询问题,优先读 hot cache 和 index |
/wiki-lint |
检查 wiki 健康度,如死链、孤立页面、重复页面 |
/wiki-fold |
将 wiki log 汇总折叠成 meta 页面 |
所以实际应使用:
/claude-obsidian:wiki
而不是:
/wiki
.raw/ 目录的问题.raw/ 是什么?在 claude-obsidian 项目中:
.raw/ = 原始资料目录
wiki/ = Claude 整理后的知识库
.raw/ 下放原始资料,Claude 读取它,但默认不修改它。
整理后的内容会进入:
wiki/
.raw/ 在 Obsidian 里可能看不到因为 .raw 是点开头目录,macOS / Obsidian 可能默认隐藏。
这不是项目异常,而是隐藏目录机制导致。
raw/?不太建议随便改。
原因是项目可能使用:
.raw/.manifest.json
记录已 ingest 文件的 hash,用来避免重复处理。
所以更推荐保留官方默认结构:
.raw/
如果需要在 Finder 里显示隐藏文件,可按:
Command + Shift + .
claude-obsidian/
├── .raw/
│ ├── inbox/
│ ├── notes/
│ ├── articles/
│ ├── transcripts/
│ └── papers/
├── wiki/
│ ├── index.md
│ ├── hot.md
│ └── log.md
创建目录:
cd ~/Documents/claude-obsidian
mkdir -p .raw/inbox .raw/notes .raw/articles .raw/transcripts .raw/papers
日常使用:
/wiki-ingest .raw/inbox
或者自然语言:
请处理 .raw/inbox 里的新增资料,已 ingest 过的跳过,整理进 wiki,并更新 index、log、hot。
不一定。
可以固定使用 .raw/inbox/ 作为资料入口。
日常流程:
把新资料丢进:
.raw/inbox/
在 Claude Code 里说:
处理 .raw/inbox 里的新增资料
或者:
/wiki-ingest .raw/inbox
不会。
正常设计是:
.raw/ = 原始资料,只在 ingest 时主要读取
wiki/ = 整理后的知识库,平时 query 主要读取
wiki/index.md = 索引
wiki/hot.md = 高频 / 最近上下文缓存
wiki/log.md = 操作记录
提问时应该是:
用户提问
↓
读取 wiki/hot.md
↓
读取 wiki/index.md
↓
定位相关 wiki 页面
↓
只读取相关页面
↓
必要时才回查 .raw/
为了省 token,可以这样问:
根据我的 wiki 回答,优先读取 hot 和 index,只打开相关 wiki 页面,不要重新读取全部 .raw/。
claude-canvas 安装问题执行:
claude plugin install AgriciDaniel/claude-canvas
报错:
Plugin "AgriciDaniel/claude-canvas" not found in any configured marketplace
原因:Claude Code 当前的插件系统不是直接用 GitHub 仓库名安装,而是从已配置 marketplace 中查找插件。
marketplace add 也失败执行:
claude plugin marketplace add AgriciDaniel/claude-canvas
报错:
Marketplace file not found:
.claude-plugin/marketplace.json
原因:claude-canvas 仓库是一个 plugin 仓库,但不是 marketplace 仓库。它有:
.claude-plugin/plugin.json
但没有:
.claude-plugin/marketplace.json
claude plugin add 不存在执行:
claude plugin add ~/Documents/claude-canvas
报错:
error: unknown command 'add'
原因:当前 Claude Code v2.1.138 不支持 plugin add 这个子命令。
claude-canvas 最终解决方案:自建本地 marketplacecd ~/Documents
git clone https://github.com/AgriciDaniel/claude-canvas
mkdir -p ~/Documents/local-claude-marketplace/.claude-plugin
mkdir -p ~/Documents/local-claude-marketplace/plugins
cp -R ~/Documents/claude-canvas ~/Documents/local-claude-marketplace/plugins/claude-canvas
创建 marketplace 文件:
cat > ~/Documents/local-claude-marketplace/.claude-plugin/marketplace.json <<'EOF'
{
"name": "local-claude-marketplace",
"description": "Local marketplace for manually installed Claude Code plugins",
"owner": {
"name": "shen liang"
},
"plugins": [
{
"name": "claude-canvas",
"description": "AI-orchestrated visual production for Obsidian Canvas",
"source": "./plugins/claude-canvas"
}
]
}
EOF
claude plugin marketplace add ~/Documents/local-claude-marketplace
claude plugin install claude-canvas@local-claude-marketplace
claude plugin list
成功输出:
✔ Successfully added marketplace: local-claude-marketplace
✔ Successfully installed plugin: claude-canvas@local-claude-marketplace
插件列表:
claude-canvas@local-claude-marketplace
Version: 1.0.0
Scope: user
Status: enabled
claude-obsidian@claude-obsidian-marketplace
Version: 1.6.0
Scope: user
Status: enabled
两个插件都显示:
Scope: user
说明它们是用户级安装,不是只能在某一个文件夹使用。
也就是说:
插件命令 = 全局可用
实际处理对象 = 当前 Claude Code 所在目录
例如:
cd ~/Documents/claude-obsidian
claude
这时插件处理的是:
~/Documents/claude-obsidian
如果进入另一个 Obsidian Vault:
cd ~/Documents/MyVault
claude
再运行插件命令,它会作用于当前这个 Vault。
cd ~/Documents/claude-obsidian
claude
/claude-obsidian:wiki
把资料放到:
.raw/inbox/
然后运行:
/wiki-ingest .raw/inbox
或者:
请处理 .raw/inbox 里的新增资料,已处理过的跳过,整理进 wiki,并更新 index、log、hot。
/wiki-query 实时字幕方案怎么搭建?优先基于 wiki,不要重读全部 .raw。
/wiki-lint
进入 Claude Code 后输入:
/
查看是否有 canvas 相关命令。
可以尝试:
请基于我的 wiki,生成一个“Mac 实时字幕方案”的 Obsidian Canvas 流程图。
claude-obsidian 推荐通过 marketplace 安装。github.com 走 ssh.github.com:443。/wiki 不一定存在,实际命令是 /claude-obsidian:wiki。.raw/ 是官方默认 source 目录,不建议随意改名。.raw/,正常会先查 hot.md 和 index.md。claude-canvas 不是 marketplace 仓库,当前环境需要自建本地 marketplace 安装。cd 到哪个目录。# 进入 vault
cd ~/Documents/claude-obsidian
claude
# 初始化 / 检查 wiki
/claude-obsidian:wiki
# 导入资料
/wiki-ingest .raw/inbox
# 查询知识库
/wiki-query 你的问题
# 检查 wiki
/wiki-lint
# 查看插件
claude plugin list
# 测试 GitHub SSH
ssh -T git@github.com
# 查看 GitHub SSH 配置
cat ~/.ssh/config
如果你想彻底清理 Claude-Obsidian / Canvas 项目,可以按照以下步骤操作:
在 Claude Code 中执行:
claude plugin uninstall claude-obsidian@claude-obsidian-marketplace
claude plugin uninstall claude-canvas@local-claude-marketplace
.raw/ 或 wiki 文件rm -rf ~/Documents/claude-obsidian
rm -rf ~/Documents/local-claude-marketplace
.raw/ 文件夹如果想保留原始资料:
mv ~/Documents/claude-obsidian/.raw ~/Documents/备份_raw
.raw/(可选)完成后,你的 Vault 和插件环境将干净,同时原始资料可以选择保留或删除。
在终端输入以下命令:
Bash
claude mcp remove obsidian-vault
因为你之前添加时使用了 --scope user,为了确保彻底删除,建议也带上作用域:
Bash
claude mcp remove obsidian-vault --scope user
删除后,你可以再次查看列表来确认该服务器已经消失:
Bash
claude mcp list
只是想临时禁用? 目前 Claude Code 的 MCP 管理主要是增删。如果你只是不想让它运行,目前最快的方法是将其删除,或者在 Obsidian 端关闭 Local REST API 插件,这样它就会显示为 Disconnected。
手动清理配置文件: MCP 的配置通常保存在本地的 JSON 文件中。在 macOS 上,你也可以直接去这个路径编辑或删除对应的 JSON 条目: ~/Library/Application Support/claude/claude_desktop_config.json (针对桌面端) 或 Claude Code 对应的用户配置文件。