К ленте · Россия

РоссияСтатьяПрактика

Личный задачник, из которого Claude Code и OpenCode сами берут задачи

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

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

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

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

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

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

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

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

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

Задачник в диалоге с агентом. Подключённый 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.

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

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

  • Я ставлю у задачи пометку «Агенту». Пометить задачу может только человек в приложении: агент сам себе работу не назначит.
  • Агент забирает задачу на сегодня или просроченную. Пока он работает, другой запуск её не возьмёт.
  • Агент пишет результат в заметки, и задача получает один из статусов: «На проверке», «Нужно уточнение» или «Агент не справился».
  • Если запуск завис, задача сама вернётся со статусом «Агент не справился» и не останется в работе навсегда.
  • Задачу закрываю я, когда прочитал отчёт.

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

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

Через браузер (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.

Источник: Хабр · статьиПубликуется с разрешения правообладателя, подтверждённого редакцией.Оригинал: Личный задачник, из которого Claude Code и OpenCode сами берут задачи ↗

Есть кому отправить?

Скопируется постоянная ссылка на этот материал.

Комментарии

Обсуждайте статью, отвечайте и оценивайте комментарии. Вход — через ваш Яндекс ID.

Загружаем обсуждение…