agent.sh — минималистичный терминальный AI-агент на чистом Bash

· 1 мин чтения
ai-agents cli bash skills terminal
📂 Исходный код на GitHub

Минималистичный терминальный агент на чистом Bash. 10 инструментов, slash-команды, поддержка нескольких LLM-провайдеров, навыки в формате SKILL.md, инструменты как bash-функции в одну строку.

agent.sh — минималистичный терминальный AI-агент на чистом 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