qqqa CLI
Две команды для терминала на Rust: qq отвечает на быстрый вопрос по командной строке, а qa делает один шаг с файлами и командами
- 628 ★ репозитория
- Последний коммит
Широкий доступ
Почему такой уровень
- Команда qa записывает файлы и выполняет команды оболочки по ответу модели, а флаг `-y` отключает подтверждение
- Ключи API лежат в переменных окружения или в `~/.qq/config.json`, а запросы, данные из пайпа и фрагменты истории уходят выбранному провайдеру модели
- Профили codex, claude_cli и gemini_cli запускают установленные бинарники других агентов с их авторизацией
Установка
В терминале, через SkillFoxx CLI
npx skillfoxx add cli/qqqaОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Команда qa записывает файлы и выполняет команды оболочки по ответу модели, а флаг `-y` отключает подтверждение
- Ключи API лежат в переменных окружения или в `~/.qq/config.json`, а запросы, данные из пайпа и фрагменты истории уходят выбранному провайдеру модели
- Профили codex, claude_cli и gemini_cli запускают установленные бинарники других агентов с их авторизацией
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Пакет qqqa ставит в терминал два коротких бинарника. Команда `qq` задает один вопрос модели: `qq "convert mp4 to mp3"`. Она только читает и обходится без инструментов. Ответ идет потоком с цветной разметкой для терминала. Команда `qa` умеет больше: она делает один шаг агента и вызывает один из трех инструментов, которые читают файл, пишут файл или запускают команду. Команду для запуска `qa` сначала показывает и ждет подтверждения, флаг `-y` подтверждает без вопросов для скриптов. Утилита намеренно не хранит сеансов: нет долгой беседы и скрытой памяти, каждый запуск почти не зависит от предыдущих. Контекст вы добавляете сами: данные из пайпа (`git status | qq "что делать дальше"`) и, по желанию, последние команды qq и qa через флаг `--history`. Фрагмент команды из ответа можно автоматически копировать в буфер обмена (`qq --enable-auto-copy`). Модель выбирают профилем в `~/.qq/config.json`. Из коробки есть OpenRouter (по умолчанию, модель openai/gpt-4.1-nano), OpenAI, Groq, Gemini, локальный Ollama, а также профили, которые вызывают установленные вами бинарники Codex CLI, Claude Code CLI и Gemini CLI с их собственным входом. Любой OpenAI-совместимый провайдер добавляется правкой конфига. Работает на macOS, Linux и Windows.
Для кого. Тем, кто часто работает в терминале и хочет быстро спросить, как собрать нужную команду, или поручить модели одну несложную операцию с файлами, не открывая полноценного агента.
Подходит, если
- Нужно вспомнить флаги ffmpeg, tar или find, и вы хотите получить ответ прямо в терминале за пару секунд
- Результат команды надо объяснить: `git status | qq "что делать дальше"` подает вывод на вход модели
- Нужна одна операция с проверкой: `qa "list Rust files under src sorted by size"` покажет команду и выполнит ее после подтверждения
- Модель нужно выбрать под бюджет: профили OpenRouter, Groq, OpenAI, Gemini и локальный Ollama переключаются флагом `--profile`
- Вы уже платите за Codex CLI или Claude Code и хотите вызывать их бинарники из тех же команд qq и qa
Не подходит, если
- Задача требует нескольких шагов и самостоятельной работы с проектом: qa делает один шаг за вызов, для такой работы нужен полноценный агент
- Нужна беседа с памятью: qqqa не хранит сеансов, в историю попадают лишь последние команды qq и qa
- Среда не допускает запуска команд даже с подтверждением: у qa есть инструмент для выполнения команд
- Доступ к облачным моделям из вашей сети закрыт, а локальной модели нет: без Ollama или подобного сервера запросы некуда отправить
Пример запроса к агенту
qa "найди в текущей папке файлы Rust больше 100 килобайт, покажи команду и выполни после моего подтверждения"Ограничения
Модель задает выбранный профиль, а ключ берется из переменной окружения вроде OPENROUTER_API_KEY, GROQ_API_KEY, OPENAI_API_KEY или GEMINI_API_KEY. Ключ можно записать и в `~/.qq/config.json`: файл создается с безопасными правами. Профили Codex CLI и Claude Code CLI ключа не просят: нужен установленный бинарник `codex` или `claude` и выполненный `codex login` или `claude login`. У профиля Codex ответ приходит целиком, без потока.
Профиль anthropic в конфиге есть, но пока заглушка и не работает. Таймаут запроса по умолчанию 180 секунд. На Arch Linux имя `/usr/bin/qq` может занимать другой пакет, тогда ставьте бинарники в свою папку или собирайте через `cargo install`. Работа с OpenRouter, OpenAI, Groq, Gemini и Anthropic из России при подготовке карточки не проверялась, локальный Ollama доступен без внешней сети.
Как отключить. Если ставили через Homebrew, выполните `brew uninstall qqqa`. Если распаковывали архив с релиза, удалите файлы qq и qa из папки в PATH. Конфигурация и ключи лежат в `~/.qq/config.json` (или в `$XDG_CONFIG_HOME/qq/config.json`), этот файл удаляется вручную.
Частые вопросы
Как поставить qqqa?
На macOS и Linux выполните `brew install qqqa`. На Linux и Windows можно скачать архив из GitHub Releases, распаковать и положить qq и qa в PATH. Затем запустите `qq --init`: мастер предложит провайдера и сохранит конфиг в `~/.qq/config.json`.
Чем qq отличается от qa?
Команда qq задает один вопрос, работает только на чтение и не имеет инструментов. Она может учитывать данные из пайпа и последние команды. Команда qa делает один шаг агента с тремя инструментами: read_file, write_file и execute_command, а выполнение команды подтверждается.
Нужен ли qqqa ключ API?
Для профилей OpenRouter, OpenAI, Groq и Gemini нужен: он берется из OPENROUTER_API_KEY, OPENAI_API_KEY, GROQ_API_KEY или GEMINI_API_KEY. Для профилей codex, claude_cli и gemini_cli вход выполняет сам бинарник командами `codex login` и `claude login`, а локальный Ollama принимает любую непустую строку.
Как запускать qa в скриптах без вопросов?
Флаг `-y` подтверждает выполнение инструментов автоматически, например `qa -y "count lines across *.rs"`. Он снимает защиту подтверждения, поэтому используйте его только в проверенных заданиях.
Запоминает ли qqqa прошлые запросы?
Нет, сеансов утилита не хранит. История по умолчанию выключена. Включить ее можно при `qq --init` или флагом `--history`, и тогда к запросу добавляются последние 10 команд, первое слово которых qq или qa. Другие команды терминала не передаются.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыНабор скиллов, который задает агенту процесс разработки: уточнение задачи, план, TDD, субагенты и ревью кода
Matt Pocock skills: скиллы Мэтта Покока для инженеров
Skills For Real Engineers
Небольшие компонуемые скиллы для инженерной работы с агентом: интервью по плану, TDD, диагностика багов, ревью и архитектура
Правила для Claude Code по мотивам Карпаты
Karpathy-Inspired Claude Code Guidelines
Четыре принципа в одном CLAUDE.md против типичных ошибок LLM в коде: допущения, переусложнение, лишние правки
Плагин и скилл, который заставляет агента писать минимум кода: сначала повторное использование, stdlib и нативные возможности
Набор GitHub для разработки от спецификации: CLI specify ставит в проект команды и скиллы для агента, от принципов до реализации
Набор скиллов Гэрри Тана, превращающий Claude Code в виртуальную команду: продукт, архитектура, дизайн, ревью, QA и выпуск
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
Коротко о README
README представляет qqqa как два коротких бинарника для терминала и объясняет выбор имен: их удобно набирать на QWERTY. Далее философия без сеансов, обоснование выбора OpenRouter по умолчанию, профили Codex CLI и Claude Code CLI с конфигами, список возможностей, установка через Homebrew и архивы релизов, настройка провайдеров и профилей, терминальная история. Примеры использования qq и qa завершает сценарий с извлечением звука из видео.