| name | notebooklm |
| description | Google NotebookLM CLI (nlm) 을 사용하여 소스 기반 Q&A, 노트북 관리, 리서치, 오디오/리포트/퀴즈 생성을 수행합니다. 할루시네이션 없는 문서 기반 답변을 제공합니다. |
NotebookLM CLI Skill
nlm CLI를 통해 Google NotebookLM과 상호작용하는 스킬.
When to Use This Skill
트리거 조건:
- 사용자가 "NotebookLM", "노트북", "nlm" 언급
- NotebookLM URL 공유 (
https://notebooklm.google.com/...)
- "내 문서에서 찾아봐", "소스 기반으로 답변해줘"
- 리서치, 팟캐스트, 리포트 생성 요청
CLI Binary
~/.local/bin/nlm
설치 방법: uv tool install notebooklm-mcp-cli
업데이트: uv tool upgrade notebooklm-mcp-cli
⚠️ CRITICAL: 인증 (세션 ~20분)
모든 작업 전 인증 상태 확인:
nlm auth status
실패 시:
nlm login
자동 복구 내장 (CSRF/토큰/Headless) → 대부분 자동 처리됨.
"Cookies have expired" 또는 "authentication may have expired" → nlm login 재실행.
Command Style
두 가지 스타일 모두 동일하게 동작:
| Noun-First (리소스 중심) | Verb-First (액션 중심) |
|---|
nlm notebook list | nlm list notebooks |
nlm notebook create "제목" | nlm create notebook "제목" |
nlm source add <id> --url <url> | nlm add url <id> <url> |
어느 스타일이든 사용 가능. 이 문서는 Noun-First 기준.
Core Workflows
1. 노트북 관리
nlm notebook list
nlm notebook list --json
nlm notebook list --quiet
nlm notebook create "프로젝트 이름"
nlm notebook get <id>
nlm notebook describe <id>
nlm notebook rename <id> "새 이름"
nlm notebook delete <id> --confirm
2. 소스 관리
nlm source add <notebook_id> --url "https://..."
nlm source add <notebook_id> --file "/path/to/file.md"
nlm source add <notebook_id> --text "내용" --title "제목"
nlm source add <notebook_id> --url "..." --wait
nlm source list <notebook_id>
nlm source describe <notebook_id> <source_id>
nlm source content <notebook_id> <source_id>
nlm source stale <notebook_id>
nlm sync sources <notebook_id>
3. Q&A (핵심 기능)
nlm query notebook <notebook_id> "질문"
nlm query notebook <notebook_id> "질문" --json
nlm query notebook <notebook_id> "질문" --source-ids <id1,id2>
nlm query notebook <notebook_id> "후속 질문" --conversation-id <cid>
중요: nlm chat start (REPL 모드)는 사용하지 마세요. 에이전트가 제어할 수 없습니다.
항상 nlm query notebook으로 one-shot 쿼리를 사용하세요.
4. 콘텐츠 생성
nlm audio create <notebook_id> --confirm
nlm video create <notebook_id> --confirm
nlm report create <notebook_id> --confirm
nlm quiz create <notebook_id> --confirm
nlm flashcards create <notebook_id> --confirm
nlm mindmap create <notebook_id> --confirm
nlm slides create <notebook_id> --confirm
nlm infographic create <notebook_id> --confirm
nlm studio status <notebook_id>
nlm studio status <notebook_id> --full
nlm download audio <notebook_id> <artifact_id> -o output.mp3
nlm download video <notebook_id> <artifact_id> -o output.mp4
nlm download report <notebook_id> <artifact_id> -o report.txt
5. 리서치
nlm research start <notebook_id> "연구 주제" --mode deep
nlm research status <notebook_id> --max-wait 300
nlm research import <notebook_id> <task_id>
6. 별칭 (UUID 단축)
nlm alias list
nlm alias set myproject <uuid>
nlm alias get myproject
nlm alias delete myproject
nlm notebook get myproject
nlm query notebook myproject "질문"
nlm audio create myproject --confirm
7. 공유 / 내보내기
nlm share status <notebook_id>
nlm share public <notebook_id>
nlm share private <notebook_id>
nlm share invite <notebook_id> --email user@example.com --role reader
nlm export to-docs <notebook_id> <artifact_id>
nlm export to-sheets <notebook_id> <artifact_id>
Output Formats
| 플래그 | 설명 | 사용처 |
|---|
| (없음) | 사람용 테이블 | 기본값 |
--json | JSON 출력 (파싱용) | 스크립트 |
--quiet | ID만 출력 | 파이프 |
--full | 전체 컬럼 | 상세 확인 |
자동 감지: stdout이 TTY가 아니면 (파이프 시) 자동 JSON 출력.
Decision Flow
사용자가 NotebookLM 관련 요청
↓
nlm auth status → 실패 시 nlm login (사용자에게 브라우저 로그인 안내)
↓
nlm alias list → 별칭 확인 (자주 쓰는 노트북)
↓
목적에 따라 분기:
├── Q&A → nlm query notebook <id> "질문"
├── 소스 추가 → nlm source add <id> --url/--file/--text
├── 생성 → nlm audio/report/quiz create <id> --confirm
├── 리서치 → nlm research start <id> "주제" --mode deep
└── 관리 → nlm notebook list/create/delete
↓
결과 정리 → 사용자에게 응답
Troubleshooting
| 문제 | 해결 |
|---|
nlm: command not found | export PATH="$HOME/.local/bin:$PATH" |
| "Cookies have expired" | nlm login |
| Rate limit | 자동 재시도 3회 (1s/2s/4s 백오프) |
| 노트북 못 찾음 | nlm notebook list로 ID 확인 |
| 리서치 이미 진행 중 | --force 사용 또는 기존 결과 import 먼저 |
| 생성 시간 오래 걸림 | 오디오/비디오 1~5분 정상, nlm studio status로 확인 |
Best Practices
- 인증 먼저 — 모든 작업 전
nlm auth status
- 별칭 활용 — UUID 대신 기억하기 쉬운 이름
- --confirm 필수 — 생성/삭제 명령에 항상 추가 (프롬프트 방지)
- --wait 활용 — 소스 추가 후 바로 쿼리하려면
--wait
- REPL 금지 —
nlm chat start 사용 금지, nlm query notebook 사용
- 삭제 전 확인 — 삭제는 복구 불가, 사용자에게 반드시 확인
- 별칭 중복 확인 — 새 별칭 설정 전
nlm alias list로 기존 확인