Skip to content

sessions

github-actions[bot] edited this page Oct 14, 2026 · 1 revision

Вход, сессии и профили

Прочитайте эту страницу, когда впервые подключаете max к аккаунту MAX, добавляете второй аккаунт или max говорит, что входа нет. В конце вы знаете, как войти, как проверить, под кем выполнен вход, как выйти и где max хранит то, что нужно, чтобы вход не пропадал.

Сначала — слова, которые здесь встречаются:

  • Сессия — вход max в ваш аккаунт MAX на этом компьютере. Она состоит из токена и личности устройства. MAX показывает её в приложении как ещё одно устройство.
  • Токен — строка, которую MAX выдаёт при входе. С ним можно читать ваши чаты, поэтому обращайтесь с ним как с паролем. max держит его в ключнице.
  • Личность устройства — то, чем max представляется MAX: всегда одно и то же устройство, а не новое на каждую команду. Она лежит в файле рядом с остальным состоянием.
  • Ключница (keyring) — хранилище паролей операционной системы: Keychain в macOS, Secret Service (GNOME Keyring, KWallet) в Linux, диспетчер учётных данных в Windows.
  • Профиль — имя для одного входа на этом компьютере, со своим токеном, состоянием и настройками. Имя называется в каждой команде (max personal …), MAX_PROFILE или default_profile; сам max профиль не выбирает. Второй профиль нужен только для второго аккаунта или для отдельных ограничений (профили).

Не путайте max personal session и max personal account sessions. max personal session — вход самого max; max personal account sessions перечисляет все остальные устройства и приложения, вошедшие в ваш аккаунт.

Первый запуск

max personal setup --agent codex проверяет локальные каталоги, проводит через QR-вход, проверяет аккаунт и до пяти чатов и устанавливает навык агента. Варианты агента: codex, cursor, claude, gemini, all, none. Без параметра в терминале задаётся вопрос; машинный режим пропускает установку навыка. Инструкция max skill show доступна до входа.

Выделите около пяти минут. История скачивается отдельно после выбора чата и объёма; setup не запускает фоновый сервис. Повторный запуск проверяет существующую сессию. --method token|qr|qr-chrome|sms выбирает способ свежего входа; по умолчанию setup берёт qr. QR и браузер требуют человека у локального терминала. Не передавайте токен аргументом. Если настройка прервана, повторите setup. При истёкшем токене явно выполните max personal session start qr; при недоступной ключнице сначала исправьте окружение по подсказке.

Вход

max personal session start <способ> — четыре способа войти. Каким бы способом ни был получен токен, в ключницу он попадает только после того, как MAX его принял.

Способ Что происходит Что нужно
token (по умолчанию) вставить токен, выданный официальным клиентом, или подать его трубой —
qr QR-код рисуется прямо в терминале; вы сканируете его приложением MAX. Узкий терминал — код откроется в браузере по умолчанию терминал шириной от ~70 колонок, иначе любой браузер
qr-chrome открывается web.max.ru в отдельном окне браузера; вы сканируете его QR-код Chrome, Chromium, Edge или Brave
sms то же окно web.max.ru; на странице выберите вход по номеру телефона Chrome, Chromium, Edge или Brave
max personal session start qr

qr-chrome и sms — самые осторожные. Вход делает сам web.max.ru в настоящем браузере, и MAX видит свой собственный веб-клиент. Браузер запускается с отдельным временным профилем, а не с вашим; как только web.max.ru вошёл, окно закрывается, а профиль удаляется — и при Ctrl-C тоже. Закрытие окна не завершает сессию: это как закрыть вкладку. Браузер ищется сам; другой можно указать в MAX_BROWSER. Браузеры из snap не подходят — у них своя папка /tmp.

qr просит код у MAX собственным соединением max, изображая веб-клиент. Он работает без браузера, но это уже не настоящий веб-клиент.

Вход по SMS — только через браузер. Когда SMS просит соединение max, MAX требует капчу, а её можно пройти только на странице.

После любого из трёх входов в списке сессий приложения MAX появится новое устройство. Если у аккаунта есть облачный пароль, qr спросит его без эха, до трёх раз; потом код придётся сканировать заново.

Все три требуют человека у терминала: без него команда откажет с кодом 2. Если вход запускает ваш ИИ-агент без терминала, ему остаётся token. Пока задана MAX_TOKEN, эти три способа тоже откажут: она старше ключницы и перекрыла бы новую сессию.

Токен вручную

max personal session start без способа импортирует токен, который уже выдан официальным клиентом — веб-версией web.max.ru или другим клиентом, — и кладёт его в ключницу. Он работает и тогда, когда вход упирается в капчу или в необычный второй фактор.

max personal session start
MAX token: ▏          # ввод не отображается

Токен не передаётся аргументом. Аргумент команды виден в ps любому процессу на машине и остаётся в истории оболочки. Поэтому он спрашивается у терминала без эха — или читается из трубы, если терминала нет:

pass show max/token | max personal session start

Для CI и разовых запусков есть переменная. Она старше ключницы: если MAX_TOKEN задана, берётся она, и в ключницу ничего не пишется. Фоновый сервер max personal serve с ней не запускается: команда подключается к MAX сама.

MAX_TOKEN="$(cat /path/to/token)" max personal chats list --json

Проверить и выйти

max personal account show             # под кем выполнен вход: id, имя, последние четыре цифры телефона
max account list             # все профили на этом компьютере и аккаунт каждого
max personal account sessions list    # все устройства и приложения, вошедшие в аккаунт; ничего не завершает
max personal session end              # выйти из MAX и забыть токен на этой машине

session end сначала завершает сессию на сервере MAX, потом стирает токен на этой машине. Ответ говорит, что получилось:

{ "profile": "default", "forgotten": true, "revokedOnServer": true }

Если вход был токеном из вкладки web.max.ru, это одна и та же сессия: session end выведет из MAX и эту вкладку.

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

Сколько живёт сессия

Срок жизни токена неизвестен: MAX его не сообщает. Токен продолжает работать и после того, как вкладка web.max.ru закрыта. Когда MAX перестаёт его принимать, войдите заново: max personal session start.

max не ограничивает число входов, но считает их для каждого профиля; счётчик показывает max personal doctor.

Профили

Профиль хранит свой токен и своё состояние; локальная копия сообщений общая, с данными по аккаунтам. Профиль называется первым словом, а не флагом:

max personal chats list     # профиль personal
max work chats list         # профиль work
export MAX_PROFILE=personal # или на всю сессию оболочки

Правило: первое слово — это профиль, если оно не совпадает с именем команды. Поэтому профиль нельзя назвать chats, runs или session — max personal session start и max personal setup отвергают такое имя. Иначе max personal chats молча значило бы «профиль chats без команды». Имя состоит из латинских букв, цифр, точки, дефиса и подчёркивания и начинается с буквы или цифры.

Порядок, первое совпадение побеждает: первое слово, MAX_PROFILE, default_profile в файле настроек. Если ничего из этого нет, команда, которой нужен аккаунт, завершается с кодом 2 и перечисляет профили этого компьютера — даже когда профиль один:

✗ name a profile: `max <profile> …` — profiles here: personal (or set MAX_PROFILE)

На компьютере без профилей сообщение говорит, как создать первый: max personal setup. Без профиля работают только команды, которым аккаунт не нужен: --help, --version, commands, skill show, account list, config show.

Если первое слово не команда и команды за ним нет, программа не показывает справку молча, а говорит, что произошло:

"nonsense" is not a command, so it was read as a profile name — and no command followed it.
Run `max --help` for the commands, or `max nonsense account show` if "nonsense" is your profile.

MAX_PROFILE_LOCK закрепляет процесс за одним профилем. Задайте её там, где работает агент, и первое слово или MAX_PROFILE с именем другого профиля будут отвергнуты (код возврата 5). Без неё агент мог бы выбрать профиль с меньшими ограничениями.

Зачем нужен каждый профиль и как профиль работает с ботом — в разделе профили и боты.

Где что лежит

Что Где
токен ключница ОС, служба max-cli, запись — имя профиля
токен, если ключницы нет credentials.json рядом с настройками, режим 0600
токен для CI MAX_TOKEN; она старше ключницы
токен бота ключница ОС, служба max-cli, запись bot:<профиль>; или MAX_BOT_TOKEN
чаты, которые видел бот ~/.local/share/max-cli/bots/
устройство, счётчик входов, viewerId ~/.local/share/max-cli/profiles/<профиль>.json, режим 0600
настройки ~/.config/max-cli/config.json

Каталоги для macOS и Windows перечислены в разделе куда всё ложится.

Личность устройства записывается при первом же чтении, до того как будет использована. Клиент, который представляется MAX новым устройством на каждую команду, — это не подражание настоящему клиенту, и сессии на стороне сервера привязаны именно к нему.

На машине без ключницы (типичный контейнер) запись не удаётся — тогда токен ложится в файл credentials.json рядом с настройками, с правами 0600, и команда говорит об этом одной строкой на stderr. В CI правильнее не полагаться ни на то, ни на другое и передавать MAX_TOKEN.

⚠ MAX_CONFIG_DIR, MAX_STATE_DIR и MAX_CACHE_DIR переносят и запись в ключнице: меняется имя службы. Сессия, сохранённая с этими переменными, не видна команде, запущенной без них, и наоборот. Либо ставьте их всегда, либо никогда.

Дальше

Clone this wiki locally