Install
$ agentstack add skill-dewil-claude-toolkit-mymeet-snapshot ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo 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.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
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 →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.
Что делает скрипт (модель)
GET /api/workspaces/active/all-meetings(пагинацияpage/perPage) - список встреч аккаунта.- Аккаунт mymeet общий, встреч много и не только этого проекта. Фильтр - whitelist по правилам: title встречи матчится подстроками из
rules[].match; первое подошедшее правило задает папку (rules[].dest). - Подошла под правило + статус не "в обработке/ошибка" (готовы и
processed, иnew) + есть дата -> качает MD (GET /api/storage/download?format=md) в//ГГГГ-ММ-ДД.md(коллизия в один день ->-2,-3). - НЕ подошла ни под одно правило -> в review-файл (
/_mymeet-review.txt) строкойmeeting_id | дата | title. Человек глазами решает: проектную - добавить паттерн / дернуть вручную, чужую - игнорировать. - Что уже видел - помнит в
/_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
- Залогиниться в mymeet.ai.
- Settings -> API key (
https://app.mymeet.ai/ru/settings/api-key). - Скопировать ключ. Доступно на тарифах 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.
Жесткие правила
- auth.json - НЕ в проектную папку. Проект на Yandex.Disk; утечка api_key в облако недопустима. Только
~/.config/mymeet-snapshot/(локально на устройство). - api_key - секрет. В
.mymeet-snapshot.json, который коммитится, ключа быть не должно. - Whitelist, не pull-all. Аккаунт общий; качать все подряд нельзя. Непроектное - в review, не на диск.
- 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.
- Author: dewil
- Source: dewil/claude-toolkit
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.