AIKraft Agents

metalbear-co/mirrord

Запускай любой процесс на своей машине или в окружении AI-агента так, будто он является подом в вашем Kubernetes-кластере: с реальными переменными окружения, DNS, сетью и трафиком.

Инструменты⭐ 5 402Rustпоследний релиз: 3.285.0
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

mirrord — это инструмент, который позволяет запускать локальные процессы так, будто они работают в целевом подe Kubernetes, маршрутизируя трафик, файлы и переменные окружения через кластер.

Зачем нужен

Инструмент решает задачу разработки без необходимости деплоя кода в кластер, обеспечивая мгновенную обратную связь. Он позволяет писать и отлаживать код на локальной машине, используя реальные данные, сервисы и окружение из живого кластера, что ускоряет цикл разработки и упрощает end-to-end тестирование.

Что можно реализовать

  • Отладка локального кода с доступом к реальным переменным окружения и сервисам из подов Kubernetes
  • Использование AI-агентов (Claude Code, Cursor, Copilot) для генерации и проверки кода против реальных сервисов кластера без деплоя
  • Чтение и запись файлов, а также доступ к очередям сообщений из локального процесса через под в кластере
  • Быстрое тестирование изменений кода в условиях, максимально приближенных к продакшену, без риска для других пользователей кластера

Ключевые возможности

  • Маршрутизация сетевого трафика, файловых операций и переменных окружения между локальным процессом и подом Kubernetes
  • Интеграция с AI-кодинговыми агентами (Cursor, Claude Code, Codex CLI и др.) для работы с контекстом кластера
  • Наличие расширений для VS Code, IntelliJ и CLI-инструмента для удобного запуска
  • Возможность отключения части Linux-капбилити (CAP_NET_ADMIN, CAP_SYS_PTRACE и др.) для настройки безопасности

👤 Кому подойдёт: разработчики, работающие с Kubernetes, и команды, использующие AI-агентов для написания кода

Релизы

3.285.0minor
🕐 вчера · релиз на GitHub ↗

В mirrord 3.285.0 добавлена поддержка baggage, фильтрация таблиц в MySQL/MariaDB и улучшена работа с очередями.

  • Added: Добавлена настройка common.baggage в mirrord-up.yaml для задания опции baggage всем сервисам.
  • Added: В конфигурации копирования веток MySQL и MariaDB появился параметр exclude_tables для исключения таблиц.
  • Added: Очереди без фильтра теперь используют настройки MirrordSplitConfig целевого сервиса.
  • Fixed: Исправлено некорректное поведение при multi_cluster: false и метках на управляющем кластере.
  • Fixed: Схема конфигурации теперь корректно обрабатывает ветку Redis без указания location (по умолчанию remote).
3.284.0minor
🕐 3 дн назад · релиз на GitHub ↗

Добавлена ветвление БД и кастомные режимы в mirrord-up.yaml, исправлено падение прокси при reuse fd.

  • Added: Добавлена поддержка ветвления баз данных (db_branching) с режимами empty, schema, all и inherit в mirrord-up.yaml.
  • Added: Внедрены пользовательские режимы (custom modes) для гибкой настройки incoming и queues через mirrord-up.yaml.
  • Added: В mirrord.json добавлена поддержка feature.db_branches для указания режимов копирования веток БД.
  • Fixed: Исправлена потеря внутреннего соединения прокси слоя при повторном использовании низких файловых дескрипторов приложением.
  • Added: На Linux по умолчанию для OSS-пользователей включены experimental.hook_libc_syscall и experimental.old_glibc_support.
3.283.0minor
🕐 4 дн назад · релиз на GitHub ↗

Добавлена команда mirrord preview sync для синхронизации локального кода с превью-сервисами и обновлены apple-utils.

  • Added: Появилась команда mirrord preview sync, позволяющая запускать сервисы из mirrord-up.yaml с локальным кодом вместо собранных образов.
  • Added: Функция синхронизации автоматически загружает директории sync.files в под, переустанавливает зависимости при изменении и следит за правками через --watch.
  • Added: Добавлена команда mirrord preview status для отображения статуса синхронизации каждой сессии.
  • Обновлены встроенные утилиты apple-utils до версии v10.
3.282.0minor
🕐 6 дн назад · релиз на GitHub ↗

mirrord 3.282.0: экспериментальный отладочный режим, команда list для up-файлов, исправления локальных путей и обработки ошибок кластера.

  • Added: Добавлен экспериментальный режим отладки `mirrord up --debug <service>`, который приостанавливает сервис до подключения отладчика IDE.
  • Added: Появилась команда `mirrord up list` для вывода информации о сервисах из up-файла без обращения к кластеру, с поддержкой JSON-формата.
  • Fixed: Исправлено поведение локальных вызовов (stat, access) для путей выше рабочей директории, чтобы они не падали, если целевой сервис не имеет этих папок.
  • Fixed: Теперь корректно учитываются селекторы на основе выражений при выборе целевых подов.
  • Fixed: Устранена проблема с долгим ожиданием и пустым выводом при получении кластером ответа 503 от mirrord operator.
3.281.0minor
🕐 8 дн назад · релиз на GitHub ↗

Исправлена работа с не-UTF8 выводом и переменными окружения JDK, добавлена настройка лимита заголовков HTTP/2.

  • Fixed: mirrord up больше не падает при выводе не-UTF8 символов, корректно сообщая о краше сервиса.
  • Fixed: Исправлена обработка JDK_JAVA_OPTIONS: удалены javaagent, предотвращающие ошибки из-за несуществующих файлов.
  • Added: Добавлена настройка agent.http2_max_header_list_size для управления лимитом размера заголовков HTTP/2.
  • Added: Ошибки платных функций теперь указывают ключ конфигурации и план, а также отправляются операторам.
  • Fixed: Исправлены права доступа к локальным плейсхолдерам для удалённых файлов при отключённом use_dev_null.
3.280.0minorbreaking
🕐 9 дн назад · релиз на GitHub ↗

mirrord 3.280.0: добавлена поддержка кластеров Redis, улучшена диагностика glibc, удалено поле image из конфигурации.

  • Breaking: Удалено поле image из mirrord-up.yaml; теперь образы задаются через флаг --image или переменную MIRRORD_<SERVICE>_IMAGE.
  • Added: Удаленные ветки Redis теперь поддерживают режим кластера (cluster: true) для подключения клиентов Redis Cluster.
  • Added: На Linux при запуске в логи выводится информация о версиях glibc и ядра для упрощения диагностики проблем с хуками.
3.279.1patch
🕐 11 дн назад · релиз на GitHub ↗

Исправлена утечка подписки на порт при закрытии унаследованного сокета в дочернем процессе, созданном через vfork.

  • Fixed: Исправлено сохранение подписки на активный порт родителя, когда кратковременный дочерний процесс, созданный через vfork, закрывает унаследованный слушающий сокет.
3.279.0minor
🕐 12 дн назад · релиз на GitHub ↗

Добавлены команды mirrord preview up/down для управления средами и исправлен крах на macOS с libuv 1.53+.

  • Added: Добавлена команда mirrord preview up для запуска превью-окружений сервисов из mirrord-up.yaml.
  • Added: Добавлена команда mirrord preview down для удаления всех превью-окружений по ключу.
  • Added: В mirrord-up.yaml добавлено опциональное поле image для указания образа контейнера.
  • Fixed: Исправлен SIGSEGV на macOS при подключении к unix-сокету в приложениях с libuv 1.53+.
3.278.0minor
🕐 14 дн назад · релиз на GitHub ↗

mirrord 3.278.0: глобальный kube_context, проверка установщика, работа с AWS SSM и фиксы производительности.

  • Added: Глобальный kube_context из mirrord.json теперь используется по умолчанию для команд без явного контекста.
  • Added: Скрипт установки теперь проверяет целостность загрузок и поддерживает указание директории установки.
  • Added: Добавлена поддержка чтения параметров подключения к веткам БД из AWS SSM Parameter Store.
  • Fixed: Исправлены проблемы с многопоточностью в соединении layer<->intproxy, что улучшило производительность.
  • Fixed: Фикс именования БД при источнике URL и передача контекста K8s через браузерное расширение.
3.277.0minor
🕐 15 дн назад · релиз на GitHub ↗

Исправлена безопасность сертификатов, улучшена работа с оператором и базами данных, устранены ошибки выбора ресурсов.

  • Fixed: Обновлены библиотеки webpki и rustls для блокировки доверия к скомпрометированным центрам сертификации eMudhra.
  • Added: Добавлена команда mirrord operator signup для автоматической регистрации и получения API-ключа, что упрощает настройку для AI-агентов.
  • Added: mirrord up теперь запрашивает ветвление баз данных для сервисов в режимах split и mirror, позволяя общим сервисам использовать одну ветку.
  • Fixed: Исправлено определение исходного адреса соединения при передаче сокета удаленным слоем.
  • Added: mirrord operator install без флага --api-key теперь входит в MetalBear app и создает ключ организации, а не запускает пробную версию.
3.276.0patch
🕐 17 дн назад · релиз на GitHub ↗

Исправлены критические ошибки Go на ARM64, проблемы с готовностью сервисов на Windows и улучшена работа с пространствами имён баз данных.

  • Fixed: Исправлен краш Go-программ на Linux arm64 из-за усечения результатов системных вызовов до 32 бит.
  • Fixed: Устранены зависания и ошибки отображения статуса готовности mirrord up на Windows.
  • Added: Добавлена поддержка запуска веток баз данных в определённом namespace.
  • Fixed: Исправлено некорректное отображение namespace в предупреждениях при использовании пользовательских шаблонов.
  • В интерфейсе метка "License key" переименована в "Session key".
3.275.0minor
🕐 19 дн назад · релиз на GitHub ↗

Релиз mirrord 3.275.0: поддержка Helm-чартов для превью, изоляция Kafka, улучшения работы с файлами на Windows и Linux.

  • Added: Добавлены флаги --chart и --values для команд mirrord preview start/diff, позволяющие создавать превью на основе Helm-чартов.
  • Added: Появилась функция feature.kafka_branch для изоляции брокеров Kafka, разделяемых между сессиями с одинаковым ключом.
  • Added: На Windows улучшена работа feature.fs: поддержка имен дисков, фильтра path_pattern и корректная обработка спецсимволов в путях.
  • Fixed: Исправлен баг с sendfile на Linux, из-за которого могли теряться данные при неполной записи.
  • Fixed: Устранена проблема с lstat через glibc на Linux, теперь корректно обрабатываются символические ссылки.
  • Fixed: Удалена патч-замена /usr/bin/security для SIP, что предотвращает запросы пароля от связки ключей в macOS.
3.274.0minor
🕐 22 дн назад · релиз на GitHub ↗

mirrord 3.274.0: добавлена поддержка pre_command для services, исправлен краш на macOS и улучшена обработка ошибок.

  • Added: В services для mirrord up добавлена настройка run.pre_command для запуска шага сборки до начала сессии.
  • Fixed: Исправлен краш на macOS при передаче процесса собственного окружения в execve и запуске бинарника в app bundle с патчем для SIP.
  • Fixed: mirrord preview start теперь сохраняет URL превью при замене сессии для того же ключа и цели.
  • Fixed: Улучшено отображение ошибок mirrord up: возвращена справка, исправлен двойной вывод фрагментов ошибок парсинга YAML.
  • Добавлено предупреждение, когда очередь задач Temporal, запрошенная в режиме mirror, выполняется как steal.
3.273.0minor
🕐 23 дн назад · релиз на GitHub ↗

mirrord 3.273.0: новые инструменты MCP, исправление работы с временными директориями и улучшена работа с Kubernetes-секретами.

  • Added: Добавлены инструменты get_skill, search_docs и read_doc для mirrord mcp, а также поддержка ресурсов и промптов для навыков и документации.
  • Added: Команда mirrord subscribe теперь транслирует все сессии без ключа и автоматически указывает кластер для каждого события.
  • Fixed: Переменные TMPDIR, TMP и TEMP больше не копируются в локальный процесс по умолчанию, что предотвращает ошибки при отсутствии удаленных временных директорий.
  • Fixed: Исправлена работа с Kubernetes-прокси для буквальных учетных данных веток баз данных и улучшена поддержка secret_mounts/db_branches для пользователей с RoleBinding.
3.272.0minor
🕐 25 дн назад · релиз на GitHub ↗

mirrord 3.272.0: улучшена диагностика macOS, исправлены блокировки потоков и ошибки конфигурации, добавлены инструменты для MCP.

  • Added: Добавлен инструмент explain_config_option в mirrord mcp для описания параметров конфигурации.
  • Added: Внедрена локальная fallback-коллекция и команда diagnose sip-report для защиты бинарных файлов macOS через Rosetta.
  • Fixed: Исправлены блокировки потоков при операциях I/O (close, connect, dup), предотвращающие зависание других потоков.
  • Fixed: Устранено падение слоя при запуске с невалидным HTTP-фильтром; теперь ошибка сообщается на этапе проверки конфига.
  • Added: TLS-stealing теперь поддерживает передачу клиентских сертификатов mTLS для агента и локальной доставки.
3.271.0minor
🕐 1 мес назад · релиз на GitHub ↗

Добавлены команды для работы с preview-окружениями, улучшена стабильность и отладка на Windows, исправлены ошибки в документации.

  • Added: Добавлены команды mirrord preview diff и start для сравнения манифестов с кластером и запуска превью.
  • Added: Экспериментальная поддержка Windows: улучшена инъекция слоя через stork, ускорена диагностика ошибок запуска.
  • Fixed: Исправлено зависание процесса при недоступности mirrord-console и временных ошибках подключения слоя.
  • Fixed: Исправлены примеры конфигурации в документации, которые ранее вызывали ошибки валидации.
  • Fixed: mirrord operator install теперь блокирует установку операторов версии ниже 3.197.0.
3.270.0minor
🕐 1 мес назад · релиз на GitHub ↗

mirrord 3.270.0: поддержка mTLS через клиентские сертификаты в целевом контейнере и новые команды для установки/удаления оператора.

  • Added: Добавлена настройка feature.network.incoming.tls_delivery.client_cert_source для работы с mTLS без копирования сертификатов на машину разработчика.
  • Added: Появилась команда mirrord operator uninstall для корректного удаления оператора, включая случаи прерванной установки.
  • Added: mirrord operator install теперь поддерживает флаг --context для выбора контекста Kubernetes и отправляет анонимные события об использовании.
  • Fixed: Исправлено отсутствие общей конфигурации сокетов у дочерних процессов posix_spawn, созданных в том же потоке.
3.269.0patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлено переопределение переменных окружения для веток базы данных и улучшено сообщение об ошибке оператора.

  • Fixed: Переиспользуемые ветки базы данных теперь корректно переопределяют переменные окружения текущей конфигурации, а не создателя.
  • Ошибка "operator not found" теперь содержит инструкцию по отключению оператора, сохраненного в ~/.mirrord/mirrord.json.
3.268.0minor
🕐 1 мес назад · релиз на GitHub ↗

mirrord 3.268.0: добавлен MCP-сервер для AI, установка оператора через Helm-чарт без CLI и исправления сетевых ошибок.

  • Added: Добавлена команда mirrord mcp — MCP-сервер для AI-агентов с инструментом валидации конфигурации.
  • Added: Появилась команда mirrord operator install для установки оператора из Helm-чарта без необходимости наличия helm CLI.
  • Added: В команду mirrord session list добавлен формат вывода JSON для удобной парсинга скриптами.
  • Added: CLI теперь выводит контекст Kubernetes, кластер, неймспейс и путь к конфигу при ошибках.
  • Fixed: Исправлена ошибка sendfile на macOS, из-за которой данные могли теряться при блокировке сокета.
  • Fixed: Улучшена диагностика ошибок WebSocket при форвардинге портов: теперь показывается HTTP-статус и тело ответа.
3.267.0patchbreaking
🕐 1 мес назад · релиз на GitHub ↗

Исправлены критические ошибки слияния веток БД с одинаковыми ID и обеспечена атомарность очистки в CI.

  • Added: Добавлена поддержка копирования нескольких баз данных в одну ветку PostgreSQL через additional_databases.
  • Fixed: Исправлено пересечение секретов аутентификации для веток БД разных типов с одинаковым или отсутствующим id.
  • Fixed: Ветки БД разных типов с совпадающим id теперь создаются изолированно, а не перезаписывают друг друга.
  • Fixed: mirrord ci теперь атомарно сохраняет состояние очистки и отклоняет некорректные данные вместо их молчаливого удаления.
  • Breaking: Конфигурация с двумя одинаковыми db_branches теперь вызывает ошибку сессии, а не использует базу источника.
3.266.0minor
🕐 1 мес назад · релиз на GitHub ↗

Релиз mirrord 3.266.0: исправления работы агента и процессов в CI, добавлена поддержка лейблов для preview-окружений.

  • Fixed: Исправлены ошибки в удаленных вызовах stat-семейства в агенте, связанные с двойным префиксом путей и неверным разрешением путей в targetless-режиме.
  • Fixed: Улучшено управление процессами: внутренний прокси теперь корректно завершает зарегистрированные внедренные процессы при остановке, включая те, что вне основной группы процессов.
  • Fixed: Команда mirrord ci stop теперь корректно завершает фоновые группы процессов приложений, предотвращая запуск дочерних процессов обертками.
  • Added: Добавлена поддержка целевых лейблов для preview-окружений, позволяющих охватывать несколько рабочих нагрузок.
  • Added: Добавлена JSON-схема mirrord-up-schema.json для валидации конфигурационного файла mirrord-up.yaml.
3.265.0minor
🕐 1 мес назад · релиз на GitHub ↗

mirrord 3.265.0: добавлена поддержка namespace branching в turbopuffer, префетчинга файлов и исправлено поведение прокси и симлинков.

  • Added: Добавлена поддержка namespace branching для turbopuffer.
  • Added: Появилась опция feature.fs.prefetch для копирования удалённых путей в локальный кэш перед запуском процесса, что ускоряет операции с файлами (например, /etc/ssl).
  • Fixed: Исправлена ошибка, из-за которой внутренний прокси завершал все процессы сессии при обрыве соединения одного из слоёв до завершения рукопожатия.
  • Fixed: Агент теперь корректно разрешает цепочки симлинков и симлинки, встречающиеся в путях.
3.264.0minor
🕐 1 мес назад · релиз на GitHub ↗

Релиз mirrord 3.264.0: добавлена поддержка клиентских TLS-сертификатов, улучшены фильтры очередей и исправлено зависание отладки Node.js.

  • Added: Добавлены параметры tls_delivery.client_cert и client_key для работы с трафиком, требующим клиентского сертификата.
  • Added: Параметры подключения к веткам баз данных теперь поддерживают базовый URL, который переопределяется другими настройками.
  • Added: Фильтры разделения очередей теперь поддерживают композицию через any_of/all_of и сопоставление атрибутов сообщений по regex.
  • Fixed: Исправлено зависание отладки Node-приложений в VS Code при использовании фиксированного порта inspector.
  • Fixed: Добавлена проверка и отклонение неподдерживаемых параметров TLS и неполных клиентских учетных данных перед заменой превью.
3.263.0minor
🕐 1 мес назад · релиз на GitHub ↗

mirrord 3.263.0: улучшен UI, исправлены зависания gRPC и graceful shutdown, deprecated guard_std_fds.

  • Added: В mirrord UI добавлена статистика входящих доставок трафика для активных подписок на порты.
  • Added: Появилось предупреждение при несовпадении версий сервера базы данных в ветке и исходной БД.
  • Fixed: Исправлен deadlock при форке процесса с активным gRPC-каналом.
  • Fixed: mirrord UI теперь корректно различает отсутствие оператора и проблемы с доступом к Kubernetes.
  • Fixed: mirrord up теперь корректно останавливает все управляемые сервисы при прерывании работы.
  • Deprecated: Экспериментальная конфигурация guard_std_fds устарела и включена по умолчанию для всех пользователей.
3.262.0minor
🕐 1 мес назад · релиз на GitHub ↗

Релиз mirrord 3.262.0: новые флаги для subscribe, вкладка Events в UI, исправления багаджа, UDP, Unix-сокетов и HTTPS.

  • Added: Добавлены флаги --unmatched и --session-key-field в mirrord subscribe для фильтрации сообщений и привязки событий к сессиям.
  • Added: В mirrord ui появилась вкладка Events с лентой перехваченных HTTP-запросов и сообщений очередей по всем сессиям кластера.
  • Fixed: Исправлена потеря конфигурации baggage в subscribe и UI, из-за которой не работал кастомный оператор.
  • Fixed: Устранено зависание mirrord ui при истечении срока действия учетных данных kube context.
  • Fixed: Исправлена маршрутизация UDP через оператора за счет сохранения метаданных HostIP целевого пода.
  • Fixed: Устранено усечение путей Unix-сокетов при передаче addrlen без завершающего NUL.
3.261.0minor
🕐 1 мес назад · релиз на GitHub ↗

В mirrord 3.261.0 добавлены пути к секретам в список удалённого чтения и исправлена работа с unix-сокетами.

  • Added: Добавлены пути /var/run/secrets/ и /run/secrets/ в список по умолчанию для удалённого чтения.
  • Fixed: Исправлено подключение mirrord container к исходящим unix-потокам и сокетам SOCK_SEQPACKET.
3.260.0minor
🕐 1 мес назад · релиз на GitHub ↗

В релизе 3.260.0 улучшена консистентность применения глобальных настроек и исправлена ошибка загрузки инструментов разработчика на macOS 27.

  • Глобальная конфигурация теперь последовательно применяется ко всем командам mirrord, сохраняя при этом приоритет у явных настроек проекта, переменных окружения и флагов CLI.
  • Fixed: Устранён сбой работы xcrun, make, git и других инструментов разработчика на macOS 27, вызванный несовпадением архитектур при загрузке libxcrun.dylib.
3.259.0minor
🕐 1 мес назад · релиз на GitHub ↗

mirrord 3.259.0: добавлена аналитика сессий от AI-агентов и исправлена ошибка lstat/readlink при работе с абсолютными симлинками.

  • Added: Анонимная аналитика теперь определяет, запущена ли сессия AI-агентом (Claude Code, Cursor, Codex, Gemini CLI, Amp), по аналогии с обнаружением CI.
  • Fixed: Исправлен сбой remote lstat и readlink с ошибкой ENOENT, если родительская директория является абсолютным симлинком (например, /var/run -> /run).
  • Fixed: Восстановлена корректная работа PHP file_get_contents для файлов, таких как /var/run/secrets/eks.amazonaws.com/serviceaccount/token.
3.258.0minor
🕐 1 мес назад · релиз на GitHub ↗

mirrord 3.258.0: новый режим mirror, управление конфигами, поддержка CronJob и фикс SIP на macOS.

  • Added: Добавлены команды mirrord config set и unset для управления пользовательскими настройками.
  • Added: В mirrord up добавлен новый режим mirror, доступный через флаг --mode или конфиг.
  • Added: Preview environments теперь поддерживают таргетинг на CronJob с переопределением расписания.
  • Fixed: Исправлен патчинг SIP на macOS для бинарников с архитектурным срезом arm64e.x1.
3.257.0minor
🕐 1 мес назад · релиз на GitHub ↗

В релизе mirrord 3.257.0 добавлена поддержка миграций Liquibase.

  • Added: Добавлена поддержка миграций Liquibase.