CLI, MCP server и MCP Apps для Яндекс Почты, Календаря и Диска
Один аккуратный продуктовый интерфейс для терминала, ИИ-агентов и MCP-хостов.
Установка • Быстрый старт • Команды • Сценарии • MCP
yacli связывает Яндекс Почту, Календарь и Диск в один внятный интерфейс: в терминале, в агентских клиентах и внутри MCP Apps. Один бинарь закрывает повседневную ручную работу, агентские интеграции и составные сценарии вроде письмо → .ics → событие или файл → письмо.
|
CLI для ежедневной работы Почта, календарь, вложения, события и приватный Диск в одном бинаре и одном конфиге. |
MCP для агентов Полноценный MCP-сервер с stdio, http, prompts, skills, resources, completions, roots и write-tools.
|
MCP Apps для UI-хостов Дашборд, deep links, prompts, браузер ресурсов и живые кросс-сервисные сценарии. |
|
Письмо → вложение → файл Найти письмо, выгрузить нужное вложение и сохранить его локально без промежуточных скриптов. |
Письмо → .ics → событиеРазобрать приглашение из письма и сразу создать встречу в нужном календаре. |
Файл → письмо Взять локальный файл, приложить его к письму и отправить через тот же интерфейс. |
curl -fsSL https://raw.githubusercontent.com/NextStat/yacli/main/scripts/install.sh | shirm https://raw.githubusercontent.com/NextStat/yacli/main/scripts/install.ps1 | iexГотовые сборки для macOS x86_64/arm64, Linux x86_64/arm64 и Windows x86_64 лежат в GitHub Releases.
Из исходников / обновление / private mirror
cargo install --path . # сборка из исходников
yacli update # обновить до последнего релиза
yacli update --check # проверить без установкиДля private release mirror:
export YACLI_UPDATE_BASE_URL='https://mirror.example.test/releases/download/v0.5.5'
yacli update --checkЗапуск за минуту
curl -fsSL https://raw.githubusercontent.com/NextStat/yacli/main/scripts/install.sh | sh
yacli setup me@yandex.ru --calendar-app-password <пароль> --client claudeПосле этого у вас сразу будут:
- локальный CLI для Почты, Календаря и Диска;
- MCP server для Claude, Codex, Gemini и других клиентов;
- prompts, embedded skills, resources и dashboard для MCP Apps;
- готовые кросс-сервисные сценарии без клея из скриптов.
- live onboarding checklist в Unified Home, чтобы добить недостающие шаги без гадания.
- terminal home screen через
yacli home, чтобы увидеть onboarding, workflows и последние действия в одном месте. - product health-check через
yacli doctorиresource://yacli/doctor, чтобы быстро понять, что ещё мешает readiness. - safe remediation через
yacli doctor --apply-safeи кнопкуApply safe fixesв Unified Home, чтобы автоматически закрыть безопасные локальные фиксы. - ranked next actions через
yacli nextиresource://yacli/next-actions, чтобы сразу видеть самые выгодные следующие шаги. - proactive suggestions через
yacli suggestиresource://yacli/suggestions, чтобы получать recovery / cleanup / undo подсказки из реальной activity history и live product signals. ВUnified Homeэти suggestions теперь не только видны, но и ведут прямо вundoили канонический workflow/review path. workflow showиresource://yacli/workflow/{workflow}теперь отдают server-drivenexecution.stateиexecution.available_actions, чтобы CLI, MCP и Apps видели один и тот же actionable lifecycle workflow:needs_input,review_ready,ready,recovery_ready,undo_ready,applied,undone.- Workflow panel в Apps теперь использует server-driven
execution.actionsдляnext action, так чтоconnect / review / resume / cleanup / undo / replayидут из одного канонического workflow contract, а не из UI-эвристик. - Для partial recovery
execution.actionsтеперь по возможности несёт точныйtool_name + tool_arguments, чтобы Apps могли открыть или применить retry-step без ручного прыжка в activity/replay shell command.
| Если вам нужно | Что делать |
|---|---|
| Пройти setup одним проходом | yacli setup me@yandex.ru --calendar-app-password <пароль> --client claude |
| Быстро подключить Почту и Диск | yacli add → yacli login |
| Подключить Календарь | получить пароль приложения Яндекс ID → yacli login calendar --app-password <пароль> |
| Поставить MCP в Claude / Codex / Gemini | yacli mcp install --client <client> |
| Поднять локальный HTTP MCP | yacli mcp --transport http --listen 127.0.0.1:8787 |
Для агентских и headless-сценариев yacli login теперь работает в два шага без ломкого stdin-диалога:
yacli login
# => status=pending, authorization_url, resume_command
yacli login --code <код>yacli сохраняет pending PKCE session в локальном config dir и переиспользует её при втором вызове, поэтому код подтверждения больше не ломается из-за нового code_verifier.
Как получить пароль приложения для Календаря
- Откройте Пароли приложений Яндекс ID.
- Перейдите
Безопасность→Доступ к вашим данным→Пароли приложений. - Выберите тип
Календарь. - Задайте имя, например
yacli calendar, и скопируйте пароль.
Если не хотите хранить пароль локально:
export YACLI_CALENDAR_APP_PASSWORD='<пароль>'
yacli login calendar --env-var YACLI_CALENDAR_APP_PASSWORDВ релизных сборках OAuth-токены и пароли приложений хранятся в системном keyring/keychain. В debug/test-сборках по умолчанию используется file backend, чтобы локальная разработка и cargo test не спамили keychain prompt-ами. Для явного override: export YACLI_SECRET_BACKEND=keyring или export YACLI_SECRET_BACKEND=file.
yacli home
yacli doctor
yacli doctor --apply-safe
yacli next
yacli suggest
yacli status
yacli mail list
yacli calendar calendars
yacli disk infoyacli уже тянет реальные составные задачи внутри агентского интерфейса, а не только отдельные команды.
Запрос в Claude Cowork:
Создай событие "Ревью yacli v0.5" понедельник в 11:00 на 30 минут, отправь напоминание на почту, и создай папку на Диске для материалов
Что получилось:
- Событие создано в календаре на понедельник, 16 марта 2026,
11:00–11:30. - Напоминание на почту отправлено.
- Папка на Яндекс Диске подтверждена:
/yacli-v0.5-review.
Почему это важно: один запрос связывает сразу три surface yacli:
- календарь для создания события;
- почту для отправки напоминания;
- диск для подготовки рабочей папки.
Именно это и является продуктовой целью yacli: не просто “дать tools”, а довести реальные рабочие сценарии до одного понятного контракта для людей и агентов.
yacli mail folders
yacli mail list
yacli mail search "смета"
yacli mail read 1353
yacli mail reply 1353 "Принято, спасибо"
yacli mail forward 1353 person@example.com "Посмотрите, пожалуйста"
yacli mail send person@example.com "Синк" "Привет"
yacli mail send person@example.com "Счёт" "Во вложении файл" --attach ./invoice.pdf
yacli mail send person@example.com "Счёт" "Во вложении файл" --attach ./invoice.pdf --dry-run
yacli mail send-link person@example.com "Материалы" "Отправляю ссылку" --source ./archive.zip --path disk:/docs/archive/archive.zip
yacli mail send-link person@example.com "Материалы" "Отправляю ссылку" --source ./archive.zip --path disk:/docs/archive/archive.zip --dry-run
yacli mail send-published-link person@example.com "Материалы" "Отправляю ссылку" --public-url https://disk.yandex.ru/i/archive-link
yacli mail send-published-link person@example.com "Материалы" "Отправляю ссылку" --public-url https://disk.yandex.ru/i/archive-link --dry-run
yacli disk upload-link --source ./archive.zip --path disk:/docs/archive/archive.zip
yacli disk upload-link --source ./archive.zip --path disk:/docs/archive/archive.zip --dry-runВложения и приглашения:
yacli mail attachment export 1353 --index 1 --output ./invoice.pdf
yacli mail invite inspect 1353 --index 1
yacli mail invite create-event 1353 --index 1- Число
1353— идентификатор письма изmail listилиmail search. --folder "Имя папки"для работы не с INBOX.--html,--cc,--bccдля HTML и копий.--attachможно указать несколько раз.--dry-runпоказывает review отправки без реального SMTP-вызова.- Если собранное письмо уже слишком тяжёлое для безопасной SMTP-отправки,
mail send --dry-runчестно рекомендует workflowsend-link-by-mail, а реальныйmail sendблокируется до сетевого шага с той же подсказкой. mail send-link— правильный flow для больших файлов: upload на Диск, publish ссылки и письмо со ссылкой в одном шаге.- Если у
mail send-linkуже случилсяupload + publish, а SMTP упал, команда возвращаетstatus=partialс готовыми recovery actions: повторить только mail-step черезmail send-published-link, вручную поделиться ссылкой или отозвать её. mail send-published-link— честный retry mail-step для уже опубликованной ссылки без повторного upload/publish.disk upload-link— правильный flow, когда нужно просто получить публичную ссылку без отправки письма.
Ещё примеры
yacli mail list --folder "Отправленные" --limit 20
yacli mail search "договор" --folder "Архив 2026"
yacli mail attachment export 1353 --name invoice.pdf --output ./invoice.pdf
yacli mail invite inspect 1353 --name invite.ics
yacli mail invite create-event 1353 --name invite.ics --calendar team --event-index 2
yacli mail send person@example.com "Счет" "Отправляю счет" --cc boss@example.com
yacli mail send person@example.com "Счет" "Отправляю счет" --attach ./invoice.pdf --attach ./spec.docx
yacli mail send-link person@example.com "Материалы" "Отправляю ссылку" --source ./archive.zip --path disk:/docs/archive/archive.zipyacli calendar calendars
yacli calendar events
yacli calendar events 2026-03-14 2026-03-20 --limit 20
yacli calendar create "Синк команды" 2026-03-14T09:00:00Z 2026-03-14T10:00:00Z
yacli calendar create "Синк команды" 2026-03-14T09:00:00Z 2026-03-14T10:00:00Z --dry-run
yacli calendar delete <id>- Без дат
eventsпоказывает ближайшие 30 дней. --calendar <id>для работы не с default-календарём.calendar create --dry-runпоказывает review события без реального CalDAV PUT.
yacli disk info
yacli disk list
yacli disk list disk:/docs --limit 50
yacli disk mkdir disk:/docs/archive
yacli disk upload ./report.pdf disk:/docs/archive/report.pdf
yacli disk upload ./report.pdf disk:/docs/archive/report.pdf --dry-run
yacli disk upload-link --source ./report.pdf --path disk:/docs/archive/report.pdf
yacli disk upload-link --source ./report.pdf --path disk:/docs/archive/report.pdf --dry-run
yacli disk download disk:/docs/archive/report.pdf --output ./report.pdf
yacli disk publish disk:/docs/archive/report.pdf
yacli disk publish disk:/docs/archive/report.pdf --dry-run
yacli disk unpublish disk:/docs/archive/report.pdf
yacli disk unpublish disk:/docs/archive/report.pdf --dry-rundisk upload --dry-runпоказывает review файла и remote path без запроса upload ticket и без реальной загрузки.disk upload-linkзакрывает human flowлокальный файл -> Диск -> публичная ссылкав одном шаге;--dry-runпоказывает review без upload/publish.disk downloadскачивает приватный файл с того же robust transfer contract: progress, retry, stats и activity replay.disk publish --dry-runпоказывает, что именно будет опубликовано и уже есть ли у ресурсаpublic_url/public_key, без реального publish.disk publishпубликует приватный ресурс и возвращаетpublic_url/public_key, чтобы большой файл можно было не слать вложением, а отдать ссылкой.disk unpublish --dry-runпоказывает, какая публичная ссылка будет снята, без реального revoke.disk unpublishотзывает публичную ссылку и возвращает, какаяpublic_url/public_keyбыли сняты.- Реальные upload/download transfer на Диск по умолчанию ждут завершения без общего short timeout на тело запроса; при необходимости жёсткий потолок можно задать через
YACLI_DISK_UPLOAD_TIMEOUT_SECSиYACLI_DISK_DOWNLOAD_TIMEOUT_SECS. - В CLI table-mode большие upload/download показывают живой progress и throughput в stderr, не ломая JSON/MCP contract.
- При transient сетевых сбоях transfer автоматически делает несколько безопасных retry-попыток: download стартует заново, upload получает новый upload ticket и повторяет отправку целиком.
disk public downloadтеперь умеет resumable download через.part+ HTTPRange, если download endpoint поддерживает partial content; итоговый payload показываетresumed_from_bytes,attemptsиelapsed_ms.
yacli activity list
yacli activity list --limit 20
yacli activity show <id>
yacli activity undo <id>- В журнал попадают только успешные реальные write-операции.
--dry-runв журнал не записывается.- У каждой записи есть
replay_command, который можно повторить или передать агенту. - Для честно обратимых действий запись дополнительно несёт
undo_command, аyacli activity undo <id>выполняет штатный rollback.
yacli disk public show --public-key https://disk.yandex.ru/i/WhGpLnQWR9efCA
yacli disk public download --public-key https://disk.yandex.ru/i/WhGpLnQWR9efCA --output ./sample.pdf| Skill / workflow | Что связывает | Пример запроса |
|---|---|---|
daily-briefing |
Почта + календарь | «Собери утреннюю сводку по письмам и встречам» |
reply-with-context |
Почта + календарь | «Ответь на письмо с учётом моего расписания» |
attachment-to-disk |
Почта → файл | «Найди письмо и сохрани вложение в файл» |
send-file-by-mail |
Файл → почта | «Отправь файл с диска по почте» |
send-link-by-mail |
Файл → Диск → почта | «Загрузи большой файл на Диск и отправь ссылку по почте» |
publish-file-link |
Файл → Диск | «Загрузи файл на Диск и дай публичную ссылку» |
revoke-public-link |
Диск | «Отзови публичную ссылку у файла на Диске» |
invite-to-calendar |
Почта → календарь | «Найди приглашение и добавь встречу в календарь» |
# утренняя сводка
yacli mail list --limit 10
yacli calendar events
# ответ с учётом расписания
yacli mail read 1353
yacli calendar events 2026-03-14 2026-03-16
yacli mail reply 1353 "Подтверждаю, это окно подходит"
# большой файл -> ссылка -> письмо
yacli mail send-link person@example.com "Материалы" "Отправляю ссылку" --source ./archive.zip --path disk:/docs/archive/archive.zip
# локальный файл -> публичная ссылка
yacli disk upload-link --source ./archive.zip --path disk:/docs/archive/archive.zip
# отозвать публичную ссылку
yacli disk unpublish disk:/docs/archive/archive.zip
# сохранить вложение
yacli mail attachment export 1353 --name invoice.pdf --output ./invoice.pdf
# отправить файл по почте
yacli mail send person@example.com "Счёт" "Во вложении файл" --attach ./invoice.pdf
# приглашение → событие
yacli mail invite inspect 1353 --index 1
yacli mail invite create-event 1353 --index 1 --calendar teamДля MCP-клиентов те же сценарии доступны через prompts/get и resource://yacli/skill/*.
yacli add personal@yandex.ru
yacli login
yacli add work@company.ru work
yacli use work
yacli login
yacli mail list --account personal
yacli mail search "счет" --account workУ каждого адреса свои токены и настройки. use переключает текущую учётную запись, --account обращается к конкретной.
| Surface | Что это даёт |
|---|---|
Один runtime |
Почта, календарь и диск живут в одном бинаре, одном конфиге и одном агентском контракте. |
Apps-first MCP |
Не только tools, но и MCP Apps: dashboard, prompts, embedded skills, resources, live subscriptions. |
Кросс-сервисные workflows |
Путь письмо → вложение → .ics → событие, файл → письмо, агент → MCP prompt → действие. |
Ship-ready |
Готовые релизы для macOS, Linux x86_64/arm64, Windows x86_64, плюс yacli update. |
flowchart LR
U["Пользователь / агент"] --> CLI["yacli CLI"]
U --> MCP["yacli MCP server"]
MCP --> APPS["MCP Apps dashboard"]
MCP --> PROMPTS["prompts / skills / resources"]
CLI --> MAIL["Яндекс Почта"]
CLI --> CAL["Яндекс Календарь"]
CLI --> DISK["Яндекс Диск"]
MCP --> MAIL
MCP --> CAL
MCP --> DISK
APPS --> MAIL
APPS --> CAL
APPS --> DISK
Важно: yacli не является продуктом Яндекса. Яндекс этот проект не поддерживает. Это самостоятельный проект с открытым исходным кодом.
yacli mcp # stdio
yacli mcp --transport http --listen 127.0.0.1:8787 # HTTPstdio автоматически совместим с Content-Length framing и line-delimited JSON — один бинарник работает и в старых, и в новых клиентах.
yacli mcp install # все обнаруженные клиенты
yacli mcp install --client claude # Claude Code + Claude Desktop
yacli mcp install --client codex # Codex
yacli mcp install --client gemini # Gemini CLI
yacli mcp install --client cursor # CursorРегистрирует MCP server и раскладывает 13 embedded skills в клиентские каталоги.
Поддерживаемые клиенты: Claude Code, Claude Desktop / Cowork, Codex, Gemini CLI, Cursor, Zed, Windsurf, Antigravity, Warp.
| Слой | Содержимое |
|---|---|
tools |
mail, calendar, disk, account, auth, update, roots |
resources |
account/auth, skills catalog, templated resources |
prompts |
shared, mail, calendar, disk, daily-briefing, find-and-read, reply-with-context, attachment-to-disk, send-file-by-mail, send-link-by-mail, publish-file-link, revoke-public-link, invite-to-calendar |
apps |
ui://yacli/dashboard — browser, tool runner, resource inspector, update check |
completions |
accounts, folders, calendars, skills, dashboard args |
| Клиент | MCP | Apps / UI | Skills | Prompts |
|---|---|---|---|---|
| Claude Code | stdio + http |
Да | Да | Да |
| Claude Desktop / Cowork | Да | Да | — | Да |
| Codex / Gemini CLI | stdio + http |
Да | Да | Да |
| Cursor / Windsurf / Warp | Да | зависит от хоста | частично | Да |
| Zed | Да | зависит от хоста | — | Да |
Транспорты и auth
| Transport | Когда использовать | Что важно |
|---|---|---|
stdio |
Claude Code, локальные CLI MCP-клиенты | Автосогласование Content-Length и JSONL |
http |
Apps-capable клиенты и локальный networked MCP | Streamable HTTP + SSE notifications |
HTTP transport streamable:
POST /mcp— JSON-RPC requests и batch payloads;GET /mcpсAccept: text/event-streamиMcp-Session-Id— SSE stream для server-push notifications;DELETE /mcp— завершение HTTP MCP session.
Bearer token auth:
export YACLI_MCP_HTTP_BEARER_TOKEN='secret-token'
yacli mcp --transport http --listen 127.0.0.1:8787Protected Resource Metadata и auth discovery:
export YACLI_MCP_HTTP_AUTH_ISSUER='https://auth.example.test'Public URL для прокси:
yacli mcp --transport http --listen 127.0.0.1:8787 --public-url https://mcp.example.test/mcpNative HTTP registration:
yacli mcp install --client claude --transport http --url http://127.0.0.1:8787/mcp
yacli mcp install --client codex --transport http --url http://127.0.0.1:8787/mcp
yacli mcp install --client gemini --transport http --url http://127.0.0.1:8787/mcpPrompts, skills и resources
Embedded MCP prompts — русскоязычные, для точного матчинга запросов вроде «сводка по письмам» или «ответь с учётом расписания».
Это MCP-native эквиваленты embedded SKILL.md. В клиентах вроде Claude Desktop / Cowork, где отдельный SKILL.md surface отсутствует, prompts/list и prompts/get дают переносимый workflow layer.
Resource templates:
resource://yacli/account/{alias}
resource://yacli/auth/{alias}
resource://yacli/skills
resource://yacli/skill/{skill}
ui://yacli/dashboard{?account,section,resource,tool,skill,prompt}
resources/subscribe / resources/unsubscribe дают live notifications через notifications/resources/updated.
completion/complete подсказывает аргументы: account aliases, skill names, mail folders, calendar windows, disk paths, dashboard args.
Для клиентов с roots capability доступен tool yacli.roots.list.
Write-capable tools
Mail:
yacli.mail.send(включаяattachments— список локальных путей)yacli.mail.replyyacli.mail.forwardyacli.mail.attachment.exportyacli.mail.invite.inspectyacli.mail.invite.create_event(селекторindex/name+event_indexдля.icsс несколькими VEVENT)
Calendar:
yacli.calendar.createyacli.calendar.delete
Disk:
yacli.disk.mkdiryacli.disk.upload
Apps и dashboard
MCP Apps доступны через ui://yacli/dashboard:
- Unified Home — стартовый экран с snapshot, workflows, activity и быстрыми переходами
- Canonical home resources —
resource://yacli/home,resource://yacli/home/{account}и goal-aware варианты с?goal=...дают один и тот же summary surface в CLI, MCP и Apps - Ranked next actions —
yacli nextиresource://yacli/next-actionsтеперь умеют и goal-aware приоритизацию через--goal/?goal=... - Proactive suggestions —
yacli suggestиresource://yacli/suggestionsсобирают recovery / cleanup / undo подсказки из реальной activity history, optional goal context и live signal'ов вроде свежего письма с calendar invite, обычным или уже слишком тяжёлым вложением вINBOX, уже опубликованных файлов на Яндекс Диске, отменённых событий в календаре, ближайших встреч для подготовки папки с материалами, недавно завершившихся встреч для публикации папки с материалами и живых post-event signal'ов, где уже можно сразу ответить на письмо со ссылкой на опубликованные материалы - Goal Router —
yacli goal "..."иyacli.goal.routeмаршрутизируют естественную цель в лучший workflow, prompt и MCP tool-path - Goal-driven remediation — route сразу показывает, чего не хватает в setup/readiness и какой командой это добить
- Goal Router в Apps — routed goal можно сразу довести до
Preview action,Apply routed actionиShare goal replay - Live onboarding checklist — показывает, что ещё не подключено, и какие команды добьют setup
- Live doctor health-check — показывает config/secret backend/service readiness, статус MCP-клиентов и suggested commands
- Apply safe fixes — запускает
yacli.doctor.apply_safe, применяет только безопасные локальные remediation-шаги и сразу refresh-ит Home / Doctor / Next Actions - Suggestions in Unified Home — Home умеет отдельно refresh/share
suggestions, открывать top suggestion и запускать её черезundoили workflow/review path рядом сdoctorиnext actions - Round-trip deep links — dashboard пересобирает canonical URI при смене view
- Unified searchable browser по tools, prompts, resources, templates и skills
- Workflow Hub и Activity Log с replay-командами
- Universal tool runner — выбор tool,
inputSchema, редактор JSON args, вызов из hosted app - Action Review в Apps runtime —
Preview actionиApply reviewed actionдляmail send,calendar create,disk upload - Workflow autofill — runner открывается на каноническом tool для workflow и сразу подставляет account, server-driven workflow defaults, правильные MCP arg names и goal/remediation hints/tool arguments вроде email, local path, disk path и calendar
- Workflow capabilities — workflow payload теперь канонически несёт
primary_tool,primary_operation,supports_reviewиprimary_tool_arguments, так что Workflow Hub, Goal Router и Activity handoff не держатся на UI-эвристиках - Review-driven remediation handoff — если
mail sendreview рекомендуетsend-link-by-mail, dashboard умеет сразу открыть suggested flow и предзаполнить runner - Workflow-level handoff — из Workflow Hub можно сразу перейти в preview/apply и в replay последних действий
- Resource inspector для account/auth и skills catalog
- Capability-aware host profile — показывает, что host умеет, и рекомендует workflow
- Persistent view state в browser storage
- Auth escalation surface для protected tools
- Safe update check из Apps runtime
Поведение по клиентам
Claude Code,CodexиGemini CLIумеют native HTTP registration —yacliподдерживает иstdio, иhttpinstall flow;Claude Desktop / Coworkиспользуетclaude_desktop_config.json—yacli mcp install --client claudeрегистрирует и в Claude Code, и в Claude Desktop;- для
Cursor,Zed,Windsurf,WarpиAntigravityinstall path остаётсяstdio-ориентированным; - skills устанавливаются для Claude Code, Codex, Gemini CLI, Cursor, Windsurf, Warp и Antigravity; для Zed MCP registration без skills surface;
- Claude Desktop / Cowork получает workflows через MCP prompts (без
SKILL.md); stdioавтоматически согласует framing междуContent-Lengthи JSONL;rootscapability:tools/listрекламируетyacli.roots.list,notifications/roots/list_changedинвалидирует кеш;- HTTP SSE:
POST /mcpсAccept: text/event-stream— nestedroots/list+ финальный result; yacli mcp installне копирует секреты в клиентские конфиги;- обычные текстовые MCP-клиенты работают без UI.
По умолчанию yacli печатает JSON. Для табличного вывода:
yacli --format table mail listСкрытая команда guide для агентских обвязок:
yacli guide
yacli guide --topic mail| Платформа | Путь |
|---|---|
| macOS | ~/Library/Application Support/yacli |
| Linux | ~/.config/yacli |
| Windows | %APPDATA%\yacli |
export YACLI_CONFIG_DIR=/path/to/config-dir # переопределить каталогstatusпоказывает, какие службы подключены у текущей учётной записи;- если OAuth-токен Почты или Диска истёк, достаточно снова выполнить
yacli login; mail forwardпересылает письмо вместе с обычными вложениями и inline-файлами;disk public downloadне перезаписывает существующий файл без--force.
cargo build --workspace
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings