Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Fast, stateless LLM for your shell: qq answers; qa runs commands
| Date | Stars |
|---|---|
| 2026-07-31 | 625 |
| 2026-08-02 | 625 |
| 2026-08-06 | 625 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# qqqa
Fast, stateless LLM-powered assistant for your shell: qq answers; qa runs commands
## What is qqqa
qqqa is a two-in-one, stateless CLI tool that brings LLM assistance to the command line without ceremony.
The two binaries are:
- `qq` - ask a single question, e.g. "qq how can I recursively list all files in this directory" (qq stands for "quick question")
- `qa` - a single step agent that can optionally use tools to finish a task: read a file, write a file, or execute a command with confirmation (qa stands for "quick agent")
qqqa runs on macOS, Linux, and Windows.
By default the repo includes profiles for OpenRouter (default), OpenAI, Groq, Gemini (API + CLI), a local Ollama runtime, the Codex CLI (piggyback on ChatGPT), and the Claude Code CLI (reuse your Claude subscription). An Anthropic profile stub exists in the config for future work but is not wired up yet.
https://github.com/user-attachments/assets/91e888ad-0279-4d84-924b-ba96c0fe43a0
## Names and typing speed
qq means quick question. qa means quick agent. Both are easy to type rapidly on QWERTY keyboards with minimal finger movement. That makes interacting with LLMs faster and more natural during real work.
## Philosophy
qqqa is deliberately stateless. There is no long running session and no hidden conversation memory stored by the tool. Every run is mostly independent and reproducible. For maintaining a lowkey continuity you can use `"include_history": true` in the `config.json` (or choose to use history during the `qq --init` process).
Why stateless is great:
- Simple and focused - Unix philosophy applied to LLM tools.
- Shell friendly - compose with pipes and files instead of interactive chats.
- Safe by default - qq is read-only and has access to no tools. qa is built with security in mind and requires confirmation before running tools.
The tools may include transient context you choose to provide:
- `qq` can include the last few terminal commands as hints and piped stdin if present.
- `qa` can read files or run a specific command, but only once per invocation and with safety checks.
## Why I recommend using OpenRouter by default
OpenRouter mirrors the OpenAI Chat Completions API, adds generous community-hosted models, and keeps `openai/gpt-4.1-nano` fast and inexpensive. qqqa talks to `https://openrouter.ai/api/v1` out of the box and reads the API key from `OPENROUTER_API_KEY`, so your first run works as soon as you drop in a key.
If you need even more throughput, the bundled `groq` profile that targets `openai/gpt-oss-20b` and `openai/gpt-oss-120b` remains available, and you can still add any OpenAI-compatible provider by editing `~/.qq/config.json` or creating a new profile.
### Codex CLI profile (bring-your-own ChatGPT subscription)
Already paying for ChatGPT? Select the `codex` profile (during `qq --init`, via `qq --profile codex`, or by editing `~/.qq/config.json`) and qqqa will shell out to the Codex CLI instead of hitting an HTTP endpoint. That lets you reuse an existing ChatGPT subscription with practically zero marginal cost.
What to know:
- Install the Codex CLI via the ChatGPT desktop app (Settings → Labs → Codex) or `pip install codex-cli`, then ensure `codex` is on your `PATH`.
- Streaming is unavailable; even without `--no-stream`, qqqa buffers the Codex response and prints it once.
- `qa` still expects JSON tool calls. When you need `read_file`, `write_file`, or `execute_command`, respond with `{ "tool": string, "arguments": object }` the same way you would on OpenRouter.
- If the binary is missing or exits with an error, qqqa surfaces the stderr/stdout so you can fix your environment quickly.
Example `~/.qq/config.json` fragment that pins Codex as the default profile:
```json
{
"default_profile": "codex",
"profiles": {
"codex": {
"model_provider": "codex",
"model": "gpt-5",
"reasoning_effort": "low"
}
}
}
```
### Claude Code CLI profile (bring-your-own Claude desktop subscription)Excerpt of 20,822 characters
Read on GitHub104
Rui Chen · @justworkshr · United States
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:845ca2ae051073a5, topic:llm