Knowledge Manager Agent for Claude Code - Extract and organize content from web, PDF, social media to Obsidian/Notion
npx skills add https://github.com/treylom/knowledge-manager --skill baoyu-slide-deckInstallieren Sie diesen Skill รผber die CLI und beginnen Sie mit der Verwendung des SKILL.md-Workflows in Ihrem Arbeitsbereich.
๐ English documentation is available at the bottom of this page.
Claude Code์ฉ ์ข ํฉ ์ง์ ๊ด๋ฆฌ ์์ด์ ํธ. ๋ค์ํ ์์ค์์ ์ฝํ ์ธ ๋ฅผ ์์งํ๊ณ , Zettelkasten ์์น์ ๋ฐ๋ผ ๋ถ์ํ์ฌ, Obsidian ๋๋ Notion์ ์ ์ฅํฉ๋๋ค.
/knowledge-manager-m)Claude Code Remote Control๋ก ์ค๋งํธํฐ์์ ์คํํ ์ ์๋ ๊ฒฝ๋ ๋ฒ์ ์ ๋๋ค.
/knowledge-manager |
/knowledge-manager-m |
|
|---|---|---|
| ์ฝํ ์ธ ์ค์ | AskUserQuestion 4๋ฌธํญ | ํค์๋ ์๋ ํ๋ฆฌ์ |
| ์นด์นด์คํก ์ ์ก | ์์ | ์ง์ (์ ํ) |
| ntfy ์๋ฃ ์๋ฆผ | ์์ | ์ง์ (์ ํ) |
| ํ๊ฒฝ | ๋ฐ์คํฌํฑ | ๋ชจ๋ฐ์ผ/Remote/headless |
# ๋น ๋ฅธ ์์ฝ
/knowledge-manager-m https://example.com ์์ฝํด์ค
# ์์ธ ๋ถ์ + ์นด์นด์ค ์ ์ก
/knowledge-manager-m https://example.com ๊ผผ๊ผผํ ์นด์นด์ค ๋์๊ฒ
# ์ค๋ฌด์ฉ ์ ๋ฆฌ
/knowledge-manager-m https://example.com ์ค๋ฌด์ฉ
| ํค์๋ | ์์ธ | ์ค์ | ๋ถํ | ์ฐ๊ฒฐ |
|---|---|---|---|---|
| "์์ฝํด์ค" | ์์ฝ | ์ ์ฒด ๊ท ํ | ๋จ์ผ | ์ต๋ |
| "๊ผผ๊ผผํ" | ์์ธ | ์ ์ฒด ๊ท ํ | ์์์ | ์ต๋ |
| "๊ธฐ๋ณธ" | ์์ธ | ์ ์ฒด ๊ท ํ | 3-tier | ์ต๋ |
| (ํค์๋ ์์) | ์์ธ | ์ ์ฒด ๊ท ํ | 3-tier | ์ต๋ |
์นด์นด์คํก ์๋ ์ ์ก์ kmsg์์ ์๊ฐ์ ๋ฐ์ ์ ์๋์์ต๋๋ค.
| ํ๋ซํผ | ๋๊ตฌ | ์ค์น |
|---|---|---|
| macOS | kmsg (์๋ณธ) | brew install channprj/tap/kmsg |
| Windows/WSL | send_kakao.py (๋๋ด) |
์ถ๊ฐ ์ค์น ๋ถํ์ |
Windows/WSL: KakaoTalk PC ๋ฒ์ ์ด ์คํ ์ค์ด์ด์ผ ํฉ๋๋ค.
send_kakao.py๋ Win32 SendInput API๋ก ๋ฉ์์ง๋ฅผ ์ ์กํฉ๋๋ค.macOS: kmsg๋ macOS์ฉ Swift ๋ฐ์ด๋๋ฆฌ์ ๋๋ค. ์์ธํ ์ฌ์ฉ๋ฒ์ kmsg README๋ฅผ ์ฐธ๊ณ ํ์ธ์.
{
"kakao": {
"enabled": true,
"selfName": "ํ๊ธธ๋"
}
}
selfName: ๋ณธ์ธ ์นด์นด์คํก ์ฑํ
๋ฐฉ ์ด๋ฆ (์ค๋ช
). "๋"๊ฐ ์๋ ๋ณธ์ธ ์ด๋ฆ์ ์
๋ ฅํ์ธ์!ntfy๋ ์ ํ ์ฌํญ์ ๋๋ค. ์นด์นด์คํก ์ ์ก๋ง์ผ๋ก ์ถฉ๋ถํ๋ฉด ์ด ์น์ ์ ๊ฑด๋๋ฐ์ธ์.
ntfy๋ ๋ฌด๋ฃ ์คํ์์ค ํธ์ ์๋ฆผ ์๋น์ค์ ๋๋ค. ์์ ์๋ฃ ์ ์ค๋งํธํฐ์ ์๋ฆผ์ ๋ณด๋ ๋๋ค. ์นด์นด์คํก "๋์์ ์ฑํ "์ ๋ณธ์ธ ๋ฉ์์ง์ ๋ํด ํธ์ ์๋ฆผ์ด ์ ์ค๊ธฐ ๋๋ฌธ์, ์์ ์๋ฃ ์๋ฆผ์ด ํ์ํ ๊ฒฝ์ฐ ๊ถ์ฅํฉ๋๋ค.
์ค์ ๋ฐฉ๋ฒ (1ํ):
my-km-alerts-xyz)km-config.json์ ํ ํฝ ์ค์ :{
"notification": {
"ntfyTopic": "my-km-alerts-xyz"
}
}
๋ชจ๋ฐ์ผ์์ Remote Control ์ฌ์ฉ ์ ๋ค์ ์ค์ ์ ๊ถ์ฅํฉ๋๋ค (ntfy ์ฌ์ฉ์๋ง ํด๋น):
// ~/.claude/settings.json
{
"skipDangerousModePermissionPrompt": true,
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "curl -s -H 'Title: Claude ํ์ธํ์' -d 'ํ์ธ ํ์' ntfy.sh/YOUR_TOPIC 2>/dev/null || true"
}
]
}
]
}
}
skipDangerousModePermissionPrompt: bypass ๋ชจ๋ ์์ ๋ธ๋กํน ์ ๊ฑฐNotification hook: permission ํ๋กฌํํธ๋ idle ์ ntfy ์๋ฆผtmux send-keys๋ก ์๊ฒฉ ์น์ธClaude Code 1.0.33 ์ด์์์ ํ๋ฌ๊ทธ์ธ์ผ๋ก ์ค์นํ ์ ์์ต๋๋ค.
# ๋ง์ผํ๋ ์ด์ค ์ถ๊ฐ
/plugin marketplace add treylom/knowledge-manager
# ํ๋ฌ๊ทธ์ธ ์ค์น
/plugin install knowledge-manager
์ค์น ํ /km:setup์ผ๋ก ์
์
์์ ๋๋ฅผ ์คํํ์ธ์.
# ์ ์ฅ์ ํด๋ก
git clone https://github.com/treylom/knowledge-manager.git
cd knowledge-manager
# .claude ํด๋๋ฅผ ํ๋ก์ ํธ์ ๋ณต์ฌ
cp -r .claude /your/project/.claude
cp km-config.example.json /your/project/
๋ณต์ฌ ํ /knowledge-manager setup์ผ๋ก ์
์
์์ ๋๋ฅผ ์คํํ์ธ์.
Antigravity(Google)๋ Agent Skills ํ์ค์ ์ง์ํฉ๋๋ค. .agent/skills/ ํด๋๋ฅผ ์ฌ์ฉํ๋ฉด ์คํฌ์ด ์๋์ผ๋ก ์ธ์๋ฉ๋๋ค.
์ฅ์ : Antigravity๋ ๊ฐ๋ ฅํ ๋ด์ฅ ๋ธ๋ผ์ฐ์ ์์ด์ ํธ๊ฐ ์์ด์ Playwright MCP๊ฐ ํ์ ์์ต๋๋ค!
Obsidian MCP๋ง ์ค์ ํ๋ฉด ๋ฉ๋๋ค.
# ์ ์ฅ์ ํด๋ก
git clone https://github.com/treylom/knowledge-manager.git
# .agent ํด๋๋ฅผ ํ๋ก์ ํธ์ ๋ณต์ฌ (Antigravity ์คํฌ)
cp -r knowledge-manager/.agent /your/antigravity/project/
# .claude ํด๋๋ ๋ณต์ฌ (์์ด์ ํธ ๋ฐ ๋ช
๋ น์ด)
cp -r knowledge-manager/.claude /your/antigravity/project/
์ฐธ๊ณ :
.agent/skills/ํด๋๋ Antigravity, Gemini CLI, Claude Code, OpenCode ๋ฑ Agent Skills ํ์ค์ ์ง์ํ๋ ๋ชจ๋ ๋๊ตฌ์์ ํธํ๋ฉ๋๋ค.
๋ณต์ฌ ํ Antigravity์์ ๋ค์๊ณผ ๊ฐ์ด ์์ฒญํ์ธ์:
Windows:
Knowledge Manager ์ค์ ์ ๋์์ค.
๋ด Obsidian vault๋ C:/Users/๋ด์ด๋ฆ/Documents/MyVault ์ผ.
Mac:
Knowledge Manager ์ค์ ์ ๋์์ค.
๋ด Obsidian vault๋ /Users/๋ด์ด๋ฆ/Documents/MyVault ์ผ.
Linux:
Knowledge Manager ์ค์ ์ ๋์์ค.
๋ด Obsidian vault๋ /home/๋ด์ด๋ฆ/Documents/MyVault ์ผ.
์์ด์ ํธ๊ฐ ์๋์ผ๋ก:
%USERPROFILE%\.gemini\antigravity\mcp_config.json~/.gemini/antigravity/mcp_config.jsonkm-config.json ์์ฑ์๋ ์ค์ ์ด ์๋ํ์ง ์์ผ๋ฉด ์๋์ผ๋ก ์ค์ ํ ์ ์์ต๋๋ค.
MCP ์๋ฒ ์ค์ :
์ค์ ํ์ผ ์์น: C:\Users\<์ฌ์ฉ์๋ช
>\.gemini\antigravity\mcp_config.json
mcp_config.json์ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํ์ธ์:
{
"mcpServers": {
"obsidian": {
"command": "npx",
"args": ["-y", "@huangyihe/obsidian-mcp"],
"env": {
"OBSIDIAN_VAULT_PATH": "C:/Users/YourName/Documents/YourVault"
}
}
}
}
์ฐธ๊ณ :
OBSIDIAN_VAULT_PATH๋ฅผ ์ค์ Obsidian vault ๊ฒฝ๋ก๋ก ๋ณ๊ฒฝํ์ธ์.Playwright๋ ์ ํ ์ฌํญ์ ๋๋ค. Antigravity ๋ด์ฅ ๋ธ๋ผ์ฐ์ ๊ฐ ์น ์คํฌ๋ํ์ ์ฒ๋ฆฌํฉ๋๋ค.
์คํฌ๋ฆฐ์ท ์บก์ฒ, DOM ์กฐ์ ๋ฑ ๊ณ ๊ธ ๊ธฐ๋ฅ์ด ํ์ํ ๊ฒฝ์ฐ์๋ง Playwright๋ฅผ ์ถ๊ฐํ์ธ์.
์ค์ ์๋ก๊ณ ์นจ:
km-config.json ์์ฑ:
ํ๋ก์ ํธ ํด๋์ km-config.json ํ์ผ์ ์์ฑํ์ธ์:
{
"storage": {
"primary": "obsidian",
"obsidian": {
"enabled": true,
"vaultPath": "C:/Users/YourName/Documents/YourVault",
"defaultFolder": "Zettelkasten"
},
"local": {
"enabled": true,
"outputPath": "./km-notes"
}
},
"browser": {
"provider": "antigravity"
}
}
์ค์ ์ด ์๋ฃ๋๋ฉด:
Vault ๊ฒฝ๋ก๋ฅผ ๋ชจ๋ฅด์๋ฉด ์๋ ๋ฐฉ๋ฒ์ผ๋ก ํ์ธํ์ธ์.
Claude Code ๋๋ Antigravity์๊ฒ ์ง์ ๋ฌผ์ด๋ณด์ธ์:
๋ด Obsidian vault ๊ฒฝ๋ก ์ฐพ๋ ๋ฒ ์๋ ค์ค
| OS | ๊ฒฝ๋ก ์์ |
|---|---|
| Windows | C:/Users/YourName/Documents/MyVault |
| Mac | /Users/YourName/Documents/MyVault |
| Linux | /home/yourname/Documents/MyVault |
โ ๏ธ Windows ์ฌ์ฉ์: ์ญ์ฌ๋์(
\) ๋์ ์ฌ๋์(/)๋ฅผ ์ฌ์ฉํ์ธ์!
- โ
C:\Users\...- โ
C:/Users/...
| ํญ๋ชฉ | ์ค๋ช |
|---|---|
| Claude Code / Antigravity | CLI, Desktop, ๋๋ Antigravity |
| Node.js 18+ | MCP ์๋ฒ ์คํ์ฉ |
Antigravity ์ฌ์ฉ์: ๋ด์ฅ ๋ธ๋ผ์ฐ์ ๊ฐ ์์ด Playwright MCP ๋ถํ์. ์ด ์น์ ๊ฑด๋๋ฐ๊ธฐ.
Claude Code ํ๊ฒฝ์์ ์น ์ฝํ ์ธ ๋ฅผ ์ถ์ถํ๋ ค๋ฉด Playwright MCP ์๋ฒ๊ฐ ํ์ํฉ๋๋ค.
# Playwright MCP ์๋ ์ค์น (๊ถ์ฅ)
claude mcp add playwright -- npx -y @anthropic-ai/mcp-playwright
# ์ค์น ํ์ธ
claude mcp list
# โ playwright ์๋ฒ๊ฐ ํ์๋์ด์ผ ํจ
์น ํฌ๋กค๋ง ๋๊ตฌ ์ฐ์ ์์:
| ์ฝํ ์ธ ์ ํ | 1์์ ๋๊ตฌ | 2์์ (Fallback) |
|---|---|---|
| SNS (Threads, Instagram) | Playwright MCP (ํ์) | - |
| ์ผ๋ฐ ์น | WebFetch | Playwright MCP |
| ํญ๋ชฉ | ์ค์น ๋ช ๋ น | ์ฉ๋ |
|---|---|---|
| youtube-transcript-api | pip install youtube-transcript-api |
YouTube ์๋ง ์ถ์ถ (ํ์) |
| yt-dlp | pip install yt-dlp |
์๋ง ํด๋ฐฑ + ๋ฉํ๋ฐ์ดํฐ (๊ถ์ฅ) |
์นด์นด์คํก์ ๋ฉ์์ง ์ฝ๊ธฐ API๋ฅผ ์ ๊ณตํ์ง ์์, macOS๋ง ์๋ ์์ง์ด ๊ฐ๋ฅํฉ๋๋ค.
| ํ๋ซํผ | ๋๊ตฌ | ์๋ํ | ์ค์น |
|---|---|---|---|
| macOS | kmsg | ์๋ (Accessibility API) | brew install channprj/tap/kmsg |
| Windows/WSL | ์๋ "๋ํ ๋ด๋ณด๋ด๊ธฐ" โ TXT ํ์ฑ | ์๋ ํ์ | ์ถ๊ฐ ์ค์น ๋ถํ์ |
| (TXT ํ์) | kakaotalk_msg_preprocessor | - | pip install kakaotalk_msg_preprocessor |
| ํญ๋ชฉ | ์ฉ๋ |
|---|---|
| Obsidian | ๋ก์ปฌ ์ง์ ๊ด๋ฆฌ ์ฑ (๋ฌด๋ฃ) |
| Notion ๊ณ์ | ํ ํ์ ์ฉ |
Antigravity ์ฌ์ฉ์: ์์ฒด ๋ด์ฅ PDF/์ด๋ฏธ์ง ์ฒ๋ฆฌ ๊ธฐ๋ฅ ์ฌ์ฉ. ์๋ ์ค์น ๋ถํ์.
| ํญ๋ชฉ | ์ค์น ๋ช ๋ น | ์ฉ๋ |
|---|---|---|
| Marker | pip install marker-pdf |
PDF โ Markdown ๋ณํ (๊ถ์ฅ) |
| pytesseract | pip install pytesseract pdf2image |
์ค์บ PDF OCR |
| Tesseract OCR | ์ค์น ๊ฐ์ด๋ | OCR ์์ง |
| pdfplumber | pip install pdfplumber |
ํ ์ด๋ธ ์ถ์ถ |
# ์
์
์์ ๋ (์ต์ด 1ํ)
/knowledge-manager setup
# ์น ์ํฐํด ์ ๋ฆฌ
/knowledge-manager https://example.com/article
# PDF ํ์ผ ์ฒ๋ฆฌ
/knowledge-manager /path/to/document.pdf
# Threads ํฌ์คํธ ์ ๋ฆฌ
/knowledge-manager https://threads.net/@user/post/123
# YouTube ์์ ํธ๋์คํฌ๋ฆฝํธ ์ ๋ฆฌ
/knowledge-manager https://youtube.com/watch?v=XXX
# ์นด์นด์คํก ์ฑํ
๋ฐฉ ๋ถ์ (๋ํ ๋ด๋ณด๋ด๊ธฐ TXT ํ์ผ)
/knowledge-manager ์นดํก๋ฐฉ "AI ์คํ์ฑํ
" ์ด๋ฒ ์ฃผ ๋ด์ฉ ์ ๋ฆฌํด์ค
# ์
์
์์ ๋
/km:setup
# ์น ์ํฐํด ์ ๋ฆฌ
/km https://example.com/article
AI ์ด๋ฏธ์ง ์์ฑ ๊ธฐ๋ฐ์ ๊ณ ํ๋ฆฌํฐ ํ๋ ์ ํ ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
๐ฆ Powered by baoyu-slide-deck - JimLiu์ baoyu-skills์์ ์ ๊ณตํ๋ ์ฌ๋ผ์ด๋ ์์ฑ ์คํฌ์ ๋๋ค.
# ์ฝํ
์ธ ์์ PPT ์์ฑ
/knowledge-manager https://example.com/article PPT๋ก ๋ง๋ค์ด์ค
# ์คํ์ผ ์ง์
/knowledge-manager content.md sketch-notes ์คํ์ผ๋ก ์ฌ๋ผ์ด๋ ์์ฑ
# ์ง์ ์ฌ๋ผ์ด๋ ์์ฑ
/baoyu-slide-deck content.md --style corporate
| ์คํ์ผ | ์ฉ๋ | ์ถ์ฒ ์ํฉ |
|---|---|---|
sketch-notes |
๊ต์ก/ํํ ๋ฆฌ์ผ | ๊ฐ์, ์ํฌ์ต |
blueprint |
๊ธฐ์ ๋ฌธ์ | ์ํคํ ์ฒ, ์์คํ ์ค๊ณ |
corporate |
๋น์ฆ๋์ค | ํฌ์ ๋ฐํ, ๊ฒฝ์ ๋ณด๊ณ |
minimal |
๋ฏธ๋๋ฉ | ์ฌํํ ๋ฐํ |
chalkboard |
๊ฐ์์ค | ๊ต์ก ์ฝํ ์ธ |
notion |
SaaS ๋์๋ณด๋ | ์ ํ ๋ฐ๋ชจ, B2B |
| ์ต์ | ์ค๋ช | ์์ |
|---|---|---|
--style <name> |
๋น์ฃผ์ผ ์คํ์ผ | --style corporate |
--audience <type> |
๋์ ์ฒญ์ค | --audience executives |
--lang <code> |
์ถ๋ ฅ ์ธ์ด | --lang ko |
--slides <number> |
์ฌ๋ผ์ด๋ ์ | --slides 15 |
--outline-only |
์์๋ผ์ธ๋ง ์์ฑ | - |
slide-deck/{topic}/
โโโ outline.md # ์์๋ผ์ธ
โโโ 01-slide-cover.png # ๊ฐ๋ณ ์ฌ๋ผ์ด๋ ์ด๋ฏธ์ง
โโโ ...
โโโ {topic}.pptx # PowerPoint ํ์ผ
โโโ {topic}.pdf # PDF ํ์ผ
Obsidian vault์ Zettelkasten ์คํ์ผ ๋ ธํธ๋ก ์ ์ฅ๋ฉ๋๋ค.
Your-Vault/
โโโ Zettelkasten/
โ โโโ AI-์ฐ๊ตฌ/
โ โโโ MCP ํ๋กํ ์ฝ ๊ฐ์ - 2026-01-17.md
โโโ Research/
โโโ Threads/
๋ก์ปฌ ํด๋์ Obsidian ํธํ Markdown ํ์ผ๋ก ์ ์ฅ๋ฉ๋๋ค.
km-notes/
โโโ Zettelkasten/
โโโ Research/
โโโ Threads/
claude mcp list
| ํ๊ฒฝ | ์ค์ ํ์ผ |
|---|---|
| Claude Code CLI | ํ๋ก์ ํธ ํด๋์ .mcp.json |
| Claude Desktop | %APPDATA%\Claude\claude_desktop_config.json |
| Antigravity | C:\Users\<์ฌ์ฉ์๋ช
>\.gemini\antigravity\mcp_config.json |
โ ๏ธ ๊ถ์ฅํ์ง ์์: ๊ธฐ๋ณธ์ ์ผ๋ก Playwright MCP๋ฅผ ์ฌ์ฉํ์ธ์. Hyperbrowser๋ Playwright๊ฐ ์ฐจ๋จ๋นํ๋ ํน์ํ ๊ฒฝ์ฐ์๋ง ๊ณ ๋ คํ์ธ์.
Playwright MCP๊ฐ ํน์ ์ฌ์ดํธ์์ ์ง์์ ์ผ๋ก ์ฐจ๋จ๋นํ๋ ๊ฒฝ์ฐ์๋ง Hyperbrowser๋ฅผ ๊ณ ๋ คํ์ธ์.
km-config.json์์ browser.provider๋ฅผ "hyperbrowser"๋ก ๋ณ๊ฒฝ"hyperbrowser": {
"command": "npx",
"args": ["-y", "hyperbrowser-mcp"],
"env": {
"HYPERBROWSER_API_KEY": "your-api-key"
}
}
์ฃผ์: Hyperbrowser๋ ์ ๋ฃ ์๋น์ค์ด๋ฉฐ, ์ค์ ์ด ๋ณต์กํด์ง ์ ์์ต๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ Playwright MCP๋ก ์ถฉ๋ถํฉ๋๋ค.
export KM_OBSIDIAN_VAULT="/path/to/vault"
export KM_NOTION_TOKEN="ntn_xxx"
export KM_BROWSER_PROVIDER="playwright"
git checkout -b feature/amazing-feature)MIT License - ์์ ๋กญ๊ฒ ์ฌ์ฉ, ์์ , ๋ฐฐํฌํ์ธ์.
A comprehensive knowledge management agent for Claude Code. It collects content from various sources, analyzes it using Zettelkasten principles, and saves it to Obsidian or Notion.
Available for Claude Code 1.0.33 and above.
# Add marketplace
/plugin marketplace add treylom/knowledge-manager
# Install plugin
/plugin install knowledge-manager
After installation, run /km:setup to start the setup wizard.
# Clone repository
git clone https://github.com/treylom/knowledge-manager.git
cd knowledge-manager
# Copy .claude folder to your project
cp -r .claude /your/project/.claude
cp km-config.example.json /your/project/
After copying, run /knowledge-manager setup to start the setup wizard.
Antigravity (Google) supports the Agent Skills standard. The .agent/skills/ folder is automatically recognized.
Advantage: Antigravity has a powerful built-in browser agent, so Playwright MCP is not required!
You only need to configure Obsidian MCP.
# Clone repository
git clone https://github.com/treylom/knowledge-manager.git
# Copy .agent folder (Antigravity skills)
cp -r knowledge-manager/.agent /your/antigravity/project/
# Also copy .claude folder (agents and commands)
cp -r knowledge-manager/.claude /your/antigravity/project/
Note: The
.agent/skills/folder is compatible with all tools supporting the Agent Skills standard, including Antigravity, Gemini CLI, Claude Code, and OpenCode.
After copying, ask Antigravity:
Windows:
Help me set up Knowledge Manager.
My Obsidian vault is at C:/Users/MyName/Documents/MyVault.
Mac:
Help me set up Knowledge Manager.
My Obsidian vault is at /Users/MyName/Documents/MyVault.
Linux:
Help me set up Knowledge Manager.
My Obsidian vault is at /home/myname/Documents/MyVault.
The agent will automatically:
%USERPROFILE%\.gemini\antigravity\mcp_config.json~/.gemini/antigravity/mcp_config.jsonkm-config.jsonIf automatic setup doesn't work, you can configure manually.
Configure MCP Servers:
Config file location: C:\Users\<username>\.gemini\antigravity\mcp_config.json
Add the following to mcp_config.json:
{
"mcpServers": {
"obsidian": {
"command": "npx",
"args": ["-y", "@huangyihe/obsidian-mcp"],
"env": {
"OBSIDIAN_VAULT_PATH": "C:/Users/YourName/Documents/YourVault"
}
}
}
}
Note: Replace
OBSIDIAN_VAULT_PATHwith your actual Obsidian vault path.Playwright is optional. Antigravity's built-in browser handles web scraping.
Only add Playwright if you need advanced features like screenshot capture or DOM manipulation.
Refresh Configuration:
Create km-config.json:
Create a km-config.json file in your project folder:
{
"storage": {
"primary": "obsidian",
"obsidian": {
"enabled": true,
"vaultPath": "C:/Users/YourName/Documents/YourVault",
"defaultFolder": "Zettelkasten"
},
"local": {
"enabled": true,
"outputPath": "./km-notes"
}
},
"browser": {
"provider": "antigravity"
}
}
After setup is complete:
If you don't know your vault path, here's how to find it.
Ask Claude Code or Antigravity directly:
Help me find my Obsidian vault path
| OS | Example Path |
|---|---|
| Windows | C:/Users/YourName/Documents/MyVault |
| Mac | /Users/YourName/Documents/MyVault |
| Linux | /home/yourname/Documents/MyVault |
โ ๏ธ Windows users: Use forward slashes (
/) instead of backslashes (\)!
- โ
C:\Users\...- โ
C:/Users/...
| Item | Description |
|---|---|
| Claude Code / Antigravity | CLI, Desktop, or Antigravity |
| Node.js 18+ | For running MCP servers |
Antigravity users: Has built-in browser, Playwright MCP not needed. Skip this section.
To extract web content in Claude Code, you need the Playwright MCP server.
# Auto-install Playwright MCP (recommended)
claude mcp add playwright -- npx -y @anthropic-ai/mcp-playwright
# Verify installation
claude mcp list
# โ playwright server should appear
Web Crawling Tool Priority:
| Content Type | Primary Tool | Fallback |
|---|---|---|
| SNS (Threads, Instagram) | Playwright MCP (required) | - |
| General Web | WebFetch | Playwright MCP |
| Item | Install Command | Purpose |
|---|---|---|
| youtube-transcript-api | pip install youtube-transcript-api |
YouTube subtitle extraction (required) |
| yt-dlp | pip install yt-dlp |
Subtitle fallback + metadata (recommended) |
KakaoTalk provides no message reading API. Only macOS supports auto-collection.
| Platform | Tool | Automation | Install |
|---|---|---|---|
| macOS | kmsg | Auto (Accessibility API) | brew install channprj/tap/kmsg |
| Windows/WSL | Manual "Export Chat" โ TXT parsing | Manual required | No additional install needed |
| (TXT parser) | kakaotalk_msg_preprocessor | - | pip install kakaotalk_msg_preprocessor |
| Item | Purpose |
|---|---|
| Obsidian | Local knowledge management app (free) |
| Notion account | For team collaboration |
Antigravity users: Use built-in PDF/image processing. No installation required.
| Item | Install Command | Purpose |
|---|---|---|
| Marker | pip install marker-pdf |
PDF โ Markdown (recommended) |
| pytesseract | pip install pytesseract pdf2image |
Scanned PDF OCR |
| Tesseract OCR | Install Guide | OCR engine |
| pdfplumber | pip install pdfplumber |
Table extraction |
knowledge-manager is distributed as a git repository that adapts to your Obsidian vault at install time. The skill, agent, and command files in this repo contain placeholder tokens (e.g. {{VAULT_PATH}}) that get substituted with your real paths the first time you run the setup wizard. After that, git pull + /km-update keeps you current without ever touching your personal config.
# 1. Clone the repository
git clone https://github.com/treylom/knowledge-manager.git
cd knowledge-manager
# 2. (Optional) Install Node.js 18+ and Playwright MCP โ see Requirements section above
# 3. Run the setup wizard inside Claude Code
# Inside Claude Code, type:
/knowledge-manager-setup
The setup wizard will:
/home/you/Documents/MyVault or C:/Users/You/Documents/MyVault).km-config.json in the repo root (this file is gitignored โ your personal config stays local).scripts/configure-vault-paths.sh which replaces every {{VAULT_PATH}}, {{VAULT_NAME}}, {{OBSIDIAN_CLI}}, {{ZETTELKASTEN_ROOT}}, and {{RESEARCH_ROOT}} placeholder in skills/, agents/, commands/, and .claude/ with your real values.git update-index --skip-worktree so the replacements never show up as dirty in git status.When the wizard finishes, every skill and command file points to your vault โ no manual find-and-replace required.
When you want to pull upstream improvements, use the /km-update slash command instead of a raw git pull:
/km-update
Under the hood this runs scripts/km-update.sh, which:
git checkout HEAD -- <files>.git pull origin <current-branch> to fetch upstream changes.scripts/configure-vault-paths.sh to re-substitute placeholders with your current km-config.json values.A plain git pull will still work โ but if your previous substitution has diverged from upstream (e.g. upstream changed a line around a placeholder), you may hit a merge conflict. /km-update is the safe path.
If you move your vault, rename it, or want to point knowledge-manager at a different vault, just re-run the setup wizard:
/knowledge-manager-setup
The wizard backs up your existing km-config.json (timestamped), generates a new one, and re-runs the substitution engine. Your previous values are preserved in the backup file in case you need to roll back.
Source files in this repo use these 5 placeholder tokens. The setup wizard replaces them with values from your km-config.json:
| Placeholder | Config field | Default | Meaning |
|---|---|---|---|
{{VAULT_PATH}} |
storage.obsidian.vaultPath |
(required) | Absolute path to your Obsidian vault |
{{VAULT_NAME}} |
derived from basename of vaultPath |
(derived) | Vault folder name (e.g. MyVault) |
{{OBSIDIAN_CLI}} |
obsidianCli.path |
"" (empty) |
Path to Obsidian CLI executable; empty string if Obsidian desktop is not installed |
{{ZETTELKASTEN_ROOT}} |
storage.obsidian.zettelkastenRoot |
"Zettelkasten" |
Vault-relative path to your Zettelkasten root folder |
{{RESEARCH_ROOT}} |
storage.obsidian.researchRoot |
"Research" |
Vault-relative path to your research/MOC root folder |
If you edit a skill file yourself and need it to stay portable, write the placeholder form (e.g. {{VAULT_PATH}}/Zettelkasten/note.md) and re-run /knowledge-manager-setup (or bash scripts/configure-vault-paths.sh directly). See docs/vault-path-configuration.md for the full technical reference, troubleshooting, and the skip-worktree rationale.
# Setup wizard (first time only)
/knowledge-manager setup
# Process web article
/knowledge-manager https://example.com/article
# Process PDF file
/knowledge-manager /path/to/document.pdf
# Process Threads post
/knowledge-manager https://threads.net/@user/post/123
# YouTube video transcript
/knowledge-manager https://youtube.com/watch?v=XXX
# KakaoTalk chat analysis
/knowledge-manager Analyze "AI Chat Room" messages from this week
# Setup wizard
/km:setup
# Process web article
/km https://example.com/article
Notes are saved in Zettelkasten style in your Obsidian vault.
Your-Vault/
โโโ Zettelkasten/
โ โโโ AI-Research/
โ โโโ MCP Protocol Overview - 2026-01-17.md
โโโ Research/
โโโ Threads/
Notes are saved as Obsidian-compatible Markdown files in a local folder.
km-notes/
โโโ Zettelkasten/
โโโ Research/
โโโ Threads/
claude mcp list
| Environment | Config File |
|---|---|
| Claude Code CLI | .mcp.json in project folder |
| Claude Desktop | %APPDATA%\Claude\claude_desktop_config.json |
| Antigravity | C:\Users\<username>\.gemini\antigravity\mcp_config.json |
โ ๏ธ Not recommended: Use Playwright MCP by default. Only consider Hyperbrowser if Playwright is consistently blocked.
Only consider Hyperbrowser if Playwright MCP is consistently blocked on specific sites.
browser.provider to "hyperbrowser" in km-config.json"hyperbrowser": {
"command": "npx",
"args": ["-y", "hyperbrowser-mcp"],
"env": {
"HYPERBROWSER_API_KEY": "your-api-key"
}
}
Note: Hyperbrowser is a paid service and may add configuration complexity. Playwright MCP is sufficient for most cases.
export KM_OBSIDIAN_VAULT="/path/to/vault"
export KM_NOTION_TOKEN="ntn_xxx"
export KM_BROWSER_PROVIDER="playwright"
git checkout -b feature/amazing-feature)MIT License - Free to use, modify, and distribute.