Paste a link.Walk away with study notesyou actually keep.
One command reads the transcript, writes real structured Markdown, and can throw in a quiz and a PDF while it's at it. Point it at a whole playlist and it runs unattended, through whichever model you already have a key for.
›notewise process "https://youtu.be/iDulhoQ2pro" --quiz --format md,pdf›→ parsing url · fetching transcript · detecting chapters›→ chapters: 7 · chunking 4000 / overlap 200›→ generating with gemini/gemini-2.5-flash›✓ wrote attention_is_all_you_need.md›✓ wrote attention_is_all_you_need_quiz.md›✓ wrote attention_is_all_you_need.pdf›One run. Six
kinds of paper.
Six formats come out of one generation pass. Wanting a PDF too doesn't mean running the transcript through the model a second time.
› notewise process "…" --format md,html,pdf,docx
Markdown
01HTML
02PDF
03DOCX
04Transcript .txt
05Transcript .json
06
From URL to filed-away notes, in six small steps.
Six ordinary steps, not a black box. Each one shows up in the logs, takes a flag if you want to change it, and if step four dies, rerunning picks up from cache instead of starting over.
Resolve
Cache check
Chapter-split
Generate
Render
Persist
Bring the model
you already pay for.
NoteWise doesn't have its own model. It hands the prompt to LiteLLM (opens in a new tab), which already speaks to two dozen providers. Point one environment variable at whichever you've got a key for. Gemini 2.5 Flash is the default — its free tier alone covers a full course.
| Provider | Model prefix | Env key |
|---|---|---|
| Google Geminidefault | gemini/… | GEMINI_API_KEY |
| OpenAI | openai/… | OPENAI_API_KEY |
| Anthropic | anthropic/… | ANTHROPIC_API_KEY |
| AI21 | ai21/… | AI21_API_KEY |
| Azure OpenAI | azure/… | AZURE_API_KEY |
| AWS Bedrock | bedrock/… | AWS_ACCESS_KEY_ID |
| Cerebras | cerebras/… | CEREBRAS_API_KEY |
| Cloudflare | cloudflare/… | CLOUDFLARE_API_KEY |
| Cohere | cohere/… | COHERE_API_KEY |
| DashScope | dashscope/… | DASHSCOPE_API_KEY |
| Databricks | databricks/… | DATABRICKS_API_KEY |
| DeepInfra | deepinfra/… | DEEPINFRA_API_KEY |
| DeepSeek | deepseek/… | DEEPSEEK_API_KEY |
| Fireworks | fireworks_ai/… | FIREWORKS_AI_API_KEY |
| Groq | groq/… | GROQ_API_KEY |
| Hugging Face | huggingface/… | HUGGINGFACE_API_KEY |
| Jina AI | jina_ai/… | JINA_API_KEY |
| Mistral | mistral/… | MISTRAL_API_KEY |
| Novita | novita/… | NOVITA_API_KEY |
| NVIDIA NIM | nvidia_nim/… | NVIDIA_NIM_API_KEY |
| OpenRouter | openrouter/… | OPENROUTER_API_KEY |
| Perplexity | perplexity/… | PERPLEXITYAI_API_KEY |
| Replicate | replicate/… | REPLICATE_API_KEY |
| SambaNova | sambanova/… | SAMBANOVA_API_KEY |
| Together AI | together_ai/… | TOGETHERAI_API_KEY |
| Vercel AI Gateway | vercel_ai_gateway/… | VERCEL_AI_GATEWAY_API_KEY |
| Voyage AI | voyage/… | VOYAGE_API_KEY |
| watsonx | watsonx/… | WATSONX_API_KEY |
| xAI Grok | xai/… | XAI_API_KEY |
gemini/…GEMINI_API_KEYopenai/…OPENAI_API_KEYanthropic/…ANTHROPIC_API_KEYai21/…AI21_API_KEYazure/…AZURE_API_KEYbedrock/…AWS_ACCESS_KEY_IDcerebras/…CEREBRAS_API_KEYcloudflare/…CLOUDFLARE_API_KEYcohere/…COHERE_API_KEYdashscope/…DASHSCOPE_API_KEYdatabricks/…DATABRICKS_API_KEYdeepinfra/…DEEPINFRA_API_KEYdeepseek/…DEEPSEEK_API_KEYfireworks_ai/…FIREWORKS_AI_API_KEYgroq/…GROQ_API_KEYhuggingface/…HUGGINGFACE_API_KEYjina_ai/…JINA_API_KEYmistral/…MISTRAL_API_KEYnovita/…NOVITA_API_KEYnvidia_nim/…NVIDIA_NIM_API_KEYopenrouter/…OPENROUTER_API_KEYperplexity/…PERPLEXITYAI_API_KEYreplicate/…REPLICATE_API_KEYsambanova/…SAMBANOVA_API_KEYtogether_ai/…TOGETHERAI_API_KEYvercel_ai_gateway/…VERCEL_AI_GATEWAY_API_KEYvoyage/…VOYAGE_API_KEYwatsonx/…WATSONX_API_KEYxai/…XAI_API_KEY- ChatGPT (OAuth)
chatgpt/gpt-5.6-lunanotewise auth login chatgpt - GitHub Copilot (OAuth)
github_copilot/gpt-5-mininotewise auth login github_copilot
› notewise inference add local --base-url http://localhost:8000/v1
Four commands that cover
most of a semester.
These four cover almost everything. For the rest, there's a flag for it: notewise process --help.
Recipe · 01
Single video, default everything
›notewise process "https://youtu.be/VIDEO"<title>.mdRecipe · 02
Full playlist · PDF + DOCX
›notewise process "https://youtube.com/playlist?list=…" --format md,pdf,docx -o ./courseRecipe · 03
Batch a syllabus from a .txt
›notewise process syllabus.txt --quiz<name>.md and <name>_quiz.md per videoRecipe · 04
Sign in with ChatGPT — no API key
›notewise auth login chatgpt›notewise process "…" --model chatgpt/gpt-5.6-lunaHonest answers, before you install.
Where do my notes live?
Wherever --output points, ./output if you don't say otherwise. The Markdown file is the real artifact; every other format is rendered next to it. Nothing about the video or your notes leaves your machine except the request to your LLM.
What about videos without captions?
Can't be processed. NoteWise reads YouTube's transcript API and stops there — it doesn't run its own speech-to-text. If a video has no captions, bring your own transcription and feed the text in some other way.
Will it cost me money?
NoteWise itself is free, MIT-licensed, and always will be. What the model call costs depends entirely on your provider's pricing and your usage — check their docs before you point it at a 40-video playlist. NoteWise tracks and estimates that per-run cost as it works, even for self-hosted or custom endpoints without built-in LiteLLM pricing.
Do I have to remember every flag?
No. Commands for managing saved endpoints, reading or writing config keys, and inspecting a cached video will prompt you for anything you leave out — including a numbered, arrow-key picker for choosing a model.
Can I use private or members-only videos?
Yes. Export a Netscape-format cookie file, set YOUTUBE_COOKIE_FILE, and NoteWise transcribes anything your own browser session can already watch.
Why CLI and not a web app?
Because a terminal command drops into cron, CI, your editor, and whatever scripts you already have. A web app would mean re-uploading and re-pasting every time. The notes belong in your repo, not behind someone else's login.
How are long videos handled?
By default, one file — chapters just become headings inside it. Pass --chapter-directory-output for one file per chapter instead. Videos without chapter markers get chunked into 4,000-token windows with a 200-token overlap, so nothing important falls on a seam.
Pick a video. Keep what you learn.
Already set up with uv or pipx? Grab the PyPI package below. Just want a binary and nothing else? The short URL figures out your shell and hands back the right installer.
›# recommended Python tool install›uv tool install notewise››# try without installing›uvx notewise --help››# pipx / pip›pipx install notewise›python -m pip install notewise››# prefer standalone binary?›curl -fsSL https://notewise.click/install | sh››# Windows binary installer›irm https://notewise.click/install | iex