NeoSearch is a 100% open source, AI-powered search engine that enhances web search with intelligent summaries, multiple perspectives, and real-time streaming results.
Built with ASP.NET Core 9.0 (.NET 9), C# 13, Dapper, SQL Server, and a Vue Petite frontend.
- 100% Private & Ad-Free: No profiling, no ads, no cookies, no IP logs
- Bias-aware Ranking: AI re-ranks results to prioritize authoritative, independent sources
- Clarity, Instantly: AI rewrites cluttered page titles and descriptions
- Perspectives: Organizes links into logical groups for quick navigation
- AI Overviews: Get quick AI summaries alongside full results
- Smarter Answers & Plugins: Instant results for common queries (weather, conversions, etc.)
- Universal Results: Transforms single-service links into multi-platform results
- Real-time Streaming: Results stream as they're generated via Server-Sent Events
- .NET 9 SDK
- SQL Server (or SQL Server Express)
- API keys for services (see Configuration section)
- Clone the repository
git clone https://github.com/bartjellema/NeoSearch.git
cd NeoSearch- Restore dependencies
dotnet restore- Configure the application
Copy appsettings.json.example to appsettings.json and add your API keys:
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=NeoSearch;Trusted_Connection=true;TrustServerCertificate=True;"
},
"APIKeys": {
"GoogleSearch": "your-google-search-api-key",
"OpenAI": "your-openai-api-key",
// Add other API keys as needed
}
}-
Run database migrations Sorry, the database schema creation script is coming soon.
-
Build and run
dotnet build
dotnet run --project Server- Access the application
Open
https://localhost:5001in your browser.
NeoSearch is built with a modular, microservices-inspired architecture:
- Server/ - Main ASP.NET Core application
- APIs/ - External service integrations (YouTube, Spotify, IMDB, etc.)
- LLM/ - LLM provider routing and response generation
- WebSearchService/ - Google search API integration
- Utils/ - Shared utilities and helpers
- ResultHandlers/ - URL pattern-based result enhancers
- Tests/ - Plugin testing with HTTP caching system
- Parallel Execution: Search tasks run in parallel for optimal performance
- Streaming: Results stream via SSE as they're generated
- Auto-registration: Components auto-register via reflection
- Plugin System: Extensible plugin architecture for specialized features
Create an account and obtain keys for:
- Google Custom Search API - Core search functionality
- OpenAI API (or alternative LLM providers) - AI features
- Optional: YouTube, Spotify, IMDB, Wikipedia, etc. for enhanced results
Run all tests:
dotnet testRun specific test suites:
dotnet test --filter "FullyQualifiedName~StockPricePluginTests"
dotnet test --filter "FullyQualifiedName~YouTubeTests"Note: The test suite uses HTTP caching - first run hits real APIs, subsequent runs use cache.
- Architecture Overview - Detailed search flow explanation
- API Integration Guide - Adding new API integrations
- Plugin Development - Creating custom plugins
- Result Handlers - Enhancing search results
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Founder: Bart Jellema
- Email: b@neosearch.org