Back to browse
GitHub Repository

A terminal-native, agent-first web search CLI

11 starsGo

Qry – CLI web search that always outputs JSON, with swappable back ends

by justEstif·Mar 8, 2026·2 points·0 comments

AI Analysis

●●●BangerShip ItBig Brain

Adapter protocol routes queries to DuckDuckGo, Brave, or Exa—JSON piping done right.

Strengths
  • Stdin/stdout adapter pattern is genuinely composable; easy to add custom search sources
  • Multiple free adapters (DDG scraping, Brave scraping) with no API key friction
  • Architecture cleanly separates routing from search engine logic
Weaknesses
  • Depends on web scraping which breaks when sites change; fragile long-term
  • Early project (0 stars, minimal docs); no proof it handles real-world query volume
Target Audience

Terminal users, LLM engineers, automation enthusiasts needing scriptable search

Similar To

ddgr (interactive DDG CLI) · googler (now unmaintained) · SerpAPI (paid web search API)

Post Description

I wanted web search I could pipe. Every tool I found either had an interactive UI (ddgr, googler), required a single paid API, or returned HTML. I wanted something that composes: pipe to jq, feed to an agent, use in scripts, no friction.

So I built qry. It's a hub binary that routes queries to adapter binaries via stdin/stdout JSON. The hub knows nothing about search engines. Adapters know nothing about routing. You swap adapters in a config file.

Four adapters today, three require no API key:

- DDG Lite scraping

- Brave Search HTML scraping

- Exa AI via the public MCP endpoint

- Brave Search API (requires key)

``` $ qry "numpy latest version"

[{"title":"...","url":"...","snippet":"..."}]

```

Install:

```

mise use -g go:github.com/justestif/qry@latest

mise use -g go:github.com/justestif/qry/adapters/qry-adapter-ddg-scrape@latest

mise reshim ```

The adapter protocol is plain stdin/stdout JSON so adapters can be written in any language. Docs on building one are in the repo.

https://github.com/justEstif/qry

Similar Projects

Developer Tools●●Solid

VibeDB – store anything with zero config

Zero-config single-file persistence plus two query styles (Mongo-like dicts or a Pythonic Q builder) makes everyday prototyping painless. The built-in Studio UI and auto-index hints are thoughtful extras for inspecting data and nudging performance, though this competes with established tiny DBs and SQLite/JSON patterns — great for side projects, but check concurrency and durability needs first.

Niche GemShip It
StevenSLXie
204mo ago