Magic CLI
Консольная утилита на Rust: подсказывает команды оболочки по описанию, ищет по истории терминала и решает задачи через локальную или облачную модель
- 745 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Режим `unsafe-execution` выполняет предложенную моделью команду в текущей оболочке, а команда `ask` может просить запустить другие команды
- При облачной модели описание задачи и фрагменты истории оболочки уходят к ее поставщику
- Ключ OpenAI хранится в обычном файле настроек, а не в защищенном хранилище системы
Установка
Ручная установка
brew install guywaldman/tap/magic-cliДругие способы: скрипт и PowerShell-установщик со страницы релизов, а также готовые бинарники.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Режим `unsafe-execution` выполняет предложенную моделью команду в текущей оболочке, а команда `ask` может просить запустить другие команды
- При облачной модели описание задачи и фрагменты истории оболочки уходят к ее поставщику
- Ключ OpenAI хранится в обычном файле настроек, а не в защищенном хранилище системы
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Magic CLI — консольная утилита на Rust, которая обращается к языковой модели, чтобы вы реже заглядывали в справку по командам. Команда `magic-cli suggest` принимает описание задачи, например «изменить размер картинки до 300×300 через `ffmpeg`», и предлагает готовую команду с пояснением. Полезна для утилит с длинными аргументами вроде `ffmpeg` и `kubectl`, когда вы примерно знаете, что нужно, но не помните порядок параметров. В зависимости от настройки команда копируется в буфер обмена или выполняется в текущей оболочке. Команда `magic-cli search` ищет по истории оболочки по смыслу: она строит векторные представления команд и возвращает лучшие совпадения. Команда `magic-cli ask` предназначена для задач вроде «настроить окружение, как описано в README»: модель предлагает команды и по ходу может задавать вопросы и просить выполнить команды, чтобы собрать контекст. Обе команды автор называет экспериментальными. Модель выбирается настройкой: локальная `ollama` или облачная OpenAI. Параметры лежат в файле ~/.config/magic_cli/config.json и меняются командой `magic-cli config`. Для запросов без кавычек в описании предлагается завести в ~/.bashrc или ~/.zshrc короткие функции-обертки, например `mcs` для `suggest`.
Для кого. Для разработчиков и администраторов, которые много работают в терминале и хотят получать команды по описанию на своем компьютере, в том числе с локальной моделью без передачи данных наружу.
Подходит, если
- Нужно вспомнить порядок аргументов для `ffmpeg`, `kubectl` или другой утилиты с длинным синтаксисом
- Надо найти в истории терминала команду, которую вы запускали давно, но не помните слов
- Хочется получать подсказки команд от локальной модели через `ollama` без облачного ключа
- Нужен небольшой единый бинарник, который ставится одной командой или через Homebrew
- Задача по настройке окружения описана в тексте, и модель должна предложить команды шаг за шагом
Не подходит, если
- Нужен терминальный помощник со многими провайдерами моделей, REPL-чатом и RAG: в каталоге для такого есть AIChat
- Вам нужен агент, который сам правит файлы проекта и ведет большие задачи: Magic CLI только предлагает команды и сам кода не пишет
- Вы работаете на Windows и нужна проверенная поддержка: PowerShell-установщик есть, но Windows автор как следует не проверял
- Команды нельзя исполнять без тщательной проверки человеком, а режим выполнения включен: тогда задайте копирование в буфер
Пример запроса к агенту
Запусти `magic-cli suggest` с описанием «изменить размер test_image.png до 300×300 через `ffmpeg`» и покажи предложенную команду, не выполняя ееОграничения
Проект в ранней разработке, версия 0.0.6: автор предупреждает о возможных поломках при обновлениях и просит сообщать об ошибках. Лицензия MIT.
Два режима работы команды `suggest` называются `clipboard` и `unsafe-execution`. Описание проекта называет режимом по умолчанию выполнение, а в коде значением по умолчанию стоит копирование в буфер, поэтому проверьте настройку и задайте ее явно.
Ключ OpenAI хранится в файле настроек в вашей домашней папке, перенос в защищенное хранилище системы только планируется. Векторные представления истории команд тоже лежат в этой папке, как простой JSON, и их построение у облачной модели стоит денег, особенно при длинной истории.
В списке настроек заявлены `ollama` и OpenAI, а Anthropic в описании возможностей упомянут, но в планах значится как будущая поддержка. Модели по умолчанию: `codestral` для `ollama` и `gpt-4o` для OpenAI.
Как отключить. Удалите бинарник: `brew uninstall magic-cli` при установке через Homebrew или файл magic-cli из папки, куда его положил установщик. Затем удалите ~/.config/magic_cli, там лежат настройки, ключ OpenAI и индекс истории. Строки с функциями-обертками уберите из ~/.bashrc или ~/.zshrc, если добавляли.
Частые вопросы
Как поставить Magic CLI?
Командой `brew install guywaldman/tap/magic-cli`, скриптом установки из релиза (`curl` с адресом magic-cli-installer.sh на странице релизов) или скачав бинарник под свою платформу. Для PowerShell есть magic-cli-installer.ps1.
Какие модели поддерживает Magic CLI?
В настройках можно выбрать локальную `ollama` или облачную OpenAI. По умолчанию для `ollama` указана модель `codestral`, адрес http://localhost:11434 и `nomic-embed-text` для векторных представлений, для OpenAI модель `gpt-4o` и `text-embedding-ada-002`.
Чем `suggest` отличается от `ask`?
Suggest отвечает одной командой с пояснением по короткому описанию. Ask решает задачу целиком: модель может запрашивать контекст и просить запустить команды по ходу. Ask автор называет экспериментальным.
Как искать команды по смыслу в истории оболочки?
Командой `magic-cli search` с описанием, например `magic-cli search "zellij attach"`. Она сопоставляет запрос с векторными представлениями команд из вашей истории и выдает лучшие результаты.
Где Magic CLI хранит настройки?
В файле ~/.config/magic_cli/config.json. Менять параметры можно командой `magic-cli config` с подкомандами `set`, `get`, `list`, `reset` и `path`.
Зачем нужны функции `mcs`, `mcf` и `mca`?
Это обертки, которые автор советует добавить в ~/.bashrc или ~/.zshrc: они вызывают `suggest`, `search` и `ask` и позволяют писать запрос без кавычек.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыCLI на Rust, который собирает кодовую базу в один промпт с деревом файлов, шаблонами и оценкой токенов
Rust-бинарник для агентов и терминала: через tree-sitter находит определение символа, его вызовы и зависимости файла
CLI на Rust для работы с более чем 20 провайдерами LLM: командный режим, REPL-чат, RAG и вызов инструментов из терминала
Две команды для терминала на Rust: qq отвечает на быстрый вопрос по командной строке, а qa делает один шаг с файлами и командами
MCP сервер структурного поиска по коду для агентов: находит нужный файл по смыслу запроса и работает локально
MCP-сервер и CLI для исследования кода: поиск и разбор по вашему проекту и по всему GitHub с экономией токенов
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
Коротко о README
Описание начинается с предупреждения о ранней стадии и ссылки на пост автора. Затем идут возможности, четыре способа установки (скрипт, Homebrew, PowerShell, бинарники), совет по оберткам для оболочки и по разделам три команды с примерами и снимками экрана. Отдельно разобраны выбор модели, список настроек с значениями по умолчанию, дорожная карта и раздел о безопасности, где названы хранимые данные: ключ OpenAI и векторные представления истории. В репозитории есть исходный код на Rust, тесты и руководство для участников.