semsearch
Embedding-first search engine admin CLI for indie blogs
TLDR
SYNOPSIS
semsearch command [options]
DESCRIPTION
semsearch is the Typer-based administration CLI for Semsearch, an embedding-focused indexing and search engine aimed at aggregating and promoting indie blogs. The stack pairs a FastAPI web frontend with PostgreSQL + pgvector storage. The CLI handles schema setup, site registry, background ingestion, and operational status; the HTTP app serves search (see uvicorn semsearch.web.app:app).Configuration comes from environment / .env (see .env.example): database URL, embedding API endpoint and key, model name, and embedding dimension. Chunking and embedding settings are shared between CLI and web. Changing chunking algorithm, embedding dimension, or model requires a full re-index.Typical local layout: Postgres via docker compose, Python tools via uv run semsearch …. Production runs the same binary inside the app container (docker compose exec app … semsearch …).
PARAMETERS
init-db
Create database schema for the configured embedding model and dimension. Prints the model name, vector size, and redacted DSN when ready.site add url [--sitemap auto|none|url] [--feed auto|url]
Register or update a feed-backed site. --feed is mandatory in practice (auto-discovery or explicit URL). --sitemap defaults to auto.site list
List configured sites.site remove url
Remove a site from the index configuration.daemon
Long-running process that polls feeds, fetches pages, chunks text, embeds, and writes to pgvector. Uses an advisory lock so only one daemon runs at a time.status
Report index statistics and list failed ingestion jobs.
CAVEATS
Project status is proof-of-concept toward production. Requires a modern Python (upstream pins >=3.14), a running Postgres with pgvector, and a working embedding API key before indexing. Feed URLs are effectively required when adding sites. Not a general-purpose desktop search tool—it is the operator CLI for this specific blog-search service.
HISTORY
Semsearch is a small open-source project exploring agentic RAG-style embedding pipelines for independent blogs, with admin tooling under the semsearch console script.
