agent.sh — минималистичный терминальный AI-агент на чистом Bash
📂 Исходный код на GitHubМинималистичный терминальный агент на чистом Bash. 10 инструментов, slash-команды, поддержка нескольких LLM-провайдеров, навыки в формате SKILL.md, инструменты как bash-функции в одну строку.
agent.sh — крошечный терминальный AI-агент, написанный на чистом Bash. Всего один скрипт (около 95% Shell и 5% Python для рендеринга Markdown), но при этом полноценный агентный харнесс: 10 инструментов, slash-команды, поддержка нескольких LLM-провайдеров, навыки в формате SKILL.md.
Главная идея — простота и компонуемость. Инструменты — это обычные bash-функции. Навыки лежат в ~/.agents/skills/ в стандартном формате SKILL.md. Всё можно менять и дописывать без сборок и зависимостей.
Создатель проекта вдохновлялся архитектурой OpenCode, перенеся её ключевые концепции в минималистичную оболочку на Bash.
Установка
Для работы нужны стандартные CLI-утилиты: uv, jq, rg (ripgrep), bat, gum, html2text. Никаких пакетных менеджеров или сборок — клонируете репозиторий, ставите алиас:
alias j='/path/to/agent.sh'
API-ключи провайдеров кладёте в .env. Выбор провайдера — через переменную окружения PROVIDER. По умолчанию используется opencode-go, но поддерживаются и другие, включая локальные модели через Ollama:
PROVIDER=ollama j
Инструменты
В арсенале агента 10 инструментов:
| Инструмент | Назначение |
|---|---|
| Glob | Поиск файлов по паттерну |
| Grep | Поиск внутри файлов |
| Read | Чтение файлов |
| Edit | Редактирование файлов |
| Write | Создание и дописывание файлов |
| Bash | Выполнение shell-команд |
| WebSearch | Поиск в интернете через Exa AI |
| WebFetch | Загрузка URL через curl + html2text |
| Skill | Вызов специализированных навыков |
| Question | Запрос ввода/выбора у пользователя |
Каждый инструмент — это отдельный файл в директории tools/, написанный как bash-функция. Добавить новый инструмент можно за минуту.
Slash-команды
| Команда | Действие |
|---|---|
/state, /s |
Открывает JSON-стейт, отправляемый в API, в редакторе — для инспекции или правки |
/continue, /c |
Отправляет текущий стейт в API напрямую, без нового промпта |
/logs, /l |
Показывает логи: выводы инструментов или reasoning-токены модели |
/model, /m |
Смена используемой модели на лету |
Режимы работы
Два полезных флага:
--raw— выключает Markdown-рендеринг, выдаёт plain-текст и завершается после одного ответа. Идеально для пайпов:cmd1 | chat --raw summarize > out.md--free— пропускает запросы подтверждения на запуск инструментов. Для случаев, когда вы доверяете агенту и не хотите отвечать на каждый prompt.
Гибкость и расширяемость
Навыки
Формат навыков совместим со стандартом, принятым в экосистеме (тот же SKILL.md, что используется в OpenCode и Superpowers). Все навыки кладутся в ~/.agents/skills/, путь можно переопределить через SKILL_PATH.
Инструменты
Инструмент — это bash-функция. Можно изучить существующие в директории tools/ как референс, или просто попросить agent.sh создать новый.
Провайдеры
Свои провайдеры добавляются скриптами в директорию providers/. Каждый провайдер — небольшой bash-скрипт, который форматирует запрос под API конкретной LLM.
Сравнение с аналогами
По сравнению с OpenCode (на который проект ссылается в Credits), agent.sh на порядок проще и легче. Нет TypeScript-рантайма, нет Node.js-зависимостей, нет WebSocket-сервера. Всё, что нужно — Bash и несколько популярных CLI-утилит.
По сравнению с aider — agent.sh не завязан на редактирование кода, это универсальный агентный харнесс. Его можно использовать и для кодинга, и для любых других задач в терминале.
Философия agent.sh: «инструменты — это bash-функции, навыки — это markdown-файлы, провайдеры — это bash-скрипты». Никакой магии, только компонуемый UNIX-way.
Для кого
agent.sh подойдёт тем, кто:
- Хочет понимать, как устроен AI-агент изнутри, а не работать с чёрным ящиком
- Ценит минимализм и контролирует каждую строчку в своём инструментарии
- Работает на машинах без Node.js или Python-рантайма (только Bash)
- Хочет собрать агента под свои задачи, а не адаптироваться под чужой фреймворк
43 звезды, 2 форка, MIT-лицензия. Маленький, но живой проект с активным развитием.
Источник: https://github.com/aziz0x00/agent.sh