Skip to content

Repository files navigation

@autopasha/cli

Командная строка АвтоПаши. Из терминала или из своего агента видно, чем занят AI-сотрудник, ему можно поставить задачу, ответить на его вопрос и дождаться отчёта.

npm CI node license без зависимостей

autopasha status

то же самое текстом
$ autopasha status
Паша — работает с 09:29 · разбирает отклики на hh
Ждут вас: 1 · решится само: 2 · всего: 3

Вопросы:
  8f2ac1b0-2f5e-4a11-9a6b-6c0f5a1d2e34
    Покупать прокси за 300 ₽/мес или пробуем без него?
    молчание значит «возьму бесплатный вариант», до 11:09

Ответить: autopasha answer <id> да --comment "…"

Последнее:
  09:59  отчёт  12 откликов разобраны, 3 ответа отправлены
  09:15  задача  Отклики на hh за неделю
  08:31  выкат  Карточка услуги обновлена

Зачем это

У команды работает AI-сотрудник в сервисе АвтоПаша. Он живёт на своей машине: своя очередь задач, свой кабинет, свои разговоры с людьми. Рядом работают ваши собственные агенты: Claude Code у разработчика, бот в телеграме, что-нибудь домашнее на сервере. Друг о друге они не знают, и человек пересказывает одно другому руками.

Эта команда убирает пересказ. Ваш агент сам смотрит, чем занят сотрудник, сам ставит ему задачу и сам отвечает на его вопрос, когда ответ у него уже есть.

Быстрый старт

Три шага, минута с небольшим. Нужен Node.js 20 или новее, зависимостей у пакета нет.

1. Поставить. Разово, без установки, или насовсем:

npx @autopasha/cli status      # разово
npm i -g @autopasha/cli        # насовсем

2. Принять ключ. Он заводится в кабинете, раздел «API», и выглядит как ap_live_ и 32 знака:

autopasha login --token ap_live_...

Ключ проверяется живым запросом и ложится в ~/.autopasha/config.json с правами 0600. В CI и в контейнере вместо файла берите переменную:

export AUTOPASHA_TOKEN=ap_live_...

3. Посмотреть, чем занят сотрудник:

autopasha status

Дальше по вкусу: поставить задачу (ask), ответить на вопрос (answer), дождаться отчёта (watch). Своему агенту отдать умение одной строкой:

npx @autopasha/cli skill > .claude/skills/autopasha/SKILL.md

Команды

Команда Что делает
autopasha login [--token ...] принять ключ и запомнить его
autopasha status чем занят сотрудник, что стоит, какие вопросы открыты
autopasha feed [--since 2h] что произошло за срок
autopasha ask "текст" [--why "..."] поставить задачу
autopasha answer <id> да|нет [--comment "..."] [--option "вариант"] ответить на вопрос
autopasha say "текст" реплика в разговор, без задачи
autopasha watch [--since 1h] [--interval 20] ждать событий и печатать построчно
autopasha skill напечатать умение для своего агента

Общие флаги: --json, --profile <имя>, --api <адрес>, --version, --help.

Примеры

Поставить задачу и дождаться, чем кончилось:

autopasha ask и watch

autopasha ask "посмотри отклики на hh и ответь тем, кто по делу" \
  --why "владелец уехал до среды"
autopasha watch

--why не украшение. Сотрудник читает его, когда задача расходится с реальностью, и по нему решает, что делать дальше.

Ответить на вопрос, который его держит:

autopasha answer 8f2ac1b0-2f5e-4a11-9a6b-6c0f5a1d2e34 да --comment "бери бесплатный вариант"

Ответ будит сотрудника сразу, как кнопка в кабинете. Комментарий важнее самого решения: по нему видно границы, а не только факт согласия.

Бывает, что сотрудник предложил к вопросу готовые варианты: в status они видны строками под вопросом. Тогда вариант надо назвать, иначе ответ не примут:

autopasha answer 8f2ac1b0-2f5e-4a11-9a6b-6c0f5a1d2e34 да --option "на общий ящик"

А если вопрос ждёт значения (кода из СМС, суммы, ссылки), оно едет в --comment: под вопросом так и написано, что именно заполнить.

Разобрать ответ кодом:

autopasha status --json | jq '.questions[] | {id, question, options}'

Два ключа на одной машине, если сотрудников у вас двое:

autopasha login --profile второй --token ap_live_...
autopasha status --profile второй

Умение для своего агента

mkdir -p .claude/skills/autopasha
npx @autopasha/cli skill > .claude/skills/autopasha/SKILL.md

Сто строк markdown: когда звать, семь команд с примерами, три типовые ошибки и что через это сделать нельзя. Дальше агент решает сам, когда сходить к сотруднику. Файл лежит в пакете, посмотреть можно и здесь: skill/SKILL.md.

Умение написано для Claude Code, но в нём нет ничего специфичного: любой агент, который умеет читать markdown и запускать команды, разберётся.

Настройки

Переменная Зачем
AUTOPASHA_TOKEN ключ; старше файла конфигурации, путь для CI
AUTOPASHA_API другой адрес API, по умолчанию https://autopasha.ru/api/v1
AUTOPASHA_PROFILE какой профиль брать из конфигурации
AUTOPASHA_CONFIG другой путь до файла конфигурации
AUTOPASHA_HOME другой каталог вместо ~/.autopasha

Код возврата честный: 0 - сделано, 1 - нет. Скрипт, который зовёт ask в цепочке, узнаёт о провале из кода, а не вычитывает его из текста.

Повторы: 5xx и обрыв сети команда повторяет сама, с ожиданием по степеням двойки. Запросы, которые что-то меняют, несут ключ идемпотентности, один на все попытки, поэтому моргнувшая сеть не оставит сотруднику дубль задачи.

Чего через это сделать нельзя

Запустить или остановить сотрудника, выкатить что-либо, достать доступы клиента. Управление машиной живёт в кабинете, у человека. Утёкший ключ не должен давать чужому агенту пульт.

Прав у ключа три, они выдаются в кабинете по отдельности: read - смотреть, tasks - ставить задачи и писать реплики, answers - отвечать на вопросы.

Разработка

git clone https://github.com/AutoPasha/cli.git
cd cli
npm test

Тесты штатные, node --test, сеть в них не нужна: клиент API получает свой fetch подставкой. Ни одной зависимости, ни в пакете, ни в разработке, и это осознанно: командная строка, которая тянет за собой полсотни чужих пакетов, плохо ставится в CI и тяжело проверяется на доверие.

Ссылки

Лицензия

MIT, см. LICENSE.

About

Командная строка АвтоПаши: чем занят AI-сотрудник, поставить задачу, ответить на вопрос

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages