harnsy

harnsy · harnsy MaxС версии 0.9.0

Агент пишет скрипт. У вас появляется кнопка.

Доступно с версии harnsy 0.9.0.

Действие — это скрипт, который агент пишет для работы, которую вы делаете руками: сборка, проверка, уборка. Вы читаете его, включаете и запускаете из дашборда одним нажатием.

Действия · kestrelbillзакреплённые; полный список — на странице «Действия»Все действия →

Предпросмотр деплояидёт 1:42

сборка образа 2/4

Дискok · 12 мин назад

41Свободно, ГБ

Резервная копия базы данных2 ч назад

упало pg_dump: connection refused

Закреплённые действия на Главной: одно идёт, и виден его шаг, одно выполнено, и видно его число, одно упало, и видна причина. Пример данных.

Агент предлагает, вы включаете.

Агенты пишут действия через API или MCP, и предложение ждёт на странице «Действия». Включить действие можете только вы, и пока вы не включили, ничего не запускается.

Запускается только та версия, что вы прочитали.

Перед включением вы видите весь скрипт, а для команды — текст файла проекта и его sha256. Для скрипта harnsy хранит копию именно этого текста и запускает копию. Для команды harnsy запоминает sha256 файла: если файл изменился, действие выключается, пока вы не включите его снова. Любое изменение скрипта — новая версия, которая ждёт вас; кнопка запускает старую, пока вы не включите новую.

Шаги, журнал и итог.

Пока действие идёт, на кнопке видно, на каком оно шаге. Когда оно закончилось, вы получаете итог одной строкой, до 8 чисел (те, которые действие объявило, сохраняются как история), файлы и ссылки, а также полный журнал с вырезанными секретами.

На Главной — в один клик.

Закрепите действие — и его плитка окажется на Главной: со статусом, шагом и последним итогом. Нажмите ▶, и оно запустится с параметрами по умолчанию. Неудачный запуск виден в колокольчике.

До чего дотянется скрипт.

Скрипт получает только те имена переменных окружения, которые перечислены в действии, и никаких ключей и токенов harnsy. Секреты вырезаются из журнала. Перед действием, которое перезапускает узел или удаляет файлы, дашборд сначала спросит вас, а агент такое действие не запускает никогда. Одновременно идёт только один запуск действия, а действие, которое автор отметил как тяжёлое, ждёт, пока у машины будет запас.

Три действия на любой машине или сколько нужно.

harnsy Max

harnsy позволяет до 3 включённых действий на машине; предлагать можно сколько угодно. Ключ harnsy Max снимает ограничение на число включённых действий и позволяет агентам запускать те, которым вы это разрешили переключателем «Агентам можно запускать».

Начните с шаблона.

github.com/harnesy/actions — публичный шаблон под лицензией MIT: готовые примеры, проверка скрипта и команда, которая запускает пример так же, как harnsy, и проверяет его результат. Ещё одна команда предлагает его вашему проекту.

ждёт васПредложение v1от kestrelbill-backend · 12 мин назад

disk · bash, 12 строк

Другие изменения

вид
– → скрипт
язык
– → bash
лимит времени
– → 5 мин
числа
– → Свободно, ГБ · Кэш Go, ГБ
sha 0684573
#!/usr/bin/env bashset -euo pipefailecho "::step measuring free space"free_gb=$(df -BG --output=avail . | tail -1 | tr -dc 0-9)echo "::step measuring the Go cache"cache_gb=$(du -s --block-size=1G "$(go env GOCACHE)" | cut -f1)if [ "$free_gb" -lt 10 ]; then  echo "::fail only ${free_gb} GB free"; exit 1ficat > "$ACTION_RESULT" <<EOF{"summary":"${free_gb} GB free","numbers":{"free_gb":${free_gb},"go_cache_gb":${cache_gb}}}EOF

harnsy хранит копию именно этого текста скрипта и запускает её; любое изменение — новая версия, она ждёт вас.

Предложение, которое ждёт вас: перед нажатием «Включить» вы читаете весь скрипт. Пример данных.

Сборка для Linux

v3 · включил человек 2 дн. назад

  • проект kestrelbill
  • скрипт: bash, 38 строк, sha 3f9a1c2
  • лимит 20 мин
Плитка на ГлавнойвключеноАгентам можно запускатьвключеноharnsy Max

Последний запуск

ok kestrelbill-backend · 6 мин назад · 3:12 · v3

  • Размер, МБ18.4
  • Сборка, с191
  • Коммит9c41e07

Итог Собрано kestrelbill-linux-amd64 из 9c41e07.

Файлы kestrelbill-linux-amd64 · 18 MB

Журнал запуска

::step fetching modules
go: downloading github.com/jackc/pgx/v5 v5.7.1
::step building
go build -o dist/kestrelbill-linux-amd64 ./cmd/server
::step done
wrote dist/kestrelbill-linux-amd64 (18.4 MB)
Страница действия: форма запуска и последний запуск с числами, файлами и журналом. Пример данных.

Файл, который запустит v2

Включить «deploy-preview» v2? Запускается файл проекта, он показан ниже. Закрепляется только он, а не то, что он вызывает (программы, файлы, сеть).

Файл: scripts/deploy-preview.sh · 402 байт

sha256: 046b33637b5be1e2305f2a962cd63a116d12131f06bc630b0e7185daad06c699

#!/usr/bin/env bash# Deploy the preview of the current commit.set -euo pipefailecho "::step building image"docker build -t kestrelbill-preview:"$(git rev-parse --short HEAD)" .echo "::step starting the preview"docker compose -f deploy/preview.yml up -decho "::step checking health"curl -fsS --retry 10 --retry-delay 2 http://127.0.0.1:8080/healthz > /dev/nullecho "preview is up on port 8080"
Включение действия, которое запускает файл проекта: вы видите файл и его полный sha256. Пример данных.

Честно об ограничениях

  • Действия работают только на Linux.
  • Скрипт работает от пользователя, под которым запущен harnsy, без терминала и может читать всё, что доступно этому пользователю. Пишите его так, чтобы второй запуск ничего не портил.
  • Включается текст скрипта или файл команды по его sha256. Это не распространяется на то, что скрипт вызывает: другие программы, файлы или сеть.
  • Запуск обрывается по лимиту времени (от 1 минуты до 2 часов, по умолчанию 30 минут).
  • В журнале помещается до 20 МиБ; после этого он сообщает об этом, а скрипт продолжает работать. Хранятся последние 50 запусков действия.
  • Для команды вы читаете первые 64 КиБ её файла; у двоичного файла текста нет.

Ваша первая команда — в одной фразе.

Установка — одна фраза вашему агенту. Чтобы harnsy сам открывал агентов, он управляет терминалом: tmux на Linux и macOS, собственный терминальный хост на Windows.

Установи harnsy по инструкции: https://harnsy.dev/llms.txt
site-3fлид · Claude Codeна связитолько смотреть
❯ Распланируй #42 с командой.

Жду разбор от analyst-7a…

от analyst-7a через harnsy❯ #42 разобрана: три критерия приёмки, включая повтор через 24 ч.

Передаю #42 разработчику site-9a.

❯