MODSetter/SurfSense

Air gapped, privacy focused open source NotebookLM alternative. Join our Discord: https://discord.gg/ejRNvftDp9

Python

16,176

9,646 commits

updated Sep 21, 2026

See the code
agent
agents
ai
fastapi
langchain
langgraph
nextjs
notebooklm
notebooklm-alternative
ollama
python
rag
typescript
web-scraping

See what people are saying (1)

SourceMessageScoreDate

Air-gapped open source NotebookLM alternative (r/selfhosted)

I'm one of the maintainers of SurfSense, so treat this as self-promotion. I'm posting because a few threads here have asked for a self-hosted NotebookLM and nobody ever answered them, and because I want real feedback more than upvotes. I use NotebookLM for everything except work material I'd rather…

1

Sep 21, 2026

README

Stars Forks Latest release License Discord

SurfSense, the air-gapped open-source NotebookLM alternative

SurfSense

The air-gapped, open-source NotebookLM alternative.
Turn documents you can't upload into briefings, decks, reports, study guides and podcasts, entirely on your own machine.

Download · Docs · What it makes · Compare · Pricing · Discord

MODSetter/SurfSense | Trendshift

English | Español | Português | हिन्दी | 简体中文

SurfSense desktop app with Studio open and Qwen selected, turning local sources into artifacts

SurfSense is a free, open-source desktop app for the documents you already have. Drop them in, ask questions and get answers that cite their sources, then turn the same documents into a briefing, a slide deck, a report, a study guide or a podcast. All of it runs on your own machine: the index sits on your disk, you pick the model, and the app uploads nothing. There is no account to create.

Get started. Download the installer for your machine, then bring your own model key or let the app pull a local model for you.

PlatformDownload
Windows x64SurfSense-Setup.exe
macOS Apple SiliconSurfSense-arm64.dmg
Linux x64 (AppImage)SurfSense.AppImage
Linux x64 (deb)SurfSense.deb

Every link is a permalink to the newest release. You can also pick from surfsense.com/downloads or browse all releases. The AppImage auto-updates; the deb does not.

[!NOTE] Used the hosted web app? It is being retired. Open it once to export your workspaces, then import the bundle into the desktop app; documents, folders, titles and chat threads all come across. The export window closes on 18 October 2026. Details on the sunset page.

What SurfSense makes

Pick some documents and a format. The app writes it from the sources you chose, on your machine.

FormatWhat you getNeeds
SummaryA structured brief of the selected sourcesgeneration model
FlashcardsAn interactive deck, one card at a timegeneration model
QuizMultiple-choice questions with answersgeneration model
Mind mapA zoomable, collapsible Markmapgeneration model
SlidesAn editable .pptx, not a picture of a deckgeneration model
DocumentAn editable .docx reportgeneration model
SpreadsheetAn .xlsx of tables pulled from the sourcesgeneration model
Web pageA self-contained HTML pagegeneration model
PDFA typeset PDFgeneration model
PodcastA two-host audio conversation, voiced offline by Kokoro-82Mgeneration model + bundled voice
ImageAn illustration for the materialimage model + generation model
InfographicA single-panel visual summaryimage model + generation model

Some jobs need more than one. A study guide is a summary, a flashcard deck and a quiz over the same source set, and a client briefing is usually the deck you present from plus the summary you send after. Video overviews are not built yet.

Everything stays on your machine

People point this at case papers, client working papers, interview transcripts, internal specs, unpublished research and a term's worth of lecture notes. You can ask questions across all of it and every answer cites the source it came from. The app does not upload any of it.

  • The index is local. Parsing, chunking and embedding happen on your computer, into SQLite under ~/.surfsense. SurfSense keeps no copy of it and no log of what you asked.
  • Every role can run locally. The document parser, the retrieval model and the podcast voice ship inside the installer. Chat and image generation ship as local servers whose weights you download once, so you can produce text, audio and pictures without an account or an API key. We test it by ingesting a PDF with networking disabled.
  • Outbound connections are off by default. An egress panel lists every destination the app can reach and you switch on the ones you want.
  • No telemetry, no crash reporting. Nothing phones home, so there is no opt-out to find.

SurfSense cannot tell you whether that satisfies a particular regulation. That depends on your own controls and your regulator. All the app can tell you is which machine your documents are on.

How SurfSense compares

Three kinds of product get called "the local NotebookLM", and they answer different questions. None of them is a bad tool; they just leave you with different things.

vs Jan, AnythingLLM, Open WebUI, LM Studio. These run a model locally and give you somewhere to chat with it. SurfSense answers the next question: how do you get a finished document out of one? Use them together if you like, by pointing SurfSense at any OpenAI-compatible endpoint, including one of theirs.

vs RemNote, Quizlet, NoteGPT, StudyFetch, Gamma. These do produce artifacts, and some look better than ours. The trade is where your material goes: you upload it, you pay monthly, and your files live in someone else's account.

vs Google NotebookLM. It already ships flashcards, quizzes, mind maps and audio overviews, so both produce much the same things. The difference is whose machine does the work and which model you can point at it.

Google NotebookLMSurfSense
Runs offline / air-gappedNoYes
Your documents leave your machineYesNo
Account requiredGoogle accountNone
Open sourceNoApache-2.0
PriceFree tier; Pro $19.99/mo; Ultra $249.99/moApp is free
ModelsGemini onlyAny OpenAI-compatible API, or a local one
Source limits50 to 600 sources, 500,000 words eachWhatever your disk holds
Audio and video overviewsYes, and betterAudio yes, offline; video not yet

NotebookLM wins on audio quality and it has video. If you are content with your sources sitting on Google's servers, use it. If you are not, this is the same kind of tool without the upload.

Quick start

You do not need Docker, a terminal, a GPU or a compose file.

  1. Download the installer from the table above. It is signed, so your OS will not fight you.
  2. Pick a model. Let the app pull a local one (Qwen3 in six sizes, from 0.5 GB) or paste a base URL and key for any OpenAI-compatible API. The picker checks your machine can run a model before offering it, and any key you give it is stored encrypted, with the secret held in your OS keychain.
  3. Drop in documents. The app parses PDFs, Office files and images on your machine.
  4. Ask questions. Every answer cites the source it came from.
  5. Open Studio, choose a format, collect the file.

The download is the slow part, because the installer carries the parser, the retrieval model, the podcast voice and the local model servers, so the app works with the network off.

Docs, roadmap and community

The app and its updates are free. A licence adds plugins and priority support and gates nothing else, so an expired licence still leaves you the app and every future update. See pricing.

The Docker stack in this repo (surfsense_backend, surfsense_web, compose files) stays open source and installable, and is community-supported: no SLA and no hosted service behind it. The desktop app is the supported path for new users.

Pull requests welcome. Start with CONTRIBUTING.md; the desktop app lives in surfsense_local/ and its README covers the development loop.

Thanks to all our Surfers:

SurfSense contributors

Star history

Star History Chart

License

Apache-2.0. See LICENSE.

Contributors

(top 30 of 85)

AnishSarkar22

3,484 commits

CREDO23

3,165 commits

MODSetter

2,320 commits

thierryverse

73 commits

MODSetter/SurfSense

Air gapped, privacy focused open source NotebookLM alternative. Join our Discord: https://discord.gg/ejRNvftDp9

Python

16,176

9,646 commits

updated Sep 21, 2026

See the code
agent
agents
ai
fastapi
langchain
langgraph
nextjs
notebooklm
notebooklm-alternative
ollama
python
rag
typescript
web-scraping

See what people are saying (1)

SourceMessageScoreDate

Air-gapped open source NotebookLM alternative (r/selfhosted)

I'm one of the maintainers of SurfSense, so treat this as self-promotion. I'm posting because a few threads here have asked for a self-hosted NotebookLM and nobody ever answered them, and because I want real feedback more than upvotes. I use NotebookLM for everything except work material I'd rather…

1

Sep 21, 2026

README

Stars Forks Latest release License Discord

SurfSense, the air-gapped open-source NotebookLM alternative

SurfSense

The air-gapped, open-source NotebookLM alternative.
Turn documents you can't upload into briefings, decks, reports, study guides and podcasts, entirely on your own machine.

Download · Docs · What it makes · Compare · Pricing · Discord

MODSetter/SurfSense | Trendshift

English | Español | Português | हिन्दी | 简体中文

SurfSense desktop app with Studio open and Qwen selected, turning local sources into artifacts

SurfSense is a free, open-source desktop app for the documents you already have. Drop them in, ask questions and get answers that cite their sources, then turn the same documents into a briefing, a slide deck, a report, a study guide or a podcast. All of it runs on your own machine: the index sits on your disk, you pick the model, and the app uploads nothing. There is no account to create.

Get started. Download the installer for your machine, then bring your own model key or let the app pull a local model for you.

PlatformDownload
Windows x64SurfSense-Setup.exe
macOS Apple SiliconSurfSense-arm64.dmg
Linux x64 (AppImage)SurfSense.AppImage
Linux x64 (deb)SurfSense.deb

Every link is a permalink to the newest release. You can also pick from surfsense.com/downloads or browse all releases. The AppImage auto-updates; the deb does not.

[!NOTE] Used the hosted web app? It is being retired. Open it once to export your workspaces, then import the bundle into the desktop app; documents, folders, titles and chat threads all come across. The export window closes on 18 October 2026. Details on the sunset page.

What SurfSense makes

Pick some documents and a format. The app writes it from the sources you chose, on your machine.

FormatWhat you getNeeds
SummaryA structured brief of the selected sourcesgeneration model
FlashcardsAn interactive deck, one card at a timegeneration model
QuizMultiple-choice questions with answersgeneration model
Mind mapA zoomable, collapsible Markmapgeneration model
SlidesAn editable .pptx, not a picture of a deckgeneration model
DocumentAn editable .docx reportgeneration model
SpreadsheetAn .xlsx of tables pulled from the sourcesgeneration model
Web pageA self-contained HTML pagegeneration model
PDFA typeset PDFgeneration model
PodcastA two-host audio conversation, voiced offline by Kokoro-82Mgeneration model + bundled voice
ImageAn illustration for the materialimage model + generation model
InfographicA single-panel visual summaryimage model + generation model

Some jobs need more than one. A study guide is a summary, a flashcard deck and a quiz over the same source set, and a client briefing is usually the deck you present from plus the summary you send after. Video overviews are not built yet.

Everything stays on your machine

People point this at case papers, client working papers, interview transcripts, internal specs, unpublished research and a term's worth of lecture notes. You can ask questions across all of it and every answer cites the source it came from. The app does not upload any of it.

  • The index is local. Parsing, chunking and embedding happen on your computer, into SQLite under ~/.surfsense. SurfSense keeps no copy of it and no log of what you asked.
  • Every role can run locally. The document parser, the retrieval model and the podcast voice ship inside the installer. Chat and image generation ship as local servers whose weights you download once, so you can produce text, audio and pictures without an account or an API key. We test it by ingesting a PDF with networking disabled.
  • Outbound connections are off by default. An egress panel lists every destination the app can reach and you switch on the ones you want.
  • No telemetry, no crash reporting. Nothing phones home, so there is no opt-out to find.

SurfSense cannot tell you whether that satisfies a particular regulation. That depends on your own controls and your regulator. All the app can tell you is which machine your documents are on.

How SurfSense compares

Three kinds of product get called "the local NotebookLM", and they answer different questions. None of them is a bad tool; they just leave you with different things.

vs Jan, AnythingLLM, Open WebUI, LM Studio. These run a model locally and give you somewhere to chat with it. SurfSense answers the next question: how do you get a finished document out of one? Use them together if you like, by pointing SurfSense at any OpenAI-compatible endpoint, including one of theirs.

vs RemNote, Quizlet, NoteGPT, StudyFetch, Gamma. These do produce artifacts, and some look better than ours. The trade is where your material goes: you upload it, you pay monthly, and your files live in someone else's account.

vs Google NotebookLM. It already ships flashcards, quizzes, mind maps and audio overviews, so both produce much the same things. The difference is whose machine does the work and which model you can point at it.

Google NotebookLMSurfSense
Runs offline / air-gappedNoYes
Your documents leave your machineYesNo
Account requiredGoogle accountNone
Open sourceNoApache-2.0
PriceFree tier; Pro $19.99/mo; Ultra $249.99/moApp is free
ModelsGemini onlyAny OpenAI-compatible API, or a local one
Source limits50 to 600 sources, 500,000 words eachWhatever your disk holds
Audio and video overviewsYes, and betterAudio yes, offline; video not yet

NotebookLM wins on audio quality and it has video. If you are content with your sources sitting on Google's servers, use it. If you are not, this is the same kind of tool without the upload.

Quick start

You do not need Docker, a terminal, a GPU or a compose file.

  1. Download the installer from the table above. It is signed, so your OS will not fight you.
  2. Pick a model. Let the app pull a local one (Qwen3 in six sizes, from 0.5 GB) or paste a base URL and key for any OpenAI-compatible API. The picker checks your machine can run a model before offering it, and any key you give it is stored encrypted, with the secret held in your OS keychain.
  3. Drop in documents. The app parses PDFs, Office files and images on your machine.
  4. Ask questions. Every answer cites the source it came from.
  5. Open Studio, choose a format, collect the file.

The download is the slow part, because the installer carries the parser, the retrieval model, the podcast voice and the local model servers, so the app works with the network off.

Docs, roadmap and community

The app and its updates are free. A licence adds plugins and priority support and gates nothing else, so an expired licence still leaves you the app and every future update. See pricing.

The Docker stack in this repo (surfsense_backend, surfsense_web, compose files) stays open source and installable, and is community-supported: no SLA and no hosted service behind it. The desktop app is the supported path for new users.

Pull requests welcome. Start with CONTRIBUTING.md; the desktop app lives in surfsense_local/ and its README covers the development loop.

Thanks to all our Surfers:

SurfSense contributors

Star history

Star History Chart

License

Apache-2.0. See LICENSE.

Contributors

(top 30 of 85)

AnishSarkar22

3,484 commits

CREDO23

3,165 commits

MODSetter

2,320 commits

thierryverse

73 commits

Languages

Python

67.0%

TypeScript

30.1%

MDX

1.5%