> Русский translation of [README](../../../README.md), auto-generated from the English source. English is canonical; open a PR against `README.md` for content changes. # 🦞 ClawMetry [![PyPI Downloads](https://static.pepy.tech/badge/clawmetry)](https://clickpy.clickhouse.com/dashboard/clawmetry) [![PyPI Downloads/week](https://static.pepy.tech/badge/clawmetry/week)](https://clickpy.clickhouse.com/dashboard/clawmetry) [![PyPI version](https://img.shields.io/pypi/v/clawmetry?color=E5443A&label=version)](https://pypi.org/project/clawmetry/) [![GitHub stars](https://img.shields.io/github/stars/vivekchand/clawmetry?style=flat&color=E5443A)](https://github.com/vivekchand/clawmetry/stargazers) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) ClawMetry - #5 Product of the Day on Product Hunt **Наблюдайте за мышлением вашего агента.** Наблюдаемость в реальном времени для **14 сред выполнения AI-агентов**: [OpenClaw](https://github.com/openclaw/openclaw), [NVIDIA NemoClaw](https://github.com/NVIDIA/NemoClaw), Claude Code, OpenAI Codex и ещё 10 других. Единая панель для всего вашего флота агентов. > 🌐 **Читайте на:** [English](README.md) · [简体中文](docs/i18n/zh-CN/README.md) · [日本語](docs/i18n/ja/README.md) · [한국어](docs/i18n/ko/README.md) · [Español](docs/i18n/es/README.md) · [Português (BR)](docs/i18n/pt-BR/README.md) · [Français](docs/i18n/fr/README.md) · [Deutsch](docs/i18n/de/README.md) · [हिन्दी](docs/i18n/hi/README.md) · [العربية](docs/i18n/ar/README.md) · [Русский](docs/i18n/ru/README.md) · [ещё →](docs/i18n/) Одна команда. Никакой настройки. Всё определяется автоматически. ```bash pip install clawmetry && clawmetry ``` Откроется по адресу **http://localhost:8900** — и всё готово. ![Flow Visualization](https://clawmetry.com/screenshots/flow.png) ## Работает с 14 средами выполнения агентов ClawMetry начинался как инструмент наблюдаемости для OpenClaw, а теперь измеряет **весь ваш флот агентов** на одной панели, автоматически определяя каждую среду выполнения на вашей машине: 🦞 **OpenClaw** · 🟩 **NVIDIA NemoClaw** · ◆ **Claude Code** · ⬡ **OpenAI Codex** · **Cursor** · 🪿 **Goose** · ⚡ **Hermes** · **opencode** · ◈ **Qwen Code** · **Aider** · **NanoClaw** · **PicoClaw** · **Pi** · **Deep Agents** · 🔗 **n8n** OpenClaw и NemoClaw бесплатны в open-source приложении; остальные среды выполнения включаются с ClawMetry Cloud или лицензией Pro для самостоятельного хостинга. Переключайте среды выполнения из шапки, и каждая вкладка — стоимость, токены, инструменты, трассировки — пересчитывается для выбранной среды. Смотрите **[docs/ENTITLEMENTS.md](docs/ENTITLEMENTS.md)** для точного разделения на бесплатное/платное, матрицы уровней, формата `/api/entitlement` и CLI `clawmetry license`. ## Что вы получаете - **Flow** — живая анимированная диаграмма, показывающая, как сообщения проходят через каналы, "мозг", инструменты и обратно - **Overview** — проверки состояния, тепловая карта активности, счётчики сессий, информация о модели - **Usage** — отслеживание токенов и стоимости с разбивкой по дням/неделям/месяцам - **Sessions** — активные сессии агента с моделью, токенами, временем последней активности - **Crons** — запланированные задачи со статусом, временем следующего запуска, длительностью - **Logs** — цветная потоковая трансляция логов в реальном времени - **Memory** — просмотр SOUL.md, MEMORY.md, AGENTS.md, ежедневных заметок - **Transcripts** — интерфейс в виде чата для чтения истории сессий - **Alerts** — лимиты бюджета, триггеры по частоте ошибок, обнаружение отключения агента; отправка в Slack, Discord, PagerDuty, Telegram, Email - **Approvals** — блокировка деструктивных удалений, force push, изменений в БД, sudo, установок пакетов, сетевых вызовов до получения одобрения в один клик ## Скриншоты ### 🧠 Brain — живой поток событий агента ![Brain tab](https://raw.githubusercontent.com/vivekchand/clawmetry/main/screenshots/brain.png) ### 📊 Overview — использование токенов и сводка по сессиям ![Overview tab](https://raw.githubusercontent.com/vivekchand/clawmetry/main/screenshots/overview.png) ### ⚡ Flow — лента вызовов инструментов в реальном времени ![Flow tab](https://raw.githubusercontent.com/vivekchand/clawmetry/main/screenshots/flow.png) ### 💰 Tokens — разбивка стоимости по моделям и сессиям ![Tokens tab](https://raw.githubusercontent.com/vivekchand/clawmetry/main/screenshots/tokens.png) ### 🧬 Memory — браузер файлов рабочего пространства ![Memory tab](https://raw.githubusercontent.com/vivekchand/clawmetry/main/screenshots/memory.png) ### 🔐 Security — состояние защищённости и журнал аудита ![Security tab](https://raw.githubusercontent.com/vivekchand/clawmetry/main/screenshots/security.png) ### 🚨 Alerts — лимиты бюджета, триггеры по частоте ошибок, вебхуки в Slack / Discord / PagerDuty / Email ![Alerts tab](https://raw.githubusercontent.com/vivekchand/clawmetry/main/screenshots/alerts.png) ### ✋ Approvals — блокировка рискованных вызовов инструментов до ручного одобрения; правила защиты на основе политик ![Approvals tab](https://raw.githubusercontent.com/vivekchand/clawmetry/main/screenshots/approvals.png) **Блокировка перед выполнением для Claude Code** — одна команда устанавливает хук PreToolUse, который приостанавливает подходящие вызовы инструментов *до* их выполнения и ждёт вашего решения (одно касание с телефона при включённых [push-уведомлениях облака](https://app.clawmetry.com/push)): ```bash clawmetry hooks install # writes ~/.claude/settings.json (idempotent) clawmetry hooks status # what's wired + how many policies are active clawmetry hooks uninstall # removes only ClawMetry's entries ``` Отказ блокирует только этот один вызов инструмента — агент сохраняет свою сессию и может попробовать другой подход. Одобрение с телефона пропускает собственный запрос на разрешение Claude Code (вы уже ответили). Несовпавшие инструменты стоят ~40 мс и попадают в обычный процесс разрешений Claude Code. Вы также получите push-уведомление на телефон, когда сам Claude Code ждёт вашего ответа (уведомления `permission_prompt` / `idle_prompt`). ## Установка **Однострочная команда (рекомендуется):** ```bash curl -sSL https://raw.githubusercontent.com/vivekchand/clawmetry/main/install.sh | bash ``` **pip:** ```bash pip install clawmetry clawmetry ``` **Из исходного кода:** ```bash git clone https://github.com/vivekchand/clawmetry.git cd clawmetry && pip install flask && python3 dashboard.py ``` ## Разработка фронтенда v2 Приложение React v2 находится в `frontend/` и раздаётся по пути `/v2`, когда сервер Flask запущен с включённым v2. Используйте два терминала во время разработки: ```bash # Terminal 1: Flask API/server on :8900 CLAWMETRY_V2=1 python3 dashboard.py ``` ```bash # Terminal 2: Vite dev server on :5173 cd frontend nvm use npm ci npm run dev ``` Откройте `http://localhost:5173/v2/`. Vite проксирует запросы `/api` на `http://localhost:8900`, поэтому приложение React может общаться с локальным сервером Flask без дополнительной настройки CORS. Чтобы собрать сборку, которая поставляется вместе с Python-пакетом: ```bash cd frontend npm run build ``` Продакшн-сборка записывается в `clawmetry/static/v2/dist/`. ## Совместимость со средами выполнения / агентами ClawMetry наблюдает за многими средами выполнения AI-агентов, а не только за OpenClaw. Каждая среда выполнения, отличная от OpenClaw, поставляется с выделенным адаптером-ридером, который переводит её нативный формат сессий в унифицированные форматы ClawMetry; демон загружает их в то же хранилище DuckDB + облачный снимок, помечая среду выполнения, а вкладка воспроизведения сессий показывает **переключатель сред выполнения**, если присутствует больше одной. Смотрите [`docs/compatibility.md`](docs/compatibility.md) для полной матрицы и руководства по добавлению сред выполнения, а также [`docs/RUNTIME_FAMILY.md`](docs/RUNTIME_FAMILY.md) для введения в семейство OpenClaw. | Среда выполнения / агент | Статус | Примечания | |---|---|---| | **OpenClaw** | Нативная | Эталонная среда выполнения, определяется автоматически | | **PicoClaw** | Бета-адаптер | Плоский JSONL `providers.Message` (`~/.picoclaw/workspace/sessions`). Транскрипты, модель, вызовы инструментов. | | **NanoClaw** | Бета-адаптер | SQLite на сессию (`data/v2-sessions`). Транскрипты + количество сообщений. | | **Hermes** | Бета-адаптер | SQLite `~/.hermes/state.db`. Транскрипты, модель, токены/стоимость. | | **Claude Code** | Бета-адаптер | JSONL `~/.claude/projects/.../.jsonl`. Транскрипты, модель, вызовы инструментов + мышление, использование токенов. | | **Codex** | Бета-адаптер | Rollout JSONL `~/.codex/sessions/...`. Транскрипты, модель, вызовы инструментов, использование токенов. | | **Cursor** | Бета-адаптер | SQLite `state.vscdb`. Транскрипты чата/composer, модель. | | **Aider** | Бета-адаптер | `.aider.chat.history.md` на проект. Транскрипты, модель, счётчики токенов. | | **Goose** | Бета-адаптер | SQLite `~/.local/share/goose`. Транскрипты, модель, вызовы инструментов, суммарные токены. | | **opencode** | Бета-адаптер | SQLite `~/.local/share/opencode`. Транскрипты, модель, вызовы инструментов, токены + стоимость. | | **Qwen Code** | Бета-адаптер | JSONL `~/.qwen/projects/.../chats`. Транскрипты, модель, вызовы инструментов, использование токенов. | | **Pi** | Бета-адаптер | JSONL `~/.pi/agent/sessions`. Транскрипты, модель, вызовы инструментов, токены + стоимость. | | **Deep Agents** | Бета-адаптер | SQLite `~/.deepagents/.state/sessions.db`. Транскрипты, модель, вызовы инструментов, токены + стоимость. | | **n8n** | Бета-адаптер | SQLite `~/.n8n/database.sqlite`. Выполнения workflow, запуски узлов, промпты AI Agent, модель + токены там, где n8n их фиксирует. | "Бета-адаптер" означает, что ClawMetry поставляет ридер для реального формата данных этой среды выполнения на диске, каждый из которых собран и проверен на реальной установке на реальной машине (см. `tests/fixtures/runtimes//`). Адаптеры доступны только для чтения; каждый честно отражает то, что среда выполнения на самом деле хранит (например, PicoClaw/NanoClaw/Cursor не записывают стоимость токенов на диск). Когда на одном узле работает несколько сред выполнения, переключатель сред выполнения ограничивает представление сессий одной средой для чистого детального анализа. ## Отслеживание любого SDK-агента — атрибуция затрат вне цикла Все перечисленные выше среды выполнения записывают сессии на диск. Ваш собственный **продакшн-агент** — тот, который вы построили на OpenAI Agents SDK, LangChain, Vercel AI SDK, LlamaIndex, E2B или обычном цикле на `httpx` — этого не делает. Перехватчик ClawMetry без настройки всё равно фиксирует его вызовы LLM (стоимость, токены, задержку, ошибки), встраиваясь в `httpx`/`requests`: ```python import clawmetry.track # activate the interceptor clawmetry.track.set_source("support-agent") # name this product # ...your agent runs as normal; every LLM call is now tracked + attributed. ``` `set_source()` (или переменная окружения `CLAWMETRY_SOURCE=support-agent`) помечает каждый вызов **именованным источником**, поэтому каждый продукт, который вы запускаете, отображается как отдельная полноценная строка с атрибуцией затрат в карточке **🔌 Внешние источники** на вкладке Overview панели — вызовы, провайдеры, задержка, частота ошибок по каждому агенту. Источник не задан? Вызовы всё равно отслеживаются, просто карточка остаётся скрытой. ```bash CLAWMETRY_SOURCE=billing-agent python my_agent.py ``` Это тот же слой данных, который питают адаптеры сред выполнения (DuckDB → облачный снимок), поэтому внешние источники синхронизируются с облачной панелью так же, как и всё остальное, со сквозным шифрованием. ## OpenTelemetry — независимость от поставщика, отправляйте трассировки куда угодно ClawMetry говорит на языке **OpenTelemetry** в обоих направлениях, используя **семантические соглашения GenAI**, поэтому трассировки вашего агента никогда не привязаны к одному инструменту. **Экспорт** каждой сессии — вызовов LLM, инструментов, суб-агентов, токенов, стоимости — в виде спанов OTLP/HTTP GenAI в любой коллектор (Datadog, Grafana, Honeycomb или ваш собственный OTel Collector): ```bash clawmetry --otel-export http://localhost:4318/v1/traces # equivalently: CLAWMETRY_OTEL_EXPORT_ENDPOINT=http://localhost:4318/v1/traces clawmetry ``` Заголовки авторизации и интервал опроса — опциональные переменные окружения: ```bash CLAWMETRY_OTEL_EXPORT_HEADERS='{"X-API-Key":"…"}' # extra HTTP headers CLAWMETRY_OTEL_EXPORT_INTERVAL=60 # seconds (default 60) ``` **Приём** — встроенный приёмник OTLP принимает трассировки и метрики от чего угодно ещё по адресам `/v1/traces` и `/v1/metrics` (`pip install clawmetry[otel]` для приёма protobuf). Вы получаете панель ClawMetry без настройки, локальную по умолчанию, **и** ваши данные в любом бэкенде, который уже использует ваша команда — без привязки к поставщику, без второго агента для установки. ## Конфигурация Большинству людей не нужна никакая настройка. ClawMetry автоматически определяет ваше рабочее пространство, логи, сессии и cron-задачи. Если вам всё же нужно что-то настроить: ```bash clawmetry --port 9000 # Custom port (default: 8900) clawmetry --host 127.0.0.1 # Bind to localhost only clawmetry --workspace ~/mybot # Custom workspace path clawmetry --name "Alice" # Your name in Flow visualization ``` Все опции: `clawmetry --help` ## Поддерживаемые каналы ClawMetry показывает живую активность для каждого настроенного вами канала OpenClaw. В диаграмме Flow отображаются только те каналы, которые действительно настроены в вашем `openclaw.json` — ненастроенные автоматически скрываются. Нажмите на любой узел канала во Flow, чтобы увидеть живой вид чат-пузырей со счётчиками входящих/исходящих сообщений. | Канал | Статус | Живое всплывающее окно | Примечания | |---------|--------|------------|-------| | 📱 **Telegram** | ✅ Полностью | ✅ | Сообщения, статистика, обновление каждые 10 с | | 💬 **iMessage** | ✅ Полностью | ✅ | Читает `~/Library/Messages/chat.db` напрямую | | 💚 **WhatsApp** | ✅ Полностью | ✅ | Через WhatsApp Web (Baileys) | | 🔵 **Signal** | ✅ Полностью | ✅ | Через signal-cli | | 🟣 **Discord** | ✅ Полностью | ✅ | Определение гильдии + канала | | 🟪 **Slack** | ✅ Полностью | ✅ | Определение рабочего пространства + канала | | 🌐 **Webchat** | ✅ Полностью | ✅ | Встроенные сессии веб-интерфейса | | 📡 **IRC** | ✅ Полностью | ✅ | Интерфейс пузырей в стиле терминала | | 🍏 **BlueBubbles** | ✅ Полностью | ✅ | iMessage через REST API BlueBubbles | | 🔵 **Google Chat** | ✅ Полностью | ✅ | Через вебхуки Chat API | | 🟣 **MS Teams** | ✅ Полностью | ✅ | Через плагин бота Teams | | 🔷 **Mattermost** | ✅ Полностью | ✅ | Самостоятельно размещённый командный чат | | 🟩 **Matrix** | ✅ Полностью | ✅ | Децентрализованный, поддержка E2EE | | 🟢 **LINE** | ✅ Полностью | ✅ | LINE Messaging API | | ⚡ **Nostr** | ✅ Полностью | ✅ | Децентрализованные личные сообщения NIP-04 | | 🟣 **Twitch** | ✅ Полностью | ✅ | Чат через подключение IRC | | 🔷 **Feishu/Lark** | ✅ Полностью | ✅ | Подписка на события через WebSocket | | 🔵 **Zalo** | ✅ Полностью | ✅ | Zalo Bot API | > **Автоопределение:** ClawMetry читает ваш `~/.openclaw/openclaw.json` и отображает только те каналы, которые вы действительно настроили. Ручная настройка не требуется. ## Развёртывание в Docker Хотите запустить ClawMetry в контейнере? Не проблема! 🐳 **Быстрый старт с Docker:** ```bash # Build the image docker build -t clawmetry . # Run with default settings docker run -p 8900:8900 clawmetry # Or mount your agent's data dir (shown: OpenClaw's ~/.openclaw) docker run -p 8900:8900 \ -v ~/.openclaw:/root/.openclaw \ -v /tmp/moltbot:/tmp/moltbot \ clawmetry ``` **Пример Docker Compose:** ```yaml version: '3.8' services: clawmetry: build: . ports: - "8900:8900" volumes: - ~/.openclaw:/root/.openclaw:ro - /tmp/moltbot:/tmp/moltbot:ro restart: unless-stopped ``` > **Примечание:** при запуске в Docker смонтируйте каталоги данных и логов вашего агента (например, `~/.openclaw`, `~/.claude`, `~/.codex`), чтобы ClawMetry мог автоматически определить вашу конфигурацию. ## Требования - Python 3.8+ - Flask (устанавливается автоматически через pip) - Среда выполнения AI-агента на той же машине: OpenClaw, NVIDIA NemoClaw, Claude Code, Codex, Cursor, Goose, Hermes, opencode, Qwen Code, Aider, NanoClaw, PicoClaw, Pi, Deep Agents или n8n (либо смонтированные тома для Docker) - Linux или macOS ## Поддержка NemoClaw / OpenShell ClawMetry автоматически определяет [NemoClaw](https://github.com/NVIDIA/NemoClaw) — корпоративную обёртку безопасности NVIDIA для OpenClaw, которая запускает агентов внутри изолированных контейнеров OpenShell. В большинстве случаев дополнительная настройка не требуется. Демон синхронизации автоматически обнаруживает файлы сессий независимо от того, находятся ли они в `~/.openclaw/` на хосте или внутри контейнера OpenShell. ### Как это работает ClawMetry обнаруживает NemoClaw двумя способами: 1. **Обнаружение по бинарнику** — проверяет наличие CLI `nemoclaw` и запускает `nemoclaw status`, чтобы получить информацию о песочнице 2. **Обнаружение по контейнеру** — сканирует запущенные Docker-контейнеры на наличие образов `openshell`, `nemoclaw` или `ghcr.io/nvidia/`, затем читает сессии через смонтированные тома или `docker cp` Файлы сессий, синхронизированные из контейнеров NemoClaw, помечаются метаданными `runtime=nemoclaw` и `container_id` в облачной панели, чтобы вы могли отличить их от обычных сессий OpenClaw с первого взгляда. ### Рекомендуемая настройка: демон синхронизации на ХОСТЕ Для наилучшего опыта запускайте демон синхронизации ClawMetry на **хост-машине** (не внутри песочницы). Это позволяет избежать ограничений сетевой политики NemoClaw. ```bash # On the host (outside the sandbox) pip install clawmetry clawmetry connect clawmetry sync ``` Демон синхронизации автоматически найдёт сессии внутри любых запущенных контейнеров OpenShell. ### Опционально: явное указание имени песочницы Если автоопределение не срабатывает, укажите ClawMetry нужную песочницу: ```bash export NEMOCLAW_SANDBOX=my-sandbox-name clawmetry sync ``` ### Запуск внутри песочницы (для продвинутых) Если вам необходимо запустить демон синхронизации **внутри** песочницы OpenShell, добавьте это правило исходящего трафика в вашу сетевую политику NemoClaw, чтобы он мог обращаться к API приёма ClawMetry: ```yaml # nemoclaw-policy.yaml network: egress: - host: ingest.clawmetry.com port: 443 protocol: https ``` Примените с помощью: ```bash nemoclaw policy apply --file nemoclaw-policy.yaml ``` ### Порты и точки доступа | Точка доступа | Порт | Протокол | Обязательно | |---|---|---|---| | `ingest.clawmetry.com` | 443 | HTTPS | Да (демон синхронизации → облако) | | `localhost:8900` | 8900 | HTTP | Да (локальный интерфейс панели) | | Docker socket (`/var/run/docker.sock`) | — | Unix socket | Для обнаружения сессий контейнеров | Демон синхронизации выполняет только исходящие HTTPS-вызовы к `ingest.clawmetry.com`. Входящие порты не требуются. --- ## Облачное развёртывание Смотрите **[Руководство по тестированию в облаке](https://github.com/vivekchand/clawmetry/blob/main/docs/CLOUD_TESTING.md)** для SSH-туннелей, обратного прокси и Docker. ## Тестирование Этот проект тестируется с помощью BrowserStack. [![BrowserStack](https://img.shields.io/badge/tested%20with-BrowserStack-orange.svg)](https://browserstack.com) ## Телеметрия ClawMetry отправляет анонимные пинги о жизненном цикле установки на `https://app.clawmetry.com/api/install`: один пинг `install` при первом запуске CLI `clawmetry` на новой машине, один пинг `update` при первом запуске после обновления до новой версии, и один пинг `onboarded`, когда вы завершаете выбор при онбординге в панели. Мы используем это, чтобы подсчитывать реальные установки (сырые цифры загрузок PyPI примерно на 98% состоят из зеркал, CI и повторных загрузок при автообновлении) и узнавать, какие фреймворки агентов и версии реально используются. **Не более одного POST-запроса на событие жизненного цикла на версию**, содержащего: | Поле | Пример | Зачем | |---|---|---| | `install_id` | случайный UUID, хранящийся в `~/.clawmetry/install_id` | дедупликация; анонимно, пока вы явно не подключите облачную синхронизацию (аутентифицированный heartbeat демона затем несёт его, связывая эту установку с вашим аккаунтом) | | `event` | `install` / `update` / `onboarded` | новая установка против обновления существующей | | `version` | `0.12.167` | какие версии используются в реальности | | `os` / `os_version` | `Darwin` / `25.3.0` | приоритеты поддержки платформ | | `python` | `3.11.15` | матрица поддержки версий Python | | `agent` | `openclaw` / `nemoclaw` / `hermes` / `none` | с какими агентами нам стоит интегрироваться дальше | | `is_ci` / `ci_provider` | `true` / `github_actions` | отделение установок реальных людей от шума CI | **Что мы НЕ отправляем**: IP (облако вычисляет код страны на стороне сервера из запроса, а затем отбрасывает IP), имя хоста, имя пользователя, путь к рабочему пространству, содержимое файлов, ваш api_key, вашу электронную почту, ничего из персональных данных или данных, специфичных для рабочего пространства. Передаваемые данные можно проверить в [`clawmetry/telemetry.py`](clawmetry/telemetry.py). **Отказаться** (любой из этих способов отключает её навсегда): ```bash export CLAWMETRY_NO_TELEMETRY=1 # per-shell export DO_NOT_TRACK=1 # W3C cross-tool standard touch ~/.clawmetry/notelemetry # persistent file marker ``` Сбой сети здесь никогда не блокирует запуск `clawmetry` — пинг отправляется в режиме "выстрелил и забыл" в отдельном потоке демона с тайм-аутом 3 с. ## История звёзд Star History Chart ## Лицензия MIT ---

🦞 Наблюдайте за мышлением вашего агента
Создано @vivekchand · clawmetry.com · часть экосистемы OpenClaw