Connect any LLM to your internal knowledge sources and chat with it in real time alongside your team. OSS alternative to NotebookLM, Perplexity, and Glean.
SurfSense is a highly customizable AI research agent, connected to external sources such as Search Engines (SearxNG, Tavily, LinkUp), Google Drive, Slack, Linear, Jira, ClickUp, Confluence, BookStack, Gmail, Notion, YouTube, GitHub, Discord, Airtable, Google Calendar, Luma, Circleback, Elasticsearch and more to come.
Open source alternative to NotebookLM, Perplexity, and Glean. Connect any LLM to your internal knowledge sources and collaborate with your team in real time.
📁 Multiple File Format Uploading Support
Save content from your own personal files (Documents, images, videos and supports 50+ file extensions) to your own personal knowledge base .
🔍 Powerful Search
Quickly research or find anything in your saved content .
💬 Chat with your Saved Content
Interact in Natural Language and get cited answers.
📄 Cited Answers
Get Cited answers just like Perplexity.
🔔 Privacy & Local LLM Support
Works Flawlessly with Ollama local LLMs.
🏠 Self Hostable
Open source and easy to deploy locally.
👥 Team Collaboration with RBAC
Role-Based Access Control for Search Spaces
Invite team members with customizable roles (Owner, Admin, Editor, Viewer)
Granular permissions for documents, chats, connectors, and settings
Share knowledge bases securely within your organization
🎙️ Podcasts
Blazingly fast podcast generation agent. (Creates a 3-minute podcast in under 20 seconds.)
Convert your chat conversations into engaging audio content
Support for local TTS providers (Kokoro TTS)
Support for multiple TTS providers (OpenAI, Azure, Google Vertex AI)
🤖 Deep Agent Architecture
Built-in Agent Tools
Tool
Description
search_knowledge_base
Search your personal knowledge base with semantic + full-text hybrid search, date filtering, and connector-specific queries
generate_podcast
Generate audio podcasts from chat conversations or knowledge base content
link_preview
Fetch rich Open Graph metadata for URLs to display preview cards
display_image
Display images in chat with metadata and source attribution
scrape_webpage
Extract full content from webpages for analysis and summarization (supports Firecrawl or local Chromium/Trafilatura)
Extensible Tools Registry
Contributors can easily add new tools via the registry pattern:
Create a tool factory function in surfsense_backend/app/agents/new_chat/tools/
Register it in the BUILTIN_TOOLS list in registry.py
Configurable System Prompts
Custom system instructions via LLM configuration
Toggle citations on/off per configuration
Supports 100+ LLMs via LiteLLM integration
📊 Advanced RAG Techniques
Supports 100+ LLM’s
Supports 6000+ Embedding Models.
Supports all major Rerankers (Pinecone, Cohere, Flashrank etc)
Uses Hierarchical Indices (2 tiered RAG setup).
Utilizes Hybrid Search (Semantic + Full Text Search combined with Reciprocal Rank Fusion).
ℹ️ External Sources
Search Engines (Tavily, LinkUp)
SearxNG (self-hosted instances)
Google Drive
Slack
Linear
Jira
ClickUp
Confluence
BookStack
Notion
Gmail
Youtube Videos
GitHub
Discord
Airtable
Google Calendar
Luma
Circleback
Elasticsearch
and more to come…..
📄 Supported File Extensions
ETL Service
Formats
Notes
LlamaCloud
50+ formats
Documents, presentations, spreadsheets, images
Unstructured
34+ formats
Core formats + email support
Docling
Core formats
Local processing, no API key required
Audio/Video (via STT Service): .mp3, .wav, .mp4, .webm, etc.
🔖 Cross Browser Extension
The SurfSense extension can be used to save any webpage you like.
Its main usecase is to save any webpages protected beyond authentication.
FEATURE REQUESTS AND FUTURE
SurfSense is actively being developed. While it’s not yet production-ready, you can help us speed up the process.
English | 简体中文
SurfSense
Connect any LLM to your internal knowledge sources and chat with it in real time alongside your team. OSS alternative to NotebookLM, Perplexity, and Glean.
SurfSense is a highly customizable AI research agent, connected to external sources such as Search Engines (SearxNG, Tavily, LinkUp), Google Drive, Slack, Linear, Jira, ClickUp, Confluence, BookStack, Gmail, Notion, YouTube, GitHub, Discord, Airtable, Google Calendar, Luma, Circleback, Elasticsearch and more to come.
Video
https://github.com/user-attachments/assets/42a29ea1-d4d8-4213-9c69-972b5b806d58
Podcast Sample
https://github.com/user-attachments/assets/a0a16566-6967-4374-ac51-9b3e07fbecd7
Key Features
💡 Idea:
📁 Multiple File Format Uploading Support
🔍 Powerful Search
💬 Chat with your Saved Content
📄 Cited Answers
🔔 Privacy & Local LLM Support
🏠 Self Hostable
👥 Team Collaboration with RBAC
🎙️ Podcasts
🤖 Deep Agent Architecture
Built-in Agent Tools
Extensible Tools Registry
Contributors can easily add new tools via the registry pattern:
surfsense_backend/app/agents/new_chat/tools/BUILTIN_TOOLSlist inregistry.pyConfigurable System Prompts
📊 Advanced RAG Techniques
ℹ️ External Sources
📄 Supported File Extensions
Audio/Video (via STT Service):
.mp3,.wav,.mp4,.webm, etc.🔖 Cross Browser Extension
FEATURE REQUESTS AND FUTURE
SurfSense is actively being developed. While it’s not yet production-ready, you can help us speed up the process.
Join the SurfSense Discord and help shape the future of SurfSense!
🚀 Roadmap
Stay up to date with our development progress and upcoming features!
Check out our public roadmap and contribute your ideas or feedback:
📋 Roadmap Discussion: SurfSense 2025-2026 Roadmap: Deep Agents, Real-Time Collaboration & MCP Servers
📊 Kanban Board: SurfSense Project Board
How to get started?
Quick Start with Docker 🐳
Linux/macOS:
Windows (PowerShell):
With Custom Configuration:
You can pass any environment variable using
-eflags:After starting, access SurfSense at:
Useful Commands:
Installation Options
SurfSense provides multiple options to get started:
SurfSense Cloud - The easiest way to try SurfSense without any setup.
Quick Start Docker (Above) - Single command to get SurfSense running locally.
Docker Compose (Production) - Full stack deployment with separate services.
.envfileManual Installation - For users who prefer more control over their setup or need to customize their deployment.
Docker and manual installation guides include detailed OS-specific instructions for Windows, macOS, and Linux.
Before self-hosting installation, make sure to complete the prerequisite setup steps including:
Tech Stack
BackEnd
FastAPI: Modern, fast web framework for building APIs with Python
PostgreSQL with pgvector: Database with vector search capabilities for similarity searches
SQLAlchemy: SQL toolkit and ORM (Object-Relational Mapping) for database interactions
Alembic: A database migrations tool for SQLAlchemy.
FastAPI Users: Authentication and user management with JWT and OAuth support
Deep Agents: Custom agent framework built on LangGraph for reasoning and acting AI agents with configurable tools
LangGraph: Framework for developing stateful AI agents with conversation persistence
LangChain: Framework for developing AI-powered applications.
LiteLLM: Universal LLM integration supporting 100+ models (OpenAI, Anthropic, Ollama, etc.)
Rerankers: Advanced result ranking for improved search relevance
Hybrid Search: Combines vector similarity and full-text search for optimal results using Reciprocal Rank Fusion (RRF)
Vector Embeddings: Document and text embeddings for semantic search
pgvector: PostgreSQL extension for efficient vector similarity operations
Redis: In-memory data structure store used as message broker and result backend for Celery
Celery: Distributed task queue for handling asynchronous background jobs (document processing, podcast generation, etc.)
Flower: Real-time monitoring and administration tool for Celery task queues
Chonkie: Advanced document chunking and embedding library
FrontEnd
Next.js: React framework featuring App Router, server components, automatic code-splitting, and optimized rendering.
React: JavaScript library for building user interfaces.
TypeScript: Static type-checking for JavaScript, enhancing code quality and developer experience.
Vercel AI SDK Kit UI Stream Protocol: To create scalable chat UI.
Tailwind CSS: Utility-first CSS framework for building custom UI designs.
Shadcn: Headless components library.
Motion (Framer Motion): Animation library for React.
DevOps
Docker: Container platform for consistent deployment across environments
Docker Compose: Tool for defining and running multi-container Docker applications
pgAdmin: Web-based PostgreSQL administration tool included in Docker setup
Extension
Manifest v3 on Plasmo
Contribute
Contributions are very welcome! A contribution can be as small as a ⭐ or even finding and creating issues. Fine-tuning the Backend is always desired.
Adding New Agent Tools
Want to add a new tool to the SurfSense agent? It’s easy:
surfsense_backend/app/agents/new_chat/tools/my_tool.pyregistry.py:For detailed contribution guidelines, please see our CONTRIBUTING.md file.
Star History