Model or dataset
MODSetter/SurfSense avatar
MODSetter/SurfSense

SurfSense: an offline NotebookLM-style desktop agent whose web plugins sit behind a license

Open-source NotebookLM alternative. Research the open web with live data(Reddit, YT, IG, TikTok, Indeed, Google Search, Maps etc) through one platform, API or MCP server. Join our Discord: https://discord.gg/ejRNvftDp9

16,866 stars1,610 forksPythonApache-2.0

At a glance

What is it?
MODSetter/SurfSense is an Apache-2.0 desktop app that indexes your files on disk and lets an agent research, edit and convert them with a model you choose. The local document side is free and works without an account; the live web plugins in its description need a paid or trial license, and several format features depend on extras you install yourself.
Who is it for?
SurfSense fits someone who wants a NotebookLM-style agent over PDFs, Word and Excel files that cannot leave their machine, and who is willing to run a local model to keep it that way. It is a weaker fit if the draw is live Reddit, YouTube or Google Maps content, because those plugins need a SurfSense license after a 14-day trial.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • MODSetter/SurfSense16,866 ★ · +741
Star history
Repository2026-09-112026-11-13
MODSetter/SurfSense16.1k16.9k

741 Stars in the last 63 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

The index stays on disk, unless you pick a remote model

SurfSense is a desktop app for documents you cannot upload. Files and folders you drop into your sources are indexed on your own disk, there is no account, and you choose the model, local or remote. The quick start is three steps: install and finish onboarding, add files or folders as sources, then ask the agent to search, extract or edit.

The air-gapped claim has a condition attached. The project's own comparison with NotebookLM says your documents do not leave your machine unless you pick a remote model. If you connect a hosted API for convenience, the privacy argument for choosing SurfSense over a cloud notebook mostly disappears, so the model choice is the decision that matters most at setup.

Edits always land in a new file

Every edit, conversion and PDF operation writes a new file and leaves the original untouched. Word files are edited as tracked changes and comments on body text, which is how the contract redlining demo works. Excel edits change cell values and formulas, and the agent reads formulas when researching a sheet. PowerPoint editing is narrower: replace text on slides and notes, delete or duplicate slides. PDF editing covers filling and flattening forms and stamping watermarks, page numbers, headers and footers, plus merge, split, extract, rotate and reorder.

PDF, Word and Excel are the strongest formats today. CSV can be researched and analysed with pandas but not created or edited, and Markdown, HTML, books and recordings are research-only or create-only.

Office conversion, image generation and OCR each have a gap

Three footnotes change what a fresh install can do. Converting Word or PowerPoint to PDF needs Office support through LibreOffice, switched on in Settings, and LibreOffice is never bundled in the installer. Creating images and infographics needs an image model, local or remote, and none is selected by default, so that column of the format table is empty until you configure one. OCR for scanned PDFs and images reads Latin, Chinese and Japanese script only.

The consequence: a scanned document in Arabic, Cyrillic or Korean script will not yield cited answers from its text, even though the README itself ships in those languages. E-books in EPUB, MOBI and AZW3 work only without DRM, so store-bought copies with DRM are out.

Live web plugins need a SurfSense license

The repository description promotes research on the open web with live data from Reddit, YouTube, Instagram, TikTok, Indeed, Google Search and Maps. Those are first-party plugins connected in Settings, Plugins: Google Search, Web Crawl, YouTube, TikTok, Reddit, Instagram, Google Maps, Amazon, Walmart and Indeed. They read public pages without your own accounts, and every one of them needs a SurfSense license. Entering an email in the downloaded app grants a free 14-day license, and there is a pricing page beyond that.

Third-party MCP servers from the plugin registry in backend/plugins/registry, such as DeepWiki and Notion, or any server added by URL, need no license and stay off until you allow them. Treat the open source app as the local document agent, and the live data features as a separate paid product layered on top.

Builds cover Windows x64, Apple Silicon and Linux x64 only

Native downloads are SurfSense-Setup.exe for Windows x64, SurfSense-arm64.dmg for macOS on Apple Silicon, and an AppImage or deb for Linux x64. There is no Intel Mac build and no Linux arm64 package in that table. For a server you open from any device on your network, Docker is the alternative. On Linux and macOS:

code
curl -fsSL https://raw.githubusercontent.com/MODSetter/SurfSense/main/docker/scripts/install.sh | bash

On Windows with Docker Desktop:

code
irm https://raw.githubusercontent.com/MODSetter/SurfSense/main/docker/scripts/install.ps1 | iex

Running the same command again is the update path. Both pipe a script from the main branch straight into a shell, so read docker/scripts/install.sh or install.ps1 first if that matters to you.

Point releases arrive days apart

v2.2.4 was published on 2026-10-25, v2.2.5 on 2026-10-27, and v2.3.0 on 2026-11-02, with the last push to main the same day. The README carries a maintainer note that the format table is checked against a specific dev commit contained in v2.3.0 and must be re-checked before each release, and that installers have carried the agent since v2.2.0. Capabilities in the format table are tied to a release; on an older build, a cell marked supported may not apply yet.

Editorial conclusion

SurfSense fits someone who wants a NotebookLM-style agent over PDFs, Word and Excel files that cannot leave their machine, and who is willing to run a local model to keep it that way. It is a weaker fit if the draw is live Reddit, YouTube or Google Maps content, because those plugins need a SurfSense license after a 14-day trial. Before adopting it, confirm your platform has a build (macOS is Apple Silicon only), decide on a model, and check whether you need LibreOffice for Office conversion.

Frequently asked questions

What is SurfSense AI?

SurfSense is a free, Apache-2.0 desktop app: a NotebookLM-style AI agent that researches, transforms and edits your documents on your machine, with the index on your disk and a local or remote model of your choice.

Is SurfSense free?

The SurfSense app is free and open source under Apache-2.0 with no account. Its own web plugins such as Google Search, Reddit and YouTube need a SurfSense license, with a free 14-day one available in the app.

How to install SurfSense?

Download SurfSense-Setup.exe for Windows x64, SurfSense-arm64.dmg for Apple Silicon Macs, or an AppImage or deb for Linux x64. For a self-hosted server, run the Docker install script from docker/scripts; running it again updates it.

Is NotebookLM self-hosted, and how does SurfSense differ?

SurfSense's comparison table marks NotebookLM as not running offline and supporting Gemini models only. SurfSense runs offline and accepts any OpenAI-compatible API or local models.

Official sources

  1. Issues
  2. MODSetter/SurfSense on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/modsetter-surfsense.svg)](https://hysenlabs.com/projects/modsetter-surfsense)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/modsetter-surfsense.svg)](https://hysenlabs.com/projects/modsetter-surfsense)

Was this useful?