Я сделал себе задачник, из которого агент сам берёт задачи с пометкой «Агенту», делает их на моём компьютере и пишет отчёт прямо в задачу. Рассказываю, как это устроено: MCP-сервер, вход через браузер или по токену, запуск по расписанию и что агенту можно, а что нет.


Зачем это нужно

Агенты хорошо справляются с мелочами: собрать справку, набросать письмо, свериться с документацией. Но что именно вам нужно сделать, они не знают. Каждый раз это приходится писать в чат.

У меня уже был список дел, и я превратил его в очередь. Ставлю у задачи галку «Агенту», агент её находит, делает и пишет результат в заметки задачи. Закрываю задачу я сам.

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

Общая картина: я, shar8.app и агенты
Общая картина: я, shar8.app и агенты

Какие задачи это решает

Главный сценарий: поручить и проверить. Я записываю задачу в задачник, как обычно, с телефона или с компьютера, и ставлю пометку «Агенту». Дальше ничего делать не нужно: если компьютер включён, в течение минуты агент её берёт, делает и пишет результат в заметки. Я открываю задачу, читаю отчёт и решаю: закрыть, поправить или ответить на вопрос агента, если он вернул «Нужно уточнение».

Что так удобно поручать:

  • черновики: письмо, ответ на сообщение, план встречи, текст объявления;

  • справки и сравнения: «сравни три библиотеки для логирования», «что изменилось в новой версии библиотеки» (с поиском в интернете, если его включить);

  • разбор и выжимки: вставил в задачу длинный текст, получил короткое резюме и список дел.

Задачник в диалоге с агентом. Подключённый Claude Code, Codex или OpenCode работает с тем же списком. Можно спросить «что у меня на сегодня», попросить перенести задачу на завтра или прямо во время работы над кодом сказать «закинь в задачи: обновить зависимости в пятницу». Задача появится в списке на телефоне.

Один список для меня и для агентов. Не нужно вести отдельные TODO в чате с каждым агентом: всё, что я поручил или записал, лежит в одном месте, и видно, что в работе, что ждёт проверки, а что сделано.

Почему MCP

Можно было написать отдельный плагин под каждого клиента. Я выбрал MCP по HTTP: один адрес, и любой клиент, который умеет удалённые MCP-серверы, подключается без кода с моей стороны. Claude Code, Codex CLI и OpenCode подключаются к одному адресу, у каждого своя команда.

Сервер отдаёт 15 инструментов:

  • чтение: tasks_list, task_get, inbox_list;

  • создание: task_add, inbox_add, subtask_add, task_comment;

  • правка: task_edit, task_snooze, task_done, subtask_toggle, task_delete;

  • делегирование: agent_queue, agent_claim, agent_finish.

Первые двенадцать нужны в диалоге: «что у меня на сегодня», «закинь в задачи». Последние три вызывает только агент, который работает по расписанию.

Как задача проходит через агента

Путь задачи через агента
Путь задачи через агента
  1. Я ставлю у задачи пометку «Агенту». Пометить задачу может только человек в приложении: агент сам себе работу не назначит.

  2. Агент забирает задачу на сегодня или просроченную. Пока он работает, другой запуск её не возьмёт.

  3. Агент пишет результат в заметки, и задача получает один из статусов: «На проверке», «Нужно уточнение» или «Агент не справился».

  4. Если запуск завис, задача сама вернётся со статусом «Агент не справился» и не останется в работе навсегда.

  5. Задачу закрываю я, когда прочитал отчёт.

Вход: через браузер или по токену

Способа два, и нужны они в разных ситуациях.

Через браузер (OAuth). Подходит, когда вы сидите за компьютером. Claude Code и Codex открывают браузер, вы входите и нажимаете «Разрешить». Токен копировать не нужно.

Личный токен. Подходит, где браузера нет: cron, claude -p, OpenCode. Токен выдаётся в кабинете и показывается один раз.

Пара решений, которые оказались важны:

  • Подключиться через браузер может только клиент из списка разрешённых. Сейчас это Claude Code и Codex. Любой другой получит ошибку на экране согласия.

  • Отзыв в кабинете срабатывает сразу: следующий вызов агента уже получит отказ, ждать, пока истечёт срок токена, не нужно.

Что видит подключённый агент

Всё. Подключение даёт доступ ко всем задачам, вплоть до удаления. Ограничить права пока нельзя. Это написано и на экране согласия, и на сайте. Если запускаете агента без присмотра, ограничьте его инструменты на стороне клиента.

Запуск по расписанию

Агент в диалоге берёт задачи, только когда вы его попросите. Мне нужно было, чтобы он работал сам. Для этого я сделал плагин для Claude Code: он ставит задание в системный планировщик, и раз в минуту агент проверяет очередь.

Главное: модель работает у вас. Плагин запускает ваш claude на вашей подписке или вашем ANTHROPIC_API_KEY. Сервер модель не вызывает и о ваших ключах ничего не знает. С сервером плагин общается только по MCP через HTTPS с вашим токеном.

Один проход по расписанию
Один проход по расписанию

Как проходит одна проверка:

  • очередь пуста — модель не вызывается вообще;

  • сначала плагин проверяет, что claude готов к работе, и только потом берёт задачу, чтобы не занять её зря;

  • за один проход берёт не больше 3 задач, на каждую даёт 15 минут;

  • если сервер недоступен или отказал, плагин не стучится каждую минуту, а делает паузу.

Планировщик свой на каждой системе: launchd на Mac, systemd-таймер на Linux, планировщик задач на Windows.

По умолчанию у агента нет никаких инструментов: он видит текст задачи и отвечает текстом. Поиск в интернете или другие MCP-серверы включаются отдельным файлом настроек. Без этого задача «узнай погоду» закончится статусом «Агент не справился».

Безопасность: что есть и чего нет

Текст задачи — недоверенный ввод. Если туда попадёт чужое письмо или скопированная страница, в нём может оказаться инструкция для модели. Что сделано:

  • агенту сказано, что текст задачи — это данные, а не команды;

  • инструментов по умолчанию нет, всё, что не разрешено явно, отклоняется без вопросов;

  • отправка наружу (почта, чаты) выключена и включается только явным списком адресатов;

  • результат попадает в задачу со статусом «На проверке», а решает человек.

Чего нет:

  • у агента, подключённого по MCP в диалоге, нет ограничения прав: он может удалить задачу;

  • модель можно обмануть, промпт — не защита. Защищают отсутствие инструментов и отправки и проверка человеком.

Что проверено вживую: Mac, 2 ноября 2026, настоящий claude на подписке, запуск по расписанию против рабочего сервера, с поиском в интернете. Задача взята за минуту, отчёт пришёл в заметки.

Что вживую не проверено:

  • Linux: плагин написан и покрыт тестами, на реальной машине не запускался;

  • Windows: beta;

  • вызов инструментов из Codex: вход через браузер проверен, вызов tasks_list из Codex нет.

Подключение за пять минут

Токен нужен для OpenCode и cron, для входа через браузер он не нужен. Храните его в файле с правами 600 и не вставляйте в команды:

mkdir -p ~/.config/shar8
[ -f ~/.config/shar8/env ] || install -m 600 /dev/null ~/.config/shar8/env
echo '[ -f ~/.config/shar8/env ] && . ~/.config/shar8/env' >> ~/.zshrc
# в файл впишите: export SHAR8_TOKEN=shar8_xxxxxxxx

Claude Code, вход через браузер (OAuth):

claude mcp add --transport http shar8 https://shar8.app/mcp

Затем в сессии /mcp, выбрать shar8, нажать Authenticate.

Для claude -p и cron: файл .mcp.json в папке запуска.

{"mcpServers":{"shar8-cron":{"type":"http","url":"https://shar8.app/mcp","headers":{"Authorization":"Bearer ${SHAR8_TOKEN}"}}}}

Codex CLI:

codex mcp add shar8 --url https://shar8.app/mcp

Codex тоже откроет браузер для входа по OAuth.

Для запуска без человека: codex mcp add shar8-cron --url https://shar8.app/mcp --bearer-token-env-var SHAR8_TOKEN.

OpenCode, opencode.json:

{
  "mcp": {
    "servers": {
      "shar8": {
        "type": "remote",
        "url": "https://shar8.app/mcp",
        "oauth": false,
        "headers": { "Authorization": "Bearer {env:SHAR8_TOKEN}" }
      }
    }
  }
}

Плагин для Claude Code (Mac и Linux, Claude Code 2.1.308 и новее, Node.js 20+):

claude plugin marketplace add triumphpc/shar8-agent
claude plugin install shar8-agent@shar8

Дальше в сессии /shar8-agent:install. Команда только печатает строку для терминала, токен вводится там скрытым вводом и через модель не проходит.

Итог

Что я для себя вынес. Очередь для агента — это не просто галка: задачу должен держать один запуск, а зависшая задача должна возвращаться сама. Отзыв доступа должен срабатывать сразу, а не когда истечёт токен. И агенту, который работает без вас, лучше дать меньше прав, чем кажется нужным: добавить проще, чем потом разбираться, куда делась задача.

Всё это работает в shar8.app: shar8.app.

Комментарии (1)


  1. yarkov
    04.11.2026 17:27

    Чем issues на гитхабе не подошли как задачник?