Obsidian Web Clipper + Claude Code + Node.js로 완전 자동화 지식 저장소 구축하기
이 글에서 만드는 것
크롬에서 웹 페이지를 클리핑하면, 백그라운드에서 AI가 자동으로 내용을 분석하고 구조화된 위키 페이지를 생성하는 시스템입니다. 한 번 설정해두면 이후에는 클리핑만 하면 됩니다.
전체 흐름:
- Chrome Web Clipper로 페이지 클리핑
- Obsidian이 raw/ 폴더에 .md 파일 저장
- Node.js watcher가 새 파일 감지
- Claude CLI가 자동으로 ingest 실행
- wiki/sources/, entities/, concepts/ 에 페이지 자동 생성
필요한 것들
- Windows 10/11
- Obsidian (무료) — 다운로드
- Chrome + Obsidian Web Clipper 확장 프로그램
- Claude Pro/Max 구독 계정
- Node.js LTS
Step 1 — 폴더 구조 만들기
위키의 기본 폴더 구조를 만듭니다. D:\llm-wiki 를 루트로 사용합니다.
D:\llm-wiki\ ├── raw\ ← 클리핑된 원본 파일 (절대 수정 금지) │ └── assets\ ← 이미지 저장 ├── wiki\ ← AI가 만드는 위키 페이지 │ ├── index.md │ ├── log.md │ ├── overview.md │ ├── sources\ │ ├── entities\ │ └── concepts\ └── CLAUDE.md ← AI 동작 지침서
Step 2 — Node.js 및 Claude CLI 설치
Windows Terminal(관리자)에서 실행:
# Node.js 설치 winget install OpenJS.NodeJS.LTS # 터미널 재시작 후 Claude CLI 설치 npm install -g @anthropic-ai/claude-code # 설치 확인 claude –version
Claude CLI 로그인:
& “C:\Users\[사용자명]\AppData\Roaming\npm\claude.cmd” login
브라우저가 열리면 Claude.ai 계정으로 로그인합니다.
Step 3 — 파일 감시 스크립트 (watch.js)
raw/ 폴더를 감시하다가 새 .md 파일이 생기면 Claude에게 자동으로 ingest를 요청하는 스크립트입니다. D:\llm-wiki\watch.js 로 저장합니다.
const fs = require(‘fs’); const path = require(‘path’); const { execSync } = require(‘child_process’); const RAW_DIR = path.join(__dirname, ‘raw’); const CLAUDE = path.join(process.env.APPDATA, ‘npm’, ‘claude.cmd’); const LOG_FILE = path.join(__dirname, ‘watcher.log’); function log(msg) { const line = `${new Date().toISOString()} ${msg}`; console.log(line); fs.appendFileSync(LOG_FILE, line + ‘\n’, ‘utf8’); } log(`Watcher started. Watching: ${RAW_DIR}`); const processed = new Map(); fs.watch(RAW_DIR, (eventType, filename) => { if (!filename || !filename.endsWith(‘.md’)) return; if (eventType !== ‘rename’) return; const filepath = path.join(RAW_DIR, filename); if (!fs.existsSync(filepath)) return; const now = Date.now(); if (processed.has(filename) && now – processed.get(filename) < 5000) return; processed.set(filename, now); log(`New file: ${filename} – starting ingest`); setTimeout(() => { try { const prompt = `ingest ${filename} — skip the confirmation step and proceed directly to writing all wiki pages without asking questions first`; const result = execSync( `”${CLAUDE}” -p “${prompt}” –dangerously-skip-permissions`, { cwd: __dirname, encoding: ‘utf8’, timeout: 600000 } ); log(`Ingest complete: ${filename}`); if (result) log(result); } catch (err) { log(`ERROR: ${err.message}`); } }, 2000); }); log(‘Waiting for new files…’);
Step 4 — 백그라운드 자동 실행 설정
PC 로그인 시 watcher가 자동 시작되도록 Windows 작업 스케줄러에 등록합니다.
4-1. VBScript 생성 (run-hidden.vbs)
터미널 창 없이 숨겨서 실행하기 위한 스크립트입니다.
Set WshShell = CreateObject(“WScript.Shell”) WshShell.Run “””C:\Program Files\nodejs\node.exe”” D:\llm-wiki\watch.js”, 0, False
4-2. 작업 스케줄러 등록 (관리자 PowerShell)
# 등록 schtasks /create /tn “llm-wiki-watcher” /tr “wscript.exe D:\llm-wiki\run-hidden.vbs” /sc onlogon /ru “%USERNAME%” /f /rl highest # 지금 바로 시작 schtasks /run /tn “llm-wiki-watcher” # 실행 확인 tasklist | findstr node
node.exe가 두 개 뜨면 성공입니다 (Claude Code 1개 + watcher 1개).
Step 5 — Obsidian Web Clipper 설정
Chrome Web Clipper 확장 아이콘 → 설정 → 기본 템플릿:
- 보관소: llm-wiki
- 노트 위치: raw
- 노트 이름 형식: {{date}}-{{title}} (중괄호 두 개씩)
Obsidian 앱이 실행 중이어야 Web Clipper가 파일을 저장할 수 있습니다.
동작 확인
Chrome에서 아무 페이지나 Web Clipper로 클리핑한 후 1~2분 기다립니다.
# wiki 폴더에 새 파일이 생겼는지 확인 Get-ChildItem D:\llm-wiki\wiki -Recurse | Sort-Object LastWriteTime -Descending | Select-Object -First 10 # watcher 로그 확인 Get-Content D:\llm-wiki\watcher.log -Tail 10
wiki/sources/, wiki/entities/, wiki/concepts/ 에 페이지가 생성되고 wiki/index.md, wiki/log.md 가 업데이트되면 완료입니다.
위키 활용하기
위키가 쌓이면 Claude Code 툴에서 질문으로 활용할 수 있습니다.
- 쿼리: “LLM Wiki 패턴과 RAG의 차이점이 뭐야?” → 위키 참조 후 답변
- Lint: “wiki lint 해줘” → 고아 페이지, 모순, 빠진 개념 점검
- Obsidian 그래프 뷰: 지식 간 연결 시각화
유용한 명령어
# watcher 실행 중인지 확인 tasklist | findstr node # watcher 중지 taskkill /f /im node.exe # watcher 재시작 schtasks /run /tn “llm-wiki-watcher”
마치며
이 시스템의 핵심 아이디어는 Andrej Karpathy의 llm-wiki 패턴에서 가져왔습니다. RAG는 질문할 때마다 원본에서 재조합하지만, 이 위키는 한 번 정리하고 계속 축적합니다. 클리핑할수록 위키가 풍부해지고, 질문의 답변도 더 정확해집니다.
“Obsidian은 IDE, AI는 프로그래머, 위키는 코드베이스” — 이 비유처럼, 나는 방향을 정하고 AI가 모든 정리를 맡습니다.