Find a file
Anish Sarkar 93985c15f2
Some checks are pending
Desktop Tests / Changes (push) Waiting to run
Desktop Tests / Backend (macos-latest) (push) Blocked by required conditions
Desktop Tests / Backend (ubuntu-latest) (push) Blocked by required conditions
Desktop Tests / Backend (windows-latest) (push) Blocked by required conditions
Desktop Tests / Frontend (push) Blocked by required conditions
Desktop Tests / Electron (macos-latest) (push) Blocked by required conditions
Desktop Tests / Electron (ubuntu-latest) (push) Blocked by required conditions
Desktop Tests / Electron (windows-latest) (push) Blocked by required conditions
Desktop Tests / Desktop Gate (push) Blocked by required conditions
Merge pull request #2342 from AnishSarkar22/refactor/website-feature-folders
refactor(www): colocate route code and rename website/ to www/
2026-10-25 03:57:48 +05:30
.agents/skills refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
.claude chore: add AGENTS.md and a small set of vendor skills 2026-09-18 08:51:48 +02:00
.cursor/rules chore: move skills from .cursor/skills to .agents/skills for cross-agent compatibility, update Claude Code symlink 2026-09-15 16:03:19 +05:30
.github refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
.vscode refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
backend refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
docker/keygen chore(legacy-split): delete the self-hosted stack from dev 2026-10-24 22:25:41 +05:30
docs docs: point the packaging and legacy-split docs at the www paths 2026-10-25 03:44:57 +05:30
plans refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
scripts chore(legacy-split): delete the self-hosted stack from dev 2026-10-24 22:25:41 +05:30
surfsense_local refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
www fix(www): make tsc pass and run it before each commit 2026-10-25 03:53:19 +05:30
.coderabbit.yaml ci(coderabbit): review pull requests against dev automatically 2026-09-30 15:21:29 -07:00
.gitattributes fix: backend container fails with missing entrypoint when built locally 2025-12-06 21:31:32 -08:00
.gitignore feat(website): trim the site to what it serves, and point the repo at website/ 2026-10-24 23:12:14 +05:30
.pre-commit-config.yaml fix(www): make tsc pass and run it before each commit 2026-10-25 03:53:19 +05:30
.secrets.baseline refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
AGENTS.md refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
CLAUDE.md chore: add AGENTS.md and a small set of vendor skills 2026-09-18 08:51:48 +02:00
CODE_OF_CONDUCT.md docs: make first contributions match one tree, not the old hosted stack 2026-09-18 08:52:14 +02:00
CONTRIBUTING.md refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
LICENSE chore: plain Apache LICENSE, and the site and README say the plugins have shipped 2026-10-15 14:49:37 -07:00
README.ar.md refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
README.de.md refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
README.es.md refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
README.fr.md refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
README.hi.md refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
README.ja.md refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
README.ko.md refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
README.md refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
README.pt-BR.md refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
README.ru.md refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
README.zh-CN.md refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
SECURITY.md refactor(www): rename website/ to www/ 2026-10-25 03:37:33 +05:30
skills-lock.json chore: add AGENTS.md and a small set of vendor skills 2026-09-18 08:51:48 +02:00
SurfSense.code-workspace refactor(backend): move plugins/ into backend/, run by server/ 2026-10-23 17:49:08 +02:00

Stars Latest release License Discord

SurfSense, the air-gapped open-source NotebookLM alternative

SurfSense

The air-gapped, open-source NotebookLM alternative.
The AI agent that researches, transforms and edits your documents, on your machine.

Download · Formats · Quick start · Compare · Plugins · Pricing · Discord

MODSetter/SurfSense | Trendshift

English | العربية | Deutsch | Español | Français | हिन्दी | 日本語 | 한국어 | Português | Русский | 简体中文

https://github.com/user-attachments/assets/88326b9d-e763-46db-9635-75f9df9e8682

SurfSense is a free, open-source desktop app for documents you can't upload. A privacy-focused, NotebookLM-style AI agent that researches, transforms and edits your documents, on your machine. The index stays on your disk, you pick the model, local or remote, and there is no account.

Platform Download
Windows x64 SurfSense-Setup.exe
macOS Apple Silicon SurfSense-arm64.dmg
Linux x64 AppImage · deb

Note

Used the hosted web app? Export your workspaces before 18 October 2026 and import them here. See the sunset page.

Quick start

  1. Install SurfSense and do the initial onboarding setup.
  2. Drop your files or folders in your sources.
  3. Ask the agent to search or extract or edit your files.

What it does with each format

Format Research (cited answers) Create Edit (as a copy) Transform
PDF ✓ scanned pages too³ ✓ Fill and flatten forms; stamp watermarks, page numbers, headers, footers Merge, split, extract, rotate, reorder pages
Word .docx ✓ ✓ or from your own .docx as a template ✓ body text, as tracked changes and comments To PDF¹
Excel .xlsx ✓ the agent also reads formulas ✓ with formulas and native charts ✓ cell values and formulas Analyse with pandas, chart the results
PowerPoint .pptx ✓ ✓ or from your own .pptx as a template Replace text on slides and notes; delete or duplicate slides To PDF¹
CSV ✓ — — Analyse with pandas, chart the results
Images PNG, JPEG, TIFF, BMP, WebP ✓ text read by OCR³ Images and infographics² — Place in new documents
Markdown, plain text ✓ ✓ Markdown — —
HTML ✓ ✓ web page — —
Recordings WAV, MP3, FLAC, Ogg Vorbis ✓ transcribed on your machine — — —
Podcast (audio) — ✓ with a transcript, voiced on your machine by default — —
Mind maps, flashcards, quizzes — ✓ in the app — —

¹ With Office support (LibreOffice), turned on in Settings; it is never in the installer. ² Needs an image model, local or remote; none is chosen by default. ³ OCR reads Latin, Chinese and Japanese script.

Edits, conversions and PDF tools always make a new file; your original is never changed. PDF, Word and Excel do the most today, and support for the other formats keeps improving.

Plugins

Connect them in Settings › Plugins.

By SurfSense. They read public pages without your own accounts and need a SurfSense license: download the app and enter your email there for a free 30-day one.

Plugin What it does
Google Search Search Google and read its results, ads and related questions
Web Crawl Read a web page, or crawl a whole site into clean text
YouTube Read YouTube videos, channels and their comments
TikTok Read TikTok videos and their comments, search users, and see what is trending
Google Maps Find places on Google Maps and read their reviews
Amazon Read Amazon products and search results
Walmart Read Walmart products, search results and reviews
Indeed Read job listings on Indeed

Third-party. MCP servers from the plugin registry, such as DeepWiki and Notion, or any you add by URL. No license needed; they stay off until you allow them.

How it compares

NotebookLM (now Gemini Notebook) SurfSense
Runs offline / air-gapped No Yes
Your documents leave your machine Yes No, unless you pick a remote model
Can edit your files No Yes
Open source No Apache-2.0
Models Gemini only Any OpenAI-compatible API, or a local one

Community

SurfSense contributors

License

Apache-2.0. See LICENSE.