Arcmira: поиск по расшифровкам YouTube
Дайте своему ИИ возможность находить, кто и что сказал, с указанием временных меток, выяснять, какие темы обсуждают в видео и трансляциях, а также отличать органические рекомендации от рекламных интеграций.
Arcmira · Документация API · Схема OpenAPI · Настройка MCP
Подключите свой ИИ
Скопируйте эту команду в своего агента для программирования:
Fetch and execute the appropriate instructions to set me up for Arcmira from https://arcmira.com/agent-setup/prompt.md
Для Claude, ChatGPT, Cursor и других MCP-клиентов используйте https://mcp.arcmira.com/mcp и войдите в Arcmira. Настройка для разных хостов · Документация · Сайт · Плагин и навыки
Попробуйте запросы: «Какие бренды спонсируют и TBPN, и All-In Podcast?» или «Найди, что Сэм Альтман говорил об ИИ-агентах, со ссылками на фрагменты с временными метками».
Результаты охватывают видео, добавленные в индекс. Определение говорящих и классификация упоминаний как спонсорских или органических могут быть неполными или ошибочными — проверяйте информацию по ссылкам на источники. Действуют ограничения тарифного плана.
Оставить отзыв о плагине · Обновить установленные навыки
Подключение
Есть два способа подключения. Хосты, поддерживающие спецификацию авторизации MCP, позволяют войти в систему; остальные передают ключ.
Войдите через хост. Добавьте https://mcp.arcmira.com/mcp, не указывая ключ. Сервер отвечает кодом 401 и запросом OAuth-авторизации. Хост регистрируется на api.arcmira.com, открывает arcmira.com для входа и предоставления согласия, а затем подключается с токеном, содержащим разрешённые вами права. Токены обновляются автоматически. Отозвать доступ хоста можно в разделе Settings, Connected apps.
claude mcp add --transport http --scope user arcmira https://mcp.arcmira.com/mcp
codex mcp add arcmira --url https://mcp.arcmira.com/mcp
В Claude Desktop, claude.ai, ChatGPT и Cursor добавьте URL как пользовательский коннектор или MCP-сервер без заголовков и следуйте инструкциям для входа. Инструкции для отдельных хостов доступны по адресу https://arcmira.com/agent-setup.
Передайте ключ. Клиенты, не поддерживающие вход через хост, вместо этого передают bearer-токен, и сервер пропускает OAuth.
Ключ аккаунта (arc_sk_...) можно получить на https://arcmira.com. Результаты каждого инструмента зависят от тарифа и разрешений. Если у вас нет аккаунта и доступа к браузеру, зарегистрируйтесь через API. Сначала отправьте адрес электронной почты, затем верните шестизначный код из письма.
curl -X POST "https://api.arcmira.com/v1/signups?src=mcp-tool" \
-H 'Content-Type: application/json' \
-d '{"email":"agent@example.com"}'
curl -X POST "https://api.arcmira.com/v1/signups/verify" \
-H 'Content-Type: application/json' \
-d '{"email":"agent@example.com","code":"482913"}'
claude mcp add --transport http --scope user arcmira https://mcp.arcmira.com/mcp --header "Authorization: Bearer $ARCMIRA_API_KEY"
{
"mcpServers": {
"arcmira": {
"url": "https://mcp.arcmira.com/mcp",
"headers": { "Authorization": "Bearer arc_sk_..." }
}
}
}
В теле ответа 401 вызов регистрации находится в error.data.unlock.action. Благодаря этому агент, который не может выполнить вход, сможет создать аккаунт и подключиться повторно. Для обнаружения параметров OAuth используйте https://mcp.arcmira.com/.well-known/oauth-protected-resource: этот адрес указывает сервер авторизации. Адрес https://api.arcmira.com/.well-known/oauth-authorization-server содержит список его конечных точек.
| Инструмент | Входные данные | Что возвращает |
|---|---|---|
arcmira_describe | topic? | Справочник по клиенту arcmira: правила для идентификаторов, ответы на вопросы с помощью каждого метода, аргументы и возвращаемые поля всех методов, девять разобранных примеров программ, особенности, из-за которых можно не получить ответ, правила расходования бюджета и работы мониторов, коды ошибок и ссылки на документацию. Объём — около 24 000 символов; параметр topic ограничивает справочник одним методом и примерами к нему. Не расходует средства. |
arcmira_execute_read | code | Вывод программы и возвращаемое значение. Код — тело асинхронной функции, в которой доступны arcmira и ArcmiraError. Инструмент выполняет чтение, в том числе транскриптов Premium, и обращается к мониторам пользователя. Ограничения: 30 секунд, 40 вызовов API и не более 12 000 символов вывода суммарно, 3 000 на строку и 100 элементов в массиве. |
arcmira_execute_write | code | Возвращает то же, что и arcmira_execute_read, а также позволяет изменять данные аккаунта: arcmira.monitors.create, arcmira.monitors.update (включая paused), arcmira.monitors.addEntities, arcmira.monitors.addName и arcmira.monitors.attachTrackers. Ничего не удаляет. |
arcmira_feedback | category, note, request_id?, call_id? | Отправляет один запрос POST /v1/feedback типа experience. Для category допустимы значения wrong_entity, bad_data, missing, slow, confusing или other; в note укажите, что произошло. Возвращает идентификатор отзыва. |
Для каждого инструмента также можно указать необязательный параметр intent длиной не более 300 символов — краткое описание запроса пользователя. Если хост его не передаёт, это ничего не меняет. См. раздел What we log.
Только arcmira_describe помечен как доступный только для чтения. Оба программных инструмента могут запускать транскрибирование Premium, которое расходует кредиты из плана, а затем бюджет по факту использования, поэтому ни один из них не является доступным только для чтения. Изменять данные может только arcmira_execute_write: он способен перезаписывать настройки мониторов и приостанавливать их. Чтение Premium только добавляет данные. Оба инструмента могут запрашивать любые общедоступные видео и имеют аннотации открытого мира. Отправка отзыва добавляет запись, не изменяя существующие данные. Эти метки описывают возможные эффекты; название execute_read указывает на уровень доступа клиента, а не гарантирует отсутствие побочных эффектов.
Платные чтения сначала расходуют кредиты из плана, а затем бюджет по факту использования, заданный на панели управления. Этот бюджет и является разрешением на расходование средств, поэтому агент никогда не запрашивает сумму в центах. Если план или бюджет блокирует чтение (spend_limit_exceeded, quota_exceeded или ограничение плана), агент сообщает пользователю, что нужно увеличить бюджет по факту использования на странице https://arcmira.com/dashboard/spending или перейти на другой план на странице https://arcmira.com/pricing, и добавляет ссылку unlock.url из ответа с отказом.
Транскрипт Premium — это одно чтение через arcmira_execute_read:
const t = await arcmira.transcript("cdLeJU_1UH8", { quality: "premium" });
return t.state === "ready" ? t.lines : { state: t.state, eta_seconds: t.eta_seconds, note: t.note };
Если для видео ещё нет транскрипта, запрос GET /v1/transcripts/{video_id}?quality=premium запускает его создание, расходуя кредиты из плана, а затем бюджет по факту использования. В ответ возвращается 202 с заданием и заголовком Retry-After. Клиент повторяет чтение по истечении Retry-After, пока не пройдут 22 секунды с начала программы; это общее время ожидания для всех чтений Premium в одной программе. Повторное чтение не расходует кредиты дважды. Если по истечении этого времени статус всё ещё pending, результат содержит eta_seconds, а повторное чтение в следующей программе вернёт строки транскрипта. Если транскрибирование завершилось ошибкой, возвращается state со значением failed или refunded и причиной. Новая попытка не запускается, если не передан параметр retry: true; агент отправляет его только по просьбе пользователя. Если план не поддерживает Premium, возникает ошибка paid_plan_required. Если чтение блокирует бюджет, возникает ошибка spend_limit_exceeded или quota_exceeded, а расчёт стоимости передаётся в поле quote ошибки. Транскрипт Premium использует кредиты для всего видео: 75 строк на каждые 15 минут и четыре кредита за строку. Параметры start и end не уменьшают стоимость. Метод arcmira.quote(video) бесплатно показывает количество кредитов.
Результаты, которые пусты, содержат ошибку или усечены, а также ответы resolve со значением ask завершаются отдельной строкой feedback с указанием вызова: If this was wrong, slow, or missing for the user, send one arcmira_feedback with call_id mcpc_....
Методы клиента соответствуют командам CLI arcmira: у них одинаковые названия, а флаги передаются как параметры. Так MCP, CLI и SDK используют единый набор терминов:
| Метод | Вызывает | Используйте для |
|---|---|---|
arcmira.resolve(q, { type?, context?, limit? }) | GET /v1/entities/resolve | Преобразования имени, @handle, URL или идентификатора UC в один из трёх ответов: best, suggested (с reason и evidence) или ask с вариантами |
arcmira.search({ query, channelIds?, about?, speakerIds?, kind?, entityIds?, after?, before?, source?, limit? }) | GET /v1/search | Поиска фрагментов речи по теме, об объекте или произнесённых человеком, с датами и ссылками для просмотра |
arcmira.mentions({ entityId, channelId?, after?, before?, limit?, cursor? }) | GET /v1/mentions | Проверки, упоминал ли X объект Y, а также определения первого и последнего упоминания |
arcmira.momentum(entityId) | GET /v1/entities/{id}/momentum | Сравнения последних 30 дней с предыдущими 30 днями и получения оценки |
arcmira.sponsors(channelId, { minAdReads?, status?, limit? }) | GET /v1/channels/{id}/sponsors | Поиска постоянных спонсоров одного шоу |
arcmira.recommendations(entityId, { kind?, channelId?, after?, before?, limit?, cursor? }) | GET /v1/recommendations?entity_id= | Определения, кто рекомендует объект — в рекламном или обычном контексте, — с цитатой |
arcmira.episodes(channelId, { limit?, after?, before? }) | GET /v1/channels/{id}/videos | Получения последних проиндексированных выпусков с video_id, который используется другими методами |
arcmira.transcript(videoIdOrUrl, { quality?, language?, timestamps?, start?, end? }) | GET /v1/transcripts/{video_id}; пока транскрибирование Premium не завершено, чтение повторяется по Retry-After | Получения транскрипта видео: субтитров или транскрипта Premium, целиком или за указанный промежуток |
arcmira.occurrences({ channelIds?, entityIds?, videoIds?, types?, mode?, after?, before?, limit? }) | GET /v1/mentions/counts | Проверки, о чём говорят шоу, чем они делятся и какие объекты упоминаются в отдельном выпуске |
arcmira.quote(videoIdOrUrl) | GET /v1/transcripts/{video_id}/quote | Бесплатного расчёта для транскрипта Premium всего видео: количества строк, кредитов и суммы в центах, если применяется бюджет по факту использования |
arcmira.status({ channelId? }) | GET /v1/channels/{id}/coverage, GET /v1/me | Проверки покрытия и даты индексации либо ключа, плана, кредитов и бюджета по факту использования |
arcmira.monitors.list() | GET /v1/monitors | Просмотра мониторов пользователя, настроек доставки и количества отслеживаемых объектов |
arcmira.monitors.trackers(monitorId) | GET /v1/monitors/{id}/trackers | Проверки объектов, за которыми уже следит монитор |
arcmira.monitors.create({ name, notify_frequency, notify_emails?, notify_slack?, ... }) | POST /v1/monitors | Создания монитора. Только инструмент записи |
arcmira.monitors.update(monitorId, { ..., paused? }) | PATCH /v1/monitors/{id} | Изменения настроек доставки или приостановки монитора. Только инструмент записи |
arcmira.monitors.addEntities(monitorId, entityIds, { personMatchMode? }) | POST /v1/monitors/{id}/entities | Добавления в монитор до 90 идентификаторов объектов за один вызов: для каждого идентификатора повторно использует или создаёт отслеживаемый объект и добавляет его в монитор. Если идентификатор нельзя добавить, указывается причина (entity_not_found, entity_type_not_trackable, tracker_limit_reached, tracked_in_another_monitor). Только инструмент записи |
arcmira.monitors.addName(monitorId, [{ name, type, personMatchMode? }]) | POST /v1/monitors/{id}/entities с names | Добавления в монитор до 90 точных названий до их индексации (шоу указывается по идентификатору UC); возвращает результат для каждого названия, как и addEntities. Только инструмент записи |
arcmira.monitors.attachTrackers(monitorId, trackerIds) | POST /v1/monitors/{id}/trackers | Переноса отслеживаемых объектов из другого монитора после согласия пользователя. Только инструмент записи |
arcmira.integrations.slack() | GET /v1/integrations/slack | Просмотра подключённых рабочих пространств Slack с идентификатором и каналом по умолчанию, в который монитор отправляет уведомления |
Методы arcmira.today() и arcmira.daysAgo(n) возвращают даты ISO на основе серверного времени и используются для задания временных диапазонов. Диапазоны полуоткрытые, как и в API: after — первый учитываемый день, а before — первый неучитываемый день. Например, август задаётся так: { after: "2026-08-01", before: "2026-09-01" }. Каждый результат с датами содержит указанный диапазон в поле window: { after, before }. Названия параметров соответствуют клиенту, а поля запросов и ответов — API. Поэтому монитор использует notify_frequency: это поле возвращает monitors.list().
В фильтрах допустимы только идентификаторы в исходном виде. Если вместо идентификатора указано имя, возникает ошибка id_required ещё до сетевого вызова; в сообщении указано, как это исправить. Сначала выполните разрешение имени, затем запрос. Метод resolve возвращает best (название означает, что подходит одна запись), suggested (одна запись выделяется на фоне остальных; укажите, что вы выбрали её как наиболее вероятный вариант, и объясните почему) или ask (подходят несколько вариантов; предложите пользователю выбрать):
const r = await arcmira.resolve("Linear");
const e = r.best ?? r.suggested;
if (!e) return { ask: r.ask };
const m = await arcmira.momentum(e.id);
return { entity: e.name, id: e.id, assumed: Boolean(r.suggested), why: r.suggested?.evidence ?? null, verdict: m.verdict, last30: m.volume.mentions_30d, prior30: m.volume.mentions_prior_30d, as_of: m.as_of };
Примеры запросов после подключения сервера:
-
Какие бренды спонсируют и TBPN, и подкаст All-In Podcast?
-
Насколько сейчас популярен Linear, инструмент для управления проектами, в аудиоконтенте?
-
Найди фрагмент TBPN за последние 90 дней, где кто-нибудь говорит о стейблкоинах, и процитируй его.
-
Кто говорит в первую минуту последнего эпизода TBPN согласно расшифровке Premium?
-
Сколько эпизодов TBPN упоминали Cursor в июле и сколько — в августе?
Подходящие идентификаторы для начала: TBPN — канал UC-DRzaGnL_vtBUpCFH5M0tg, All-In Podcast — UCESLZhusAkFfsNsApnjF_Cg, Ramp — ent_14.
Песочница
arcmira_execute_read и arcmira_execute_write запускают программу в новом изолированном экземпляре Dynamic Worker. Единственный доступный ему сетевой канал — исходящий прокси родительского процесса. Прокси добавляет к пересылаемому запросу учётные данные вызывающей стороны, поэтому программа никогда не получает ключ. Запросы за пределами списка разрешённых инструментом отклоняются с ошибкой outbound_refused:
-
arcmira_execute_read:GET https://api.arcmira.com/v1/*. Транскрибация Premium начинается при вызовеGETдля транскрипта. -
arcmira_execute_write: набор методов чтения, а такжеPOSTиPATCHдля/v1/monitorsи/v1/trackers. МетодDELETEи ротация секрета вебхука недоступны.
Прокси проверяет запросы внутри Worker, поэтому обычный вызов fetch() получает тот же ответ, что и метод клиента. Если вызвать метод записи через arcmira_execute_read, до отправки запроса будет выброшена ошибка write_tool_required. На выполнение программы отводится 5 секунд процессорного времени, инструмент ожидает результат не более 30 секунд, а клиент ограничивает число вызовов API до 40 — при превышении возникает ошибка call_budget. Итоговый вывод ограничен 12 000 символами: не более 3 000 символов на строку и 100 элементов в массиве. Для каждого обрезанного массива указывается его имя в truncated_arrays, а в строке recovery описывается, как получить все строки. Синтаксическая ошибка возвращается как syntax_error с описанием правила для тела функции; выброшенная ошибка — как program_error с её сообщением.
Результат представляет собой корректный JSON с ограниченным объёмом данных: сначала идут ok и value либо error, затем фактическое число calls, сведения о rate_limit и api_build, данные об усечении и ограниченные по объёму журналы. Для больших результатов сохраняются поля продолжения и восстановления данных. Метаданные выполнения учитываются в тех же ограничениях. При тайм-ауте указывается calls: null и outcome_uncertain: true: уже запущенные запросы на чтение могут завершиться и расходовать строки. Если при аутентификации возникает ошибка 429/503, клиентам предлагается повторить запрос с теми же учётными данными; переподключение требуется только при недействительных учётных данных.
Ограничения доступа
Если программа сталкивается с ограничением доступа, она выбрасывает ArcmiraError с полями ошибки API, а инструменты выполнения возвращают её как ERROR с isError: true:
{"ok":false,"error":{"code":"recommendations_not_enabled","message":"Sponsor recommendations require Pro.","gate":"plan"},"calls":1,"outcome_uncertain":false}
Ориентируйтесь на поле code, передавайте пользователю значение unlock.url, а при rate_limited соблюдайте задержку, указанную в retry_after_seconds. Если в ответе со статусом 200 часть данных недоступна (например, текст транскрипта Premium, разделение платных и органических упоминаний или спонсоры за пределами бесплатного лимита), возвращается обычный результат с тем же содержимым в поле access. Полный каталог ошибок доступен по адресу https://arcmira.com/docs/errors.
Каждый результат, в том числе при ограничении доступа, содержит сведения об остатке бюджета ключа после вызова в _meta["arcmira.com/rate_limit"] в формате { "limit": 20, "remaining": 17, "reset": 1788819360 }. Данные берутся из заголовков RateLimit API. В _meta["arcmira.com/build"] указаны server, deploy, api (сборка API, обработавшая запрос) и client (имя хоста из рукопожатия, переданное API в заголовке x-arcmira-client).
Какие данные мы журналируем
Каждый вызов инструмента записывается в продуктовую аналитику Arcmira (PostHog) и связывается с аккаунтом, от имени которого он был выполнен. Это помогает понять, как используются инструменты, и исправлять ошибки. Для каждого вызова создаётся одна запись со следующими данными:
-
название инструмента, имя и версия хоста, версия сервера и длительность вызова;
-
входные данные: текст программы для любого из инструментов выполнения (первые 4 000 символов), тема
arcmira_describeлибо категория и заметкаarcmira_feedback; -
intent, если агент его передал; -
результат выполнения, но не сами данные: успешное выполнение или код ошибки, размер результата, сведения об усечении и маршруты API, использованные при вызове (
GET /v1/search, без строки запроса).
Перед сохранением API заменяет всё, что похоже на учётные данные или адрес электронной почты (arc_-ключи, токены Bearer, ключи sk-, адреса), на [redacted]. Результаты, текст транскриптов и журналы, выведенные программой, никогда не записываются. Вызовы без действительных учётных данных не журналируются. Запись отправляется после получения результата, поэтому журналирование не задерживает ответ и не влияет на него; если запись не удаётся отправить, она отбрасывается.
Переход с версии 0.9
Версия 0.10 соответствует обновлённому API v1. Если программа обращается к старым именам полей, она получает undefined; документация и навыки содержат новые названия.
-
В списках теперь указывается имя коллекции:
mentions().mentions,recommendations().recommendations(раньше —data). Значениеclassу рекомендации может бытьsponsored,organicилиmention(раньше использовалось полеmention_classсо значениямиad_read,endorsement,mention). -
Поля результатов поиска записываются в snake_case:
video_id,video_title,published_at,start_seconds,watch_url,channel_name,cite_line. Полеkindпринимает значениеsponsored,organicилиmentionлибо массив этих значений. -
Во всех методах
beforeобозначает первый исключённый день (раньше — последний включённый день). Каждый результат с датами теперь содержит полеwindow. -
Поля мониторов записываются в snake_case в обоих направлениях:
create({ name, notify_frequency }),update(id, { paused: true }), аmonitors.list()возвращаетpaused,notify_frequency,tracker_count. -
Метод
arcmira.status({ jobId })удалён: если чтение Premium ещё выполняется, оно возвращает идентификатор задания иeta_seconds. После завершения то же чтение возвращает строки транскрипта. -
Добавлен метод
arcmira.monitors.addName(monitorId, [{ name, type }]): он позволяет указать точные названия до их индексации. -
Сбой транскрибации Premium считается окончательным: поле
stateпринимает значениеfailedилиrefunded, а сведения об ошибке содержатся вjob.errorилиlast_attempt. Вызовarcmira.transcript(video, { quality: "premium", retry: true })запускает транскрибацию заново и повторно расходует кредиты — только по запросу пользователя.
Переход с версии 0.8
Метод describe заменён на arcmira_describe, execute — на arcmira_execute_read, а prepare_transcript теперь выполняет чтение Premium через arcmira.transcript(video, { quality: "premium" }) внутри arcmira_execute_read. Если хост использует сохранённый старый список инструментов и вызывает прежнее имя, он получает ошибку tool_retired с названием замены. Параметр max_on_demand_cents больше не принимается: расходы по запросу определяются бюджетом аккаунта.
Переход с версии 0.6.0
Десять инструментов (resolve_entities, search_transcripts, list_mentions, entity_momentum, count_occurrences, list_episodes, list_sponsors, list_recommendations, index_status, get_transcript) удалены из tools/list. Если хост использует сохранённый старый список и вызывает один из них, он получает ошибку tool_retired с названием arcmira_describe. Каждому прежнему инструменту соответствует метод клиента: resolve_entities — arcmira.resolve, search_transcripts — arcmira.search, list_mentions — arcmira.mentions, entity_momentum — arcmira.momentum, count_occurrences — arcmira.occurrences, list_episodes — arcmira.episodes, list_sponsors — arcmira.sponsors, list_recommendations — arcmira.recommendations, index_status — arcmira.status, get_transcript — arcmira.transcript. Сокращённая запись recency заменена на arcmira.daysAgo(n).
Плагин
В plugins/arcmira собраны MCP URL и шесть навыков для Claude Code, Codex, Cursor, хостов Agent Plugins и Gemini CLI:
| Навык | Назначение |
|---|---|
arcmira | Общая процедура и правило работы с идентификаторами, соответствие навыков задачам и ссылка на arcmira_describe с описанием методов |
sponsor-research | Кто спонсирует шоу или какие шоу спонсирует бренд, как часто и с какого времени |
company-watch | Настройка монитора: названия сущностей и темы для отслеживания, сначала мониторы пользователя, затем желаемый способ доставки |
find-quotes | Точные цитаты с указанием говорящего и даты, ссылкой с временной меткой, а также началом и концом фрагмента |
person-research | Подготовка к интервью или встрече: выступления человека, его собственные слова и те, кто обсуждает его |
compare-shows | Сравнение двух шоу: размер, тематика, пересечения и общие спонсоры |
Каждый навык начинает работу с названий, а не идентификаторов: каждая программа находит сущность по имени, возвращает варианты ask, если подходят несколько сущностей и ни одна из них не выделяется, сообщает, когда сделала предположение, и указывает, какую сущность использовала. В конце каждого навыка предлагается сохранить найденные данные в монитор, а также выводится строка для обратной связи. Навыки создаются из src/reference.ts и src/skills.ts с помощью scripts/build-skill.ts. CI завершится ошибкой, если файл не соответствует исходным данным или программа вызывает метод, отсутствующий в документации; команда pnpm examples:check запускает каждую программу в production.
claude plugin marketplace add arcmira/mcp
claude plugin install arcmira@arcmira
Актуальность
Arcmira выпускает обновления каждую неделю. Не отключайте автообновление.
-
Для MCP-сервера ничего делать не нужно. Он удалённый: при подключении хосты загружают его инструменты и инструкции, а
arcmira_describeпри каждом вызове возвращает справочный материал с сервера, начиная с номера версии. MCP-сервер всегда актуален. -
Плагин Claude Code. Для стороннего marketplace автообновление по умолчанию отключено. Включите его: выполните
/plugin, откройте Marketplaces, выберитеarcmiraи нажмите Enable auto-update. Или задайте параметр в~/.claude/settings.json:
{ "extraKnownMarketplaces": { "arcmira": { "source": { "source": "github", "repo": "arcmira/mcp" }, "autoUpdate": true } } }
Обновить сейчас: claude plugin update arcmira@arcmira.
-
Плагин Codex. Выполните
codex plugin marketplace upgrade arcmira, затем перезапустите Codex. -
Навыки, установленные командой
npx skills add arcmira/mcp. Выполнитеnpx skills update.
При каждом выпуске обновляется версия в манифесте каждого плагина — это проверяется тестом. Claude Code обновляет только плагины с изменившейся версией.
Gemini CLI
Установите удалённое подключение и основной справочный материал Arcmira из этого репозитория:
gemini extensions install https://github.com/arcmira/mcp
Корневой файл gemini-extension.json указывает на тот же удалённый MCP и загружает навык arcmira как файл контекста, как и пакет плагина. Авторизуйтесь через поток авторизации MCP. Корневое расширение не устанавливает отдельно пять дополнительных навыков для задач.
Разработка
pnpm install
pnpm dev # wrangler dev on :8790 with a local Worker Loader
pnpm test # node:test, sandbox programs run under a fake loader
pnpm typecheck
pnpm manifest:check # every client call matches the live OpenAPI document
pnpm skill:check # every plugins/arcmira/skills/*/SKILL.md matches src/reference.ts and src/skills.ts
ARCMIRA_KEY=arc_sk_... pnpm examples:check # every worked program and read task-skill program runs against production
pnpm sandbox:check # src/sandbox/client-source.ts matches src/sandbox/client.js
ARCMIRA_KEY=arc_sk_... node --experimental-strip-types scripts/smoke.ts http://localhost:8790/mcp
src/reference.ts — основной источник инструкций: из него формируются текст arcmira_describe, инструкции сервера и навык arcmira.
Copyright Arcmira. Все права на сервер защищены (см. LICENSE); plugins/arcmira распространяется по лицензии Apache-2.0.