π English documentation is available at the bottom of this page.
Claude Codeμ© μ’ ν© μ§μ κ΄λ¦¬ μμ΄μ νΈ. λ€μν μμ€μμ μ½ν μΈ λ₯Ό μμ§νκ³ , Zettelkasten μμΉμ λ°λΌ λΆμνμ¬, Obsidian λλ Notionμ μ μ₯ν©λλ€.
- λ€μ€ μμ€ μ λ ₯: μΉνμ΄μ§, PDF, Notion
- YouTube νΈλμ€ν¬λ¦½νΈ: YouTube μμ μλ§ μλ μΆμΆ + λΆμ + λ ΈνΈ μμ± β NEW
- μΉ΄μΉ΄μ€ν‘ μ±ν λΆμ: μ±ν λ°© λ©μμ§ λΆμ + λ ΈνΈ μμ± (macOS: μλ, Windows: μλ λ΄λ³΄λ΄κΈ°) β NEW
- PDF λ° μ΄λ―Έμ§ OCR: μ€μΊλ PDFμ μ΄λ―Έμ§μμ ν μ€νΈ μΆμΆ (Claude Codeμ©)
- μ€λ§νΈ μΆμΆ: AI κΈ°λ° μ½ν μΈ λΆμ λ° μμμ μμ΄λμ΄ μΆμΆ
- μ μ°ν μ μ₯: Obsidian, Notion, λλ λ‘컬 Markdown νμΌ
- PPT/μ¬λΌμ΄λ μμ±: AI μ΄λ―Έμ§ κΈ°λ° κ³ νλ¦¬ν° νλ μ ν μ΄μ (15+ μ€νμΌ)
- κ°λ¨ν μ€μ : μ μ μμ λκ° λͺ¨λ κ²μ μλ΄
- λͺ¨λ°μΌ/Remote μ§μ: Claude Code Remote Controlμμ ν€μλ κΈ°λ° μλ ν리μ μΌλ‘ μ€ν
- μΉ΄μΉ΄μ€ν‘ μ μ‘: μ 리λ λ ΈνΈλ₯Ό μΉ΄μΉ΄μ€ν‘μΌλ‘ μλ μ μ‘ (Windows/WSL)
- ntfy μλ£ μλ¦Ό (μ ν): μμ μλ£ μ λͺ¨λ°μΌ νΈμ μλ¦Ό
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λ μ ν μ¬νμ λλ€. μΉ΄μΉ΄μ€ν‘ μ μ‘λ§μΌλ‘ μΆ©λΆνλ©΄ μ΄ μΉμ μ 건λλ°μΈμ.
ntfyλ λ¬΄λ£ μ€νμμ€ νΈμ μλ¦Ό μλΉμ€μ λλ€. μμ μλ£ μ μ€λ§νΈν°μ μλ¦Όμ 보λ λλ€. μΉ΄μΉ΄μ€ν‘ "λμμ μ±ν "μ λ³ΈμΈ λ©μμ§μ λν΄ νΈμ μλ¦Όμ΄ μ μ€κΈ° λλ¬Έμ, μμ μλ£ μλ¦Όμ΄ νμν κ²½μ° κΆμ₯ν©λλ€.
μ€μ λ°©λ² (1ν):
- μ€λ§νΈν°μ ntfy μ± μ€μΉ: Android / iOS
- μ±μμ κ³ μ ν ν ν½ κ΅¬λ
(μ:
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 λͺ¨λ μμ λΈλ‘νΉ μ κ±°Notificationhook: permission ν둬ννΈλ idle μ ntfy μλ¦Ό- Plan mode μλ μΉμΈμ νμ¬ λ―Έμ§μ (GitHub #18523)
- μ°ν: bypass λͺ¨λ μ¬μ© λλ
tmux send-keysλ‘ μ격 μΉμΈ
- μ°ν: bypass λͺ¨λ μ¬μ© λλ
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 μΌ.
μμ΄μ νΈκ° μλμΌλ‘:
- MCP μ€μ νμΌμ μλ² μΆκ°
- Windows:
%USERPROFILE%\.gemini\antigravity\mcp_config.json - Mac/Linux:
~/.gemini/antigravity/mcp_config.json
- Windows:
km-config.jsonμμ±- μ€μ μλ£ ν Refresh λ°©λ² μλ΄
μλ μ€μ μ΄ μλνμ§ μμΌλ©΄ μλμΌλ‘ μ€μ ν μ μμ΅λλ€.
π μλ μ€μ λ°©λ² (ν΄λ¦νμ¬ νΌμΉκΈ°)
MCP μλ² μ€μ :
- Antigravityμμ Agent ν¨λ μ΄κΈ°
- μ°μΈ‘ μλ¨ β― (μ μΈ κ°) ν΄λ¦
- MCP Servers μ ν
- Manage MCP Servers ν΄λ¦
- View raw config ν΄λ¦
μ€μ νμΌ μμΉ: 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λ₯Ό μΆκ°νμΈμ.
μ€μ μλ‘κ³ μΉ¨:
- Manage MCP Servers μ°½μμ Refresh ν΄λ¦
- obsidian μλ²κ° λͺ©λ‘μ νμλλμ§ νμΈ
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"
}
}μ€μ μ΄ μλ£λλ©΄:
- Manage MCP Servers μ°½μμ Refresh ν΄λ¦
- obsidian μλ²κ° λͺ©λ‘μ νμλλμ§ νμΈ
- ν μ€νΈ: "https://example.com μ΄ νμ΄μ§λ₯Ό μ 리ν΄μ€"
Vault κ²½λ‘λ₯Ό λͺ¨λ₯΄μλ©΄ μλ λ°©λ²μΌλ‘ νμΈνμΈμ.
- Obsidian μ± μ€ν
- μ’μΈ‘ νλ¨ βοΈ (μ€μ ) ν΄λ¦
- "νμΌ λ° λ§ν¬" λ©λ΄ μ ν
- μλ¨μ νμλ "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
- Agent ν¨λ β β― β MCP Servers
- μλ² λͺ©λ‘μμ playwright, obsidian μν νμΈ
- μ°κ²° μ€ν¨ μ Refresh ν΄λ¦
| νκ²½ | μ€μ νμΌ |
|---|---|
| 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λ₯Ό κ³ λ €νμΈμ.
- hyperbrowser.aiμμ API ν€ λ°κΈ
km-config.jsonμμbrowser.providerλ₯Ό"hyperbrowser"λ‘ λ³κ²½- MCP μ€μ μ 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"
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes
- Push to the branch
- Open a Pull Request
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.
- Multiple Input Sources: Web pages, PDFs, Notion
- YouTube Transcripts: Auto-extract YouTube subtitles + analyze + generate notes
- KakaoTalk Chat Analysis: Analyze chat messages + generate notes (macOS: auto, Windows: manual export)
- PDF & Image OCR: Extract text from scanned PDFs and images (Claude Code)
- Smart Extraction: AI-powered content analysis and atomic idea extraction
- Flexible Storage: Obsidian, Notion, or local Markdown files
- Mobile/Remote Support: Run via Claude Code Remote Control with keyword-based auto presets
- KakaoTalk Send: Auto-send notes to KakaoTalk (Windows/WSL)
- ntfy Notifications (optional): Mobile push notifications on task completion
- Easy Setup: Setup wizard guides you through everything
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:
- Add MCP servers to config file
- Windows:
%USERPROFILE%\.gemini\antigravity\mcp_config.json - Mac/Linux:
~/.gemini/antigravity/mcp_config.json
- Windows:
- Create
km-config.json - Guide you to refresh the configuration
If automatic setup doesn't work, you can configure manually.
π Manual Setup Instructions (click to expand)
Configure MCP Servers:
- Open Agent panel in Antigravity
- Click β― (three dots) in the top right
- Select MCP Servers
- Click Manage MCP Servers
- Click View raw config
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:
- Click Refresh in the Manage MCP Servers window
- Verify that obsidian server appears in the list
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:
- Click Refresh in the Manage MCP Servers window
- Verify that obsidian server appears in the list
- Test: "Summarize this page: https://example.com"
If you don't know your vault path, here's how to find it.
- Open Obsidian app
- Click βοΈ (Settings) in the bottom left
- Select "Files & Links"
- Copy the "Vault path" shown at the top
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:
- Ask for your Obsidian vault path (e.g.
/home/you/Documents/MyVaultorC:/Users/You/Documents/MyVault). - Auto-detect your Obsidian CLI executable (v1.12.4+) if Obsidian desktop is installed.
- Generate
km-config.jsonin the repo root (this file is gitignored β your personal config stays local). - Run
scripts/configure-vault-paths.shwhich replaces every{{VAULT_PATH}},{{VAULT_NAME}},{{OBSIDIAN_CLI}},{{ZETTELKASTEN_ROOT}}, and{{RESEARCH_ROOT}}placeholder inskills/,agents/,commands/, and.claude/with your real values. - Mark the substituted files with
git update-index --skip-worktreeso the replacements never show up as dirty ingit 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:
- Unlocks the skip-worktree flag on every placeholder-substituted file.
- Restores the original placeholder content with
git checkout HEAD -- <files>. - Runs
git pull origin <current-branch>to fetch upstream changes. - Re-runs
scripts/configure-vault-paths.shto re-substitute placeholders with your currentkm-config.jsonvalues. - Re-applies the skip-worktree lock.
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
- Agent panel β β― β MCP Servers
- Check status of playwright and obsidian in server list
- Click Refresh if connection failed
| 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.
- Get API key from hyperbrowser.ai
- Change
browser.providerto"hyperbrowser"inkm-config.json - Add hyperbrowser server to MCP config:
"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"
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes
- Push to the branch
- Open a Pull Request
MIT License - Free to use, modify, and distribute.
- Claude Code
- Claude Code Plugins
- MCP Protocol
- Obsidian
- Antigravity MCP Setup Guide
- baoyu-skills - PPT/μ¬λΌμ΄λ μμ± μ€ν¬ μλ³Έ
- kmsg - KakaoTalk λ©μμ§ μ μ‘ CLI (macOS)