Turn any textbook into your personal learning wiki
전공책, PDF, 웹 콘텐츠를 넣으면 — LLM이 자동으로 상호 링크된 학습 위키 + 퀴즈를 생성합니다.
API key 없이 바로 체험할 수 있습니다:
mkdir my-wiki && cd my-wiki
bunx @open330/kiwimu init --demo
# → 양자역학 샘플 위키 + 학습 퀴즈가 즉시 생성됩니다
# → http://localhost:8000 에서 확인하세요mkdir my-wiki && cd my-wiki
bunx @open330/kiwimu init
bunx @open330/kiwimu add "<YOUR_URL_OR_PDF>"
bunx @open330/kiwimu serve
교과서 한 권을 읽으면 수십 개의 개념이 서로 연결됩니다. Kiwi Mu는 LLM을 활용해 이 연결을 자동으로 만들어, 지식을 빠르게 탐색할 수 있는 위키로 변환합니다.
- LLM 기반 문서 분석 — 챕터/섹션 구조를 보존한 원본 페이지 + 핵심 개념별 자동 생성 페이지
- 원본/개념 분리 — 📖 원본 문서와 📝 개념 문서를 시각적으로 구분
- 자동 상호 링크 — 원본↔개념 간 유기적 cross-link + 외부 참고 자료 (Wikipedia 등)
- 학습 퀴즈 — 개념 페이지 기반 빈칸 채우기 / OX / 단답형 퀴즈 자동 생성
- 지식 그래프 — D3.js 인터랙티브 그래프 (원본: 파란색, 개념: 초록색)
- 데모 모드 — API key 없이
--demo로 즉시 체험 - 다양한 파일 지원 — URL, PDF, DOCX, PPTX, PPT, DOC, KEY, RTF
- 4개 LLM 프로바이더 — Google Gemini, Azure OpenAI, OpenAI, Anthropic
- 다크 모드 — 시스템 테마에 자동 대응
- 모바일 지원 — 햄버거 메뉴 + 슬라이드 사이드바
- 웹 UI — 브라우저에서 문서 추가, 설정 변경, 빌드 실행
- 토큰 사용량 추적 — API 호출 수, 토큰, 예상 비용을 웹에서 확인
- 원클릭 배포 — GitHub Pages / Vercel
| Feature | Kiwi Mu | NotebookLM | Obsidian | Anki |
|---|---|---|---|---|
| Auto wiki from PDF | ✅ | ❌ | ❌ | ❌ |
| Knowledge graph | ✅ | ❌ | ✅ (plugin) | ❌ |
| Auto quiz generation | ✅ | ❌ | ❌ | ❌ (manual) |
| Spaced repetition | ✅ (basic) | ❌ | ❌ | ✅ |
| Self-hosted | ✅ | ❌ | ✅ | ✅ |
| One-click deploy | ✅ | ❌ | ❌ | ❌ |
| Open source | ✅ | ❌ | ❌ | ✅ |
| Free | ✅ | ✅ | Freemium | ✅ |
# npm/bunx로 바로 사용 (설치 불필요)
bunx @open330/kiwimu init
# 또는 글로벌 설치
bun add -g @open330/kiwimumkdir my-wiki && cd my-wiki
bunx @open330/kiwimu init --demo양자역학 샘플 위키가 생성되어 바로 체험할 수 있습니다:
- 📖 원본 문서 + 📝 개념 페이지
- 🔗 자동 상호 링크
- 📊 지식 그래프
- 📝 학습 퀴즈
- 🎲 임의 문서 탐험
mkdir my-wiki && cd my-wiki
bunx @open330/kiwimu initInteractive 프롬프트가 실행됩니다:
🥝 Kiwi Mu — 새 학습 위키 만들기
◆ 위키 이름
│ Radio Astronomy Wiki
◆ LLM 프로바이더
│ ● Google Gemini (무료 API key: aistudio.google.com)
│ ○ Azure OpenAI
│ ○ OpenAI
│ ○ Anthropic Claude
◆ 모델명
│ gemini-3.1-flash-lite-preview
◆ API Key
│ ••••••••••••
🥝 'Radio Astronomy Wiki' 위키가 생성되었습니다!
# URL 추가
bunx @open330/kiwimu add "https://www.cv.nrao.edu/~sransom/web/Ch1.html"
# 파일 추가 (PDF, DOCX, PPTX, DOC, PPT, KEY, RTF)
bunx @open330/kiwimu add textbook.pdf
bunx @open330/kiwimu add lecture.pptxLLM이 문서를 분석하여:
- 📖 원본 페이지 — 원래 챕터/섹션 구조 보존
- 📝 개념 페이지 — 핵심 용어·정의·법칙 자동 생성
- 🔗 Cross-link — 원본↔개념 간 유기적 연결
- 📝 퀴즈 — 개념별 학습 퀴즈 자동 생성
# 터미널에서 퀴즈 풀기
bunx @open330/kiwimu quiz
# 문제 수 지정
bunx @open330/kiwimu quiz -n 10웹에서도 http://localhost:8000/quiz.html에서 카드 플립 방식으로 퀴즈를 풀 수 있습니다.
# 정적 사이트 빌드
bunx @open330/kiwimu build
# 로컬 서버 실행 (웹에서 문서 추가 가능)
bunx @open330/kiwimu serve
# → http://localhost:8000
# 포트 변경
bunx @open330/kiwimu serve -p 3000kiwimu serve 실행 후 콘솔에 표시되는 admin URL로 접속:
- 위키 이름 변경
- LLM 프로바이더/모델/API Key 설정
- 토큰 사용량 및 예상 비용 확인
- 파일 업로드 (PDF, DOCX, PPTX 등)
- URL 추가
- 수동 빌드 실행
- 페르소나 관리
# GitHub Pages (기본)
bunx @open330/kiwimu deploy
# Vercel
bunx @open330/kiwimu deploy --target vercel| 명령 | 설명 |
|---|---|
kiwimu init [name] |
새 위키 프로젝트 생성 (interactive CLI) |
kiwimu init --demo |
샘플 데이터로 즉시 체험 (API key 불필요) |
kiwimu add <source> |
URL 또는 파일 추가 (PDF, DOCX, PPTX, DOC, PPT, KEY, RTF) |
kiwimu build |
정적 위키 사이트 빌드 |
kiwimu serve [-p port] |
웹 서버 실행 (문서 추가/관리 가능) |
kiwimu quiz [-n count] |
터미널에서 학습 퀴즈 풀기 |
kiwimu expand [--provider] |
LLM으로 문서 내용 확장 (선택) |
kiwimu deploy [--target] |
GitHub Pages / Vercel에 배포 |
kiwimu status |
현재 위키 상태 표시 |
| 형식 | 방법 |
|---|---|
| URL (HTTP/HTTPS) | Cheerio 웹 크롤링 |
| pdf-parse | |
| DOCX | mammoth |
| PPTX | ZIP/XML 파싱 |
| DOC / PPT / RTF | macOS textutil |
| KEY (Keynote) | 텍스트 추출 (제한적) |
| 프로바이더 | 추천 모델 | 비고 |
|---|---|---|
| Google Gemini | gemini-3.1-flash-lite-preview |
무료 API key |
| Azure OpenAI | gpt-5.4-nano |
Azure 구독 필요 |
| OpenAI | gpt-5.4 |
API key 필요 |
| Anthropic | claude-sonnet-4-6 |
API key 필요 |
소스 (URL / PDF / DOCX / PPTX / DOC / PPT / KEY / RTF)
↓
[ Ingest ] ── Cheerio / pdf-parse / mammoth / jszip / textutil
↓
[ Phase 1 ] ── LLM: 원본 구조 추출 (📖 원본 페이지) — 병렬 처리 (concurrency=3)
↓
[ Phase 2 ] ── LLM: 개념 추출 (📝 개념 페이지)
↓
[ Phase 2.5 ] ── LLM: 학습 퀴즈 자동 생성 (📝 퀴즈) — 병렬 처리
↓
[ Phase 3 ] ── [[wiki link]] 해석 + 원본↔개념 cross-link
↓
[ Build ] ── 정적 HTML (사이드바, KaTeX, 지식 그래프, 퀴즈, 다크 모드)
↓
[ Deploy ] ── GitHub Pages / Vercel
project-dir/
├── kiwi.toml # 프로젝트 + LLM 설정
├── kiwi.db # SQLite (문서, 링크, 퀴즈, 사용량)
├── uploads/ # 업로드된 파일
└── _site/ # 빌드 결과
├── index.html # 홈 (문서 목록)
├── graph.html # 지식 그래프
├── quiz.html # 학습 퀴즈
├── wiki/ # 각 문서 페이지
│ └── random.html # 임의 문서
├── static/ # CSS, JS, 로고
└── search-index.json
- Bun — 런타임, 패키지 매니저, 빌트인 SQLite
- TypeScript — 타입 안전한 파이프라인
- @clack/prompts — Interactive CLI
- Cheerio — 웹 페이지 파싱
- Mammoth — DOCX 파싱
- JSZip — PPTX 파싱
- Marked + sanitize-html — Markdown → 안전한 HTML
- D3.js — 지식 그래프
- KaTeX — 수학 수식 렌더링
- gh-pages — GitHub Pages 배포
- Bearer 토큰 인증 (serve 모드)
- SSRF 방지 (프라이빗 IP 차단, 리다이렉트 재검증)
- Path Traversal 방지 (resolve 검증)
- XSS 방지 (sanitize-html, CSP 헤더, escapeHtml)
- 파일 업로드 제한 (50MB)
MIT