AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Mymeet Snapshot

skill-dewil-claude-toolkit-mymeet-snapshot · by dewil

Настроить или починить локальное зеркало расшифровок встреч из mymeet.ai (mymeet-snapshot) на устройстве. Использовать когда пользователь говорит "настрой mymeet-snapshot", "подключи mymeet к проекту", "где взять api-ключ mymeet", "mymeet-snapshot тянет чужие встречи", "встречи кладутся не в ту папку", или когда первый запуск scripts/mymeet-snapshot.py упал на авторизации/конфиге.

No reviews yet
0 installs
8 views
0.0% view→install

Install

$ agentstack add skill-dewil-claude-toolkit-mymeet-snapshot

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-dewil-claude-toolkit-mymeet-snapshot)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
21d ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Mymeet Snapshot? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

mymeet-snapshot

Скилл для первой настройки или починки локального snapshot расшифровок встреч из mymeet.ai через REST API. Скрипт тянет MD-отчеты проектных встреч и раскладывает по папкам Встречи/ - для чтения, написания .summary.md и работы без захода в web-UI mymeet.

Скрипт-эталон лежит в каноне в scripts/mymeet-snapshot.py (top-level папка scripts/, не внутри папки скилла). Bootstrap-03-management копирует его в scripts/ в корне проекта - оттуда же, где его ожидает запуск (python3 scripts/mymeet-snapshot.py).

Архитектура повторяет telegram-snapshot / redmine-snapshot: общий секрет на устройстве, проектные указатели - в репозитории проекта.

Когда применять

  • Пользователь впервые настраивает scripts/mymeet-snapshot.py на новом устройстве.
  • Подключается новый проект - нужно создать .mymeet-snapshot.json и проверить, что общая авторизация на устройстве уже есть.
  • Скрипт тянет чужие (непроектные) встречи или кладет встречи не в ту папку - надо настроить правила rules.
  • Первый запуск падает на авторизации (401) или на неизвестных полях ответа.

Когда НЕ применять

  • Обычный регулярный pull новых встреч - это просто Bash-команда (python3 scripts/mymeet-snapshot.py), отдельный скилл не нужен.
  • Анализ самих расшифровок - они уже лежат .md в Встречи/, читай напрямую.
  • Чтение истории чатов - это telegram-snapshot. Задачи - redmine-snapshot.

Что делает скрипт (модель)

  1. GET /api/workspaces/active/all-meetings (пагинация page/perPage) - список встреч аккаунта.
  2. Аккаунт mymeet общий, встреч много и не только этого проекта. Фильтр - whitelist по правилам: title встречи матчится подстроками из rules[].match; первое подошедшее правило задает папку (rules[].dest).
  3. Подошла под правило + статус не "в обработке/ошибка" (готовы и processed, и new) + есть дата -> качает MD (GET /api/storage/download?format=md) в //ГГГГ-ММ-ДД.md (коллизия в один день -> -2, -3).
  4. НЕ подошла ни под одно правило -> в review-файл (/_mymeet-review.txt) строкой meeting_id | дата | title. Человек глазами решает: проектную - добавить паттерн / дернуть вручную, чужую - игнорировать.
  5. Что уже видел - помнит в /_mymeet-index.json, повторно не качает.

JSON-отчет по умолчанию НЕ качается (для рутины хватает MD, на объемах JSON - оверхед). По требованию: python3 scripts/mymeet-snapshot.py --json - положит .json рядом с MD этой встречи. Отдельного -deltas скрипта нет: новые встречи = то, что прогон только что скачал (печатается в конце), а не diff мутирующего файла, как у telegram/redmine.

Режимы (основной - точечный по id; аккаунт mymeet общий на проекты, поэтому балк по умолчанию выключен):

  • --pull - основной режим: точечно скачать одну встречу по правилам. Принимает и голый meeting_id, и URL встречи целиком (id берется из адреса - его видно в адресной строке mymeet). Рабочий цикл: пользователь правит имена спикеров на mymeet -> дает id/URL -> --pull.
  • --json - добрать JSON конкретной встречи (тоже принимает URL).
  • --list - dry-run: что нашлось бы и куда легло, без скачивания.
  • --seed - baseline: отметить все текущие встречи аккаунта как виденные, ничего не качая. Нужен на старте, если история уже скачана вручную: иначе балк создаст дубли существующих файлов (-2/-3).
  • --all - балк: забрать ВСЕ новые проектные встречи разом (имена сырые, как распознал mymeet). По умолчанию НЕ запускается - голый прогон без аргументов печатает справку, чтобы на общем мульти-проектном аккаунте случайный запуск не нагреб чужое.

Формат ответа API (подтверждено живым прогоном 2026-06-25): список - GET all-meetings -> {followups: [...], total}; у встречи поля id, name (title), status (new/processed/...), date в RFC 2822 ("Thu, 25 Jun 2026 12:02:06 GMT"). Скрипт читает их толерантно (перебор *_KEYS), дату парсит и ISO, и RFC 2822, и epoch.

Алгоритм настройки

Шаг 1. Проверить общую авторизацию устройства

ls ~/.config/mymeet-snapshot/

Должен быть auth.json (apikey, опционально baseurl) с правами 600. Если файла нет - шаг 2.

Шаг 2. Получить API-ключ mymeet

  1. Залогиниться в mymeet.ai.
  2. Settings -> API key (https://app.mymeet.ai/ru/settings/api-key).
  3. Скопировать ключ. Доступно на тарифах Lite, Pro, Business.

Шаг 3. Заполнить auth.json

mkdir -p ~/.config/mymeet-snapshot
chmod 700 ~/.config/mymeet-snapshot

Содержимое ~/.config/mymeet-snapshot/auth.json:

{
  "api_key": "",
  "base_url": "https://backend.mymeet.ai",
  "use_curl": true
}
  • base_url можно опустить - дефолт https://backend.mymeet.ai.
  • use_curl - поднять в true, если Python падает на SSL (CERTIFICATE_VERIFY_FAILED). Сборка python.org на macOS не имеет CA-бандла и не проверяет даже валидный публичный сертификат backend.mymeet.ai; curl берет сертификат из системного хранилища. На практике на macOS нужен true.
chmod 600 ~/.config/mymeet-snapshot/auth.json

Шаг 4. Подключить проект (.mymeet-snapshot.json)

В корне проекта - .mymeet-snapshot.json:

{
  "meetings_root": "Встречи",
  "rules": [
    { "match": ["синк", "заказчик"], "dest": "с заказчиком/{YYYY}/{MM}" },
    { "match": ["дейли", "дейлик", "команд"], "dest": "с командой/{YYYY}/{MM}" },
    { "match": ["1-1", "one-on-one"], "dest": "1-1/_inbox" }
  ],
  "review_file": "Встречи/_mymeet-review.txt"
}
  • meetings_root - корневая папка встреч относительно корня проекта.
  • rules - список {match: [подстроки title], dest: путь-шаблон}. Первое правило, чья подстрока нашлась в title (регистронезависимо), задает папку. dest поддерживает {YYYY}/{MM}/{DD} из даты встречи.
  • review_file - куда писать непроектные/нераспознанные встречи.

Файл - не секрет (ключа нет), коммитится.

> Важно про title. mymeet галлюцинирует в шапке (путает имена/стороны), поэтому матчинг по title не стопроцентный. Это осознанный компромисс: вместо тихого пропуска все непонятное падает в review-файл, где видно глазами. Не вылизывай правила до идеала - расширяй по мере того, как реальные встречи попадают в review. 1-1 по title в папку конкретного сотрудника не развести - кладем в 1-1/_inbox, дальше руками.

Шаг 5. Dry-run, потом первый pull

Сначала всегда --list - покажет, что API реально отдает и куда ляжет, ничего не качая:

cd 
python3 scripts/mymeet-snapshot.py --list

Сверь: проектные встречи распознались и нацелены в верные папки, чужое ушло бы в review. Если поля даты/title/id читаются неверно (видно по "дата?" или пустым title) - см. "Типичные ошибки". Когда раскладка верная:

python3 scripts/mymeet-snapshot.py

Зависимостей нет - чистый stdlib (urllib).

Шаг 6. Типичные ошибки

ssl.SSLCertVerificationError: CERTIFICATE_VERIFY_FAILED. Python не видит CA-бандл (типично для python.org-сборки на macOS). В ~/.config/mymeet-snapshot/auth.json выставить "use_curl": true - запросы пойдут через curl, который берет сертификат из системного хранилища. Перезапустить.

401 Unauthorized. Неверный/просроченный api_key - перевыпустить (шаг 2). Проверить тариф (нужен Lite/Pro/Business).

В --list у всех "дата?". В ответе списка поле даты названо не так, как перебирает скрипт (DATE_KEYS). Посмотреть сырой ответ: curl -H "X-API-KEY: " "https://backend.mymeet.ai/api/workspaces/active/all-meetings?page=0&perPage=5", найти ключ с датой, добавить его первым в DATE_KEYS в скрипте (и оформить как upstream-правку в канон).

Пустые title / не тот id. Аналогично - проверить реальные имена полей в сыром ответе и поправить TITLE_KEYS / ID_KEYS.

Все ушло в review, хотя встречи проектные. Правила rules[].match не совпали с реальными title - расширить подстроки под то, как mymeet называет встречи (видно в review-файле).

MD пришел пустой / это JSON. download?format=md мог вернуть не файл, а JSON со ссылкой на storage - скрипт это обрабатывает (следует по url/download_url/link). Если формат ответа иной - глянуть сырой ответ download и поправить download_md.

Жесткие правила

  1. auth.json - НЕ в проектную папку. Проект на Yandex.Disk; утечка api_key в облако недопустима. Только ~/.config/mymeet-snapshot/ (локально на устройство).
  2. api_key - секрет. В .mymeet-snapshot.json, который коммитится, ключа быть не должно.
  3. Whitelist, не pull-all. Аккаунт общий; качать все подряд нельзя. Непроектное - в review, не на диск.
  4. JSON - по требованию. Рутинно держим только MD. JSON (--json) - точечно, когда нужна программная обработка (word_timings/chapters).

Связанные файлы

  • scripts/mymeet-snapshot.py в корне проекта - pull MD проектных встреч по whitelist, --list (dry-run), --json (добор JSON).
  • ~/.config/mymeet-snapshot/auth.json - локальные credentials на устройство (apikey, baseurl). Не в проекте.
  • .mymeet-snapshot.json в корне проекта - проектные указатели {meetings_root, rules, review_file}. Не секрет.
  • /_mymeet-index.json - реестр уже скачанных встреч (что не качать повторно).
  • /_mymeet-review.txt - очередь непроектных/нераспознанных встреч на ручное решение.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.