Repository navigation
recipes
Эта страница нужна, если вы хотите поручить своему ИИ-агенту (например, Claude Code, Codex, Cursor или Gemini CLI) регулярную работу с MAX: сводку непрочитанного, отчёт по чату, список долгов и обещаний, напоминания о неотвеченном, присмотр за группой, которую вы ведёте. В каждом рецепте — готовый запрос, команды, которые агенту можно запускать, и пишет ли он что-то в MAX. В конце вы сможете запускать агента по расписанию, с ограничениями, которые он не обойдёт.
Слова на этой странице:
- Агент — ИИ-помощник, который запускает команды на вашем компьютере за вас.
-
Навык — файл, из которого агент узнаёт, как работать с
max.max skill installкладёт его туда, где агент его ищет. -
MCP-клиент — ИИ-приложение без терминала, например Claude Desktop. Оно обращается к
maxчерез MCP-серверmax personal mcp, а не запускает команды. -
Режим без диалога — агент получает один запрос, выполняет его и завершается. У Claude Code это
режим
-p, у Codex —codex exec. - cron — встроенный планировщик Linux и macOS. Он запускает команду в заданное время.
| Рецепт | Пишет в MAX | Подходит для расписания |
|---|---|---|
| Утренняя сводка | нет | да |
| Недельный отчёт по рабочему чату | нет | да |
| Кто кому должен | нет | да |
| Кому вы не ответили | нет | да |
| Найти, что было сказано | нет | да |
| Черновик ответа | только после вашего «да» | нет |
| Группа, которую вы ведёте | только если разрешено правилами группы | да |
-
Установите
maxи войдите: см. установку и вход и сессии. -
Поставьте агенту навык:
max skill install
Навык ляжет в папку Claude Code (
~/.claude/skills/max-cli/) и в папку Codex и Gemini CLI (~/.agents/skills/max-cli/).max skill showпечатает тот же текст, если ваш агент хранит навыки в другом месте. -
Сохраните запросы из рецептов в файлы, например в
~/max-recipes/. Команды расписания ниже читают запрос из файла.
MCP-клиенту навык не нужен. Подключите MCP-сервер (max personal mcp config печатает запись для его
настроек) и зовите готовые команды — /catch-up, /review, /reply, /find. См.
готовые команды MCP-сервера.
Агент по расписанию работает без вас, поэтому ограничения задаются в настройках, а не в запросе. Фразу «ничего не отправляй» агент может понять неправильно. Запрет в настройках, который он не может изменить, он не обойдёт.
Запрет на уровне агента. Это настройка самого агента. Например, Claude Code в режиме -p
запускает только команды из --allowedTools. Если max personal messages send в списке нет, агент не может
её вызвать:
claude -p "$(cat ~/max-recipes/morning.md)" --allowedTools "Bash(max personal inbox:*)"У Codex такого списка нет. Его песочница по умолчанию закрывает сеть и запись файлов, а max нужно
и то и другое: подключиться к MAX и сохранить прочитанное в свою копию. Поэтому Codex запускается с
--sandbox danger-full-access, а отправку ограничивают настройки max ниже.
Запрет на уровне max действует на любого агента:
for resource in messages reactions polls topics chats contacts account bot conversations; do
max personal config set "permissions.$resource" readonly
done
max config show # проверить эффективные права
max personal config set sends_per_hour 5 # или: не больше пяти сообщений в час
max personal recipients add "Иван Петров" # и писать только в эти чатыreadonly на одном ресурсе не касается остальных: с одним messages агент ещё может ставить
реакции, голосовать или менять чаты. Поэтому цикл задаёт каждый ресурс. Более точный ключ вроде
permissions.messages.send: allow имеет приоритет над ресурсом: удалите такие разрешения, если
профиль должен только читать.
permissions ограничивает и ваши собственные команды, пока вы не снимете запрет:
max personal config unset permissions.<ресурс>. Тогда снова действуют унаследованные настройки и
значения по умолчанию. Чтобы ограничить только агента, дайте ему отдельный профиль. Все попытки
отправки, в том числе отклонённые, — в max personal sends list. См.
защиту от отправки не туда и
права доступа.
Чтение не выдаёт вас. Ни одна команда в рецептах ниже не ставит отметку «прочитано»: собеседник не видит, что агент открыл чат.
-
Claude Desktop — запланированные задачи. Задача запускается на вашем компьютере, поэтому ей доступен
maxи ваш вход. Пропущенный запуск (компьютер спал) выполняется один раз после пробуждения. См. запланированные задачи Claude. -
cron и
claude -p. Без приложения, на любом компьютере, который включён в это время:30 8 * * * claude -p "$(cat ~/max-recipes/morning.md)" --allowedTools "Bash(max personal inbox:*)" >> ~/max-recipes/morning.log 2>&1
Задачи cron запускаются в почти пустом окружении. В Linux это ломает
maxдвумя способами:-
node: not found, код 127. Node, поставленный через nvm, fnm или Volta, лежит не в системномPATH, а cron знает только системный. -
no token found for profile "default", although it has logged in on this machine, код 4.maxне может достучаться до хранилища паролей системы и не видит токен. Не входите заново: вход в порядке, дело в окружении.
Обе строки — в начало
crontab -e, со своими значениями. Папка — изdirname "$(which node)", число — изid -u:PATH=/home/ivan/.nvm/versions/node/v24.19.0/bin:/home/ivan/.local/bin:/usr/local/bin:/usr/bin:/bin XDG_RUNTIME_DIR=/run/user/1000
Хранилище паролей доступно, пока вы вошли в систему. Первый запуск проверьте руками и посмотрите в журнал. См. режим без диалога у Claude.
-
-
cron и
codex exec. То же для Codex:30 8 * * * codex exec --sandbox danger-full-access "$(cat ~/max-recipes/morning.md)" >> ~/max-recipes/morning.log 2>&1
-
Внутри открытой сессии Claude Code —
/loopили «напомни в 15:00». Работает, пока сессия открыта. См. запланированные задачи Claude Code.
Облачные задачи Claude (routines) не подходят: они выполняются на другом компьютере, где нет max и
вашего входа.
Пишет в MAX: нет. Разрешить: Bash(max personal inbox:*).
Выполни
max personal inbox --new --json. Сгруппируй сообщения по чатам. Для каждого чата — одна строка: кто пишет и чего хочет. Сверху — то, на что нужно ответить сегодня. Рекламу и уведомления сервисов сведи в одну строку в конце.
--new показывает каждое сообщение один раз. max запоминает, где остановился в каждом чате, и
следующий запуск начинает с этого места. Самый первый запуск смотрит на последние 24 часа.
-
max personal inbox— непрочитанное, как его считает MAX: всё, что вы не открыли ни на одном устройстве. -
max personal inbox --new— с прошлого запуска--new. Эту точку знает толькоmax, собеседники её не видят. -
max personal inbox 'date>2d'— за последние два дня; сохранённая точка не сдвигается.
Ни одна из них не отмечает сообщения прочитанными. Если это нужно, добавьте --mark-read или
включите catch_up_marks_read в настройках. Тогда собеседник увидит, что вы
прочитали.
--kind оставляет только чаты нужного вида: dialog — личные, group — группы, channel — каналы.
Сводку по каналам и сводку по переписке можно запускать по отдельности, в разное время. У каждого
чата своя точка, и один запуск не прячет то, что ещё не показал другой:
30 8 * * * claude -p "$(cat ~/max-recipes/morning.md)" --allowedTools "Bash(max personal inbox:*)"
0 19 * * * claude -p "$(cat ~/max-recipes/news.md)" --allowedTools "Bash(max personal inbox:*)"В morning.md — max personal inbox --new --kind dialog,group --json, в news.md —
max personal inbox --new --kind channel --json и просьба выбрать главное. Без --kind — всё вместе.
Пишет в MAX: нет. Разрешить: Bash(max personal messages list:*).
Прочитай сообщения в чате «Проект Альфа» за последние 7 дней:
max messages list "Проект Альфа" 'date>7d' --limit 200 --json. Если в ответе есть шагpage.next, читай дальше с его--cursor. Составь отчёт: что решили, кто что взял на себя и к какому сроку, какие вопросы остались без ответа. У каждого пункта — дата и автор.
Пишет в MAX: нет. Разрешить: Bash(max personal review:*), Bash(max personal messages context:*),
Bash(max personal search messages:*).
Выполни
max personal review --new --transcribe --json(первый раз — за 3 дня, потом — с прошлого--new, у каждого чата своя точка). Разложи на три списка: что должен я, чего я жду от других, что нужно уточнить. У каждого пункта — чат, дата и id сообщений, на которых он основан; срок — только если он назван. Прежде чем назвать что-то просроченным, проверь, не сделано ли это позже или в рабочих группах. Если"complete": false, скажи, чего не хватает. В конце перечисли незакрытые пункты.
--transcribe сначала переводит голосовые сообщения в текст; это может занять минуты. Следующий
обзор — та же просьба плюс незакрытые пункты прошлого: агент проверит их первыми. Чат, прочитанный
не целиком, сохраняет свою точку и придёт снова. В MCP-клиенте это команда /review.
Короче всего — max personal review 'date>7d' --unanswered --json: вопросы, на которые никто не
ответил, — в личных чатах вам, в группах вам или админам. Рецепт ниже шире: он ловит и просьбы без
вопросительного знака.
Пишет в MAX: нет. Разрешить: Bash(max personal chats list:*), Bash(max personal messages list:*).
Выполни
max personal chats list kind:dialog --offline --limit 30 --json. Для каждого чата, где последнее сообщение было за последние 7 дней, прочитайmax personal messages list <id чата> --limit 5 --json. Покажи чаты, где последнее сообщение не от меня и в нём вопрос или просьба: с кем, о чём и сколько дней прошло.
Пишет в MAX: нет. Разрешить: Bash(max personal search messages:*), Bash(max personal messages context:*).
Найди «счёт» через
max personal search messages счёт --json. Для каждого найденного прочитайmax personal messages context <locator> --jsonи скажи, кто что сказал и когда.
По умолчанию поиск идёт и по копии на этом компьютере, и на сервере MAX. В локальной копии есть
только то, что max уже сохранил. Чтобы искать по всей истории чата локально, сначала скачайте
её. Это запрос от вашего аккаунта, поэтому сделайте его сами: max personal messages sync <чат>. См.
скачивание истории.
Пишет в MAX: только после вашего «да». Это рецепт для разговора с агентом, не для расписания.
Прочитай последние 20 сообщений в чате с Иваном Петровым и предложи ответ на его последний вопрос. Не отправляй — покажи мне текст.
Когда вы согласны, агент отправляет сам: max personal messages send "Иван Петров" "…". MCP-клиент
подключается через max personal mcp. Не давайте клиенту заранее одобрять max_write, и он будет
спрашивать вас перед каждой отправкой. Права профиля всё равно ограничивают запись. См.
MCP-сервер.
Пишет в MAX: только если разрешено правилами группы. Разрешить: Bash(max personal review:*),
Bash(max personal chats events:*), Bash(max personal chats members list:*), Bash(max personal chats moderate:*).
Выполни
max personal review 'chat:"Поход"' --unanswered 4h --json,max chats events "Поход" 'time>=7d' --jsonиmax chats moderate "Поход" --dry-run --json. Коротко: какие вопросы ждут ответа, от кого и с какого времени; кто вступил или был добавлен за неделю и кем; что проверка нашла по правилам группы и что предлагает сделать. Никому не отвечай и никого не удаляй сам — перечисли команды, которые сделают это, если я соглашусь.
С --dry-run команда chats moderate только составляет план. Без него она действует в пределах
правил группы, поэтому уберите Bash(max personal chats moderate:*) из списка, если агент не должен
действовать никогда. Все сценарии и правила — группы, которые вы ведёте.
Для MAX готовых рецептов пока нет. Для Telegram есть; их запросы подходят и для max, если заменить
инструменты на команды:
- Telegram MCP: полное руководство — утренний разбор входящих, черновики ответов, сводка по каналу, поиск по нескольким чатам.
- pioh/tg — ИИ-агент с личным аккаунтом Telegram: сводка раз в N минут, «напомни, если я не ответил маме за 15 минут», наблюдение за людьми и чатами.
- Gorgias MCP cookbook — рецепты для службы поддержки, но хорошо устроены: у каждого сказано, пишет ли он что-то, и что поправить под себя.