Skip to main content
beta MITResearch and AI Development Tools

SearchMuse

Artificial intelligence-powered web research

Status
beta
License
MIT
Category
Research and AI Development Tools
Updated

Description

Concise search engine understands semantic research goals and refines queries iteratively with DuckDuckGo until complete sources are found. Supports Ollama (local, default), Claude, OpenAI, and Gemini. Combines httpx (async, lightweight sites) and Playwright (JS-heavy) for scraping, with content extraction via parsing + readability-lxml. Uses hexagonal architecture (CLI → Application → Ports → Domain → Adapters), 311 tests, strict type-checking with mypy, and Ruff code style. CLI Typer + Rich output, ASCII banners with provider status. Licensed under MIT.

Key Features

  • Refined iterative search

    The AI analyzes initial results and reformulates the query until all sources are complete.

  • Multi-Provider Large Language Model

    Concise mode (local, privacy-first), Claude, OpenAI, Gemini - switch with flag -p

  • Markdown Quotes

    Each finding includes URL, publication date and trackable attribution

  • Multi-strategy scraping

    HTTPX for read requests + Playwright for heavy JavaScript sites

  • Content extraction

    Manual article parsing with readability and BeautifulSoup for accurate results

  • Hexagonal Architecture

    Pure Python domain, Swappable ports and adapters, 311 tests with Pytest and TDD

  • Text Editor with Syntax Highlighting and Code Completion

    Banner with two columns of provider status, ASCII mascot, and JSON output for pipeline

  • Privacy-focused

    DuckDuckGo + Ollama on-prem, API keys in system keyring, zero telemetry.

Angular + Spring Boot on top of a PostgreSQL database hosted in the cloud via AWS or Google Cloud Platform

  • Python 3.11+
  • Typer
  • Rich
  • httpx
  • Playwright
  • trafilatura
  • readability-lxml
  • beautifulsoup4
  • DuckDuckGo Search
  • Ollama
  • Anthropic Claude
  • OpenAI
  • Google Gemini
  • PyYAML
  • SQLite + aiosqlite
  • pytest
  • ruff
  • mypy

Use cases

  • In-depth technical or academic research with verifiable citations and markdown export capabilities
  • Asynchronous pipeline for knowledge gathering with output in consumable JSON format for downstream tools.
  • Content extraction from heavily JavaScript sites using Playwright headless
  • Privacy-first search (DuckDuckGo + Local Search) for analysts, journalists, researchers.
  • Multi-LLM Comparison on Same Research Goal (Ollama vs Claude vs OpenAI vs Gemini)

Quick start

Start the project locally with four commands, requires Docker and GitHub Desktop is not required but a git client like SourceTree or Visual Studio Code's built-in one will do just fine though.

git clone https://github.com/fedcal/SearchMuse.git
cd SearchMuse
pip install -e ".[all-providers]"
searchmuse search "your research query"

Complete Documentation

Explore the sections of documentation on GitHub Pages.

Contribute to the project

SearchMuse is open source. Open an issue, propose a pull request or leave a star on GitHub: every contribution, no matter how small, is welcome.

  • ⭐ Leave a star if it's useful
  • 🐛 Report bugs or suggest features via issue
  • 🔧 Send a pull request with fixes or improvements
  • 📣 Share the project if you find it interesting