Trackio documentation
Команды CLI
Команды CLI
Trackio предоставляет комплексный набор команд CLI, позволяющих запрашивать информацию о проектах, запусках, метриках и Spaces без необходимости запуска MCP-сервера. По умолчанию команды работают с локальными данными, а при указании --space — с удалённым HF Space. Это особенно полезно для LLM-агентов и скриптов автоматизации. Благодаря структурированному JSON-выводу и программному доступу ко всем данным экспериментов, Trackio спроектирован для поддержки автономных ML-экспериментов, выполняемых LLM.
Запрос удалённых Spaces
Все команды list, get и query, которые читают данные дашборда, поддерживают запрос к удалённому Hugging Face Space вместо локальных данных. Передайте флаг --space с идентификатором Space или полным URL:
# Using a Space ID
trackio list projects --space username/my-space
# Using a Space URL
trackio list projects --space https://huggingface.co/proxy/username-my-space.hf.space
# Works with any list/get/query command
trackio get metric --project "my-project" --run "my-run" --metric "loss" --space username/my-spaceДля частных Spaces передайте --hf-token или убедитесь, что вы вошли в систему с помощью huggingface-cli login:
trackio list projects --space username/private-space --hf-token hf_xxxxx
Примечание: команды
show,status,sync,freeze,skills,registryиlist spacesне поддерживают параметр--space. Используйтеtrackio list spaces, чтобы найти дашборды Trackio на Hugging Face Hub, а затем передайте один из этих идентификаторов Space в команды, напримерtrackio list projects --space username/my-space.
Команды реестра
Создайте реестр и, при необходимости, определите типизированную коллекцию перед добавлением в неё элементов:
trackio registry create models --description "Models we deploy"
trackio registry create-collection models/churn-model --type model --description "Churn predictor"Свяжите локальную версию артефакта, продвиньте версию коллекции, переместив псевдоним, или отвяжите версию:
trackio registry link models/churn-model experiments/resnet:v3 --alias staging
trackio registry promote models/churn-model production v0
trackio registry unlink models/churn-model v0Осмотр коллекций и их истории аудита:
trackio registry list models trackio registry show models/churn-model trackio registry events models
Все команды реестра принимают --bucket-id org/bucket для реестра на основе bucket и --json для структурированного вывода. --alias можно указывать многократно. Цели можно записывать в виде models/churn-model или registry-models/churn-model.
Команда link разрешает project/artifact:version-or-alias из локальных данных Trackio; если опустить суффикс, будет разрешено latest. Публикация артефакта, который существует только на удалённом Space, по-прежнему выполняется через Python API, чтобы Trackio мог зафиксировать координаты удалённого хранилища источника.
Команда синхронизации
Загрузка локального проекта в Space на Hugging Face:
trackio sync --project "my-project" --space-id "username/space_id"Разверните как статическое пространство (чтение из HF Bucket, сервер не требуется):
trackio sync --project "my-project" --space-id "username/space_id" --sdk staticСтатические Spaces предоставляют данные непосредственно из браузера и поэтому требуют публичные данные снапшота. --sdk static --private не поддерживается; для частных дашбордов используйте SDK Gradio по умолчанию.
Синхронизируйте все проекты, содержащие несинхронизированные данные, с их настроенными Spaces:
trackio sync --all| Флаг | Описание |
|---|---|
--project | Имя проекта для синхронизации (обязательно, если не используется --all) |
--space-id | ID HF Space для синхронизации (например, username/space_id). Если не указан, используется ранее настроенный Space |
--all | Синхронизировать все проекты с несинхронизированными данными |
--sdk | gradio (по умолчанию) для живого сервера или static для Space с доступом только на чтение, использующего bucket |
--private | Сделайте Space приватным при создании нового Gradio Space. Не поддерживается с --sdk static |
--force | Перезаписать существующую базу данных без запроса подтверждения |
Команда Freeze
Создайте статический снимок Space с правами только на чтение из работающего Gradio Space:
trackio freeze --space-id "username/my-space" --project "my-project"Укажите пользовательское пространство назначения:
trackio freeze --space-id "username/my-space" --project "my-project" --new-space-id "username/my-snapshot"| Флаг | Описание |
|---|---|
--space-id | Идентификатор исходного пространства Gradio (обязательный) |
--project | Проект для заморозки (обязательно) |
--new-space-id | Статический идентификатор целевого Space. По умолчанию {space_id}_static |
--private | Не поддерживается для статических замороженных снимков |
Примечание: Исходный ресурс должен представлять собой Gradio Space с подключённым бакетом по пути
/data. Если целевой Space уже существует и не является статическим Space Trackio, командаfreezeотклонит попытку перезаписи. Замороженный Space представляет собой снимок. Метрики, синхронизированные с исходным Gradio Space после этого, не появятся в замороженном статическом Space, если не запуститьfreezeповторно. Статические замороженные снимки требуют публичного доступа к данным в целевом Space, поэтомуtrackio freeze --privateне поддерживается.
Bump
Обновите существующее пространство Trackio до версии Trackio, установленной локально:
trackio bump username/my-space
trackio bump --space username/my-space выполняет то же самое.
Space приостанавливается на время обновления, поэтому задачи обучения продолжают писать логи в папку inbox бакета Space. Его базы данных резервируются в trackio-backups/ в том же бакете, его Trackio pin обновляется, и он перезапускается, чтобы новая версия перенесла данные. Если обновлённый Space не запускается или сообщает о меньшем количестве строк, чем раньше, резервная копия и предыдущие файлы Space восстанавливаются.
Чтобы не трогать исходный Space, скопируйте его и его bucket в новый Space, работающий на локальной версии:
trackio bump username/my-space --new-space username/my-space-v2 --new-bucket username/my-space-v2-bucket
| Флаг | Описание |
|---|---|
space_id | Требуемое пространство Trackio для обновления (обязательно, либо передайте его с помощью --space) |
--new-space | Создайте этот Space из копии space_id, а не обновляйте его на месте |
--new-bucket | Корзина для --new-space. По умолчанию {new_space}-bucket |
Примечание:
bumpподдерживает Gradio Spaces, работающие с Trackio версии 0.21.0 или новее, с подключённым хранилищем (bucket) по пути/data, и никогда не выполняет понижение версии Space. В более старых Spaces данные хранились в Hugging Face Dataset, а не в bucket.
Команды списка
Список всех проектов
Список всех доступных проектов:
trackio list projects
Вывод в формате JSON:
trackio list projects --json
Список пространств Trackio
Список Spaces с панелью Trackio, принадлежащих вашему аккаунту Hugging Face и организациям:
trackio list spaces
Вывод в формате JSON:
trackio list spaces --json
Список пространств Trackio в пространстве имён конкретного пользователя или организации:
trackio list spaces --author "username-or-org"Ограничить количество возвращаемых Spaces:
trackio list spaces --limit 10Для частных Spaces передайте --hf-token или убедитесь, что вы вошли в систему с помощью huggingface-cli login.
Список запусков для проекта
Список всех запусков в конкретном проекте:
trackio list runs --project "my-project"Вывод в формате JSON:
trackio list runs --project "my-project" --jsonСписок метрик для запуска
Список всех метрик, отслеживаемых в конкретном запуске:
trackio list metrics --project "my-project" --run "my-run"Вывод в формате JSON:
trackio list metrics --project "my-project" --run "my-run" --jsonСписок системных метрик для запуска
Список всех системных метрик (например, метрик GPU) для конкретного запуска:
trackio list system-metrics --project "my-project" --run "my-run"Вывод в формате JSON:
trackio list system-metrics --project "my-project" --run "my-run" --jsonСписок отчетов
Список markdown-отчётов в проекте (по всем запускам):
trackio list reports --project "my-project"Список markdown-отчётов для конкретного запуска:
trackio list reports --project "my-project" --run "my-run"Вывод в формате JSON:
trackio list reports --project "my-project" --run "my-run" --jsonСписок трассировок
Список traces (сессии агента или диалога) во всех запусках проекта:
trackio list traces --project "my-project"Каждая строка отображает статус трассировки, фактическое время выполнения, стоимость, количество операций и пользовательский запрос, который её инициировал. Фильтрация по запуску, шагу или тексту:
trackio list traces --project "my-project" --run "production"
trackio list traces --project "my-project" --step 12
trackio list traces --project "my-project" --search "rate limit"Поиск совпадает с содержимым сообщения, метаданными трассировки, а также с именем, типом, моделью, статусом и ошибкой каждого span. Управление порядком и пагинацией:
trackio list traces --project "my-project" --sort step_desc --limit 100 --offset 50--sort принимает request_time_desc (по умолчанию), request_time_asc, step_asc
и step_desc. Добавление --json включает сводку summary по каждому трассированию.
Получить команды
Получить трассировку
Показать один трасс с полным деревом выполнения:
trackio get trace --project "my-project" --trace-id "fe04ed264a8a4bd6afcf266b56d9297e"Trace fe04ed264a8a4bd6afcf266b56d9297e
Run: production
Totals: error | 25.0s | $0.33 | 101338 in / 1804 out tokens | 21 operation(s)
Execution:
answer-research-question [span] 25.0s
generate-research-response [span] 23.7s
acquire-sandbox [span] 914ms
dispatch-model-request [span] 2.18s
provider-request [generation] 2.18s my-model 8347->239 tok $0.03
ERROR run-bash-command [tool] 168ms
-> {"exit_code": 2, "stderr": "hf datasets list: error: unrecognized arguments: --full"}--trace-id принимает короткий id, выводимый командой trackio list traces, или полный сохранённый id. Добавьте --json, чтобы получить полный трасс, включая входные и выходные данные span.
Получить сводку по трассировке
Сгруппируйте все span по имени операции, чтобы увидеть, где сосредоточены задержка, токены и стоимость, а также какие операции завершаются с ошибкой:
trackio get trace-summary --project "my-project"operation | kind | calls | errors | avg_ms | max_ms | input_tokens | output_tokens | cost_usd
provider-request | generation | 205 | 0 | 3380.8 | 5535.0 | 2915829 | 63020 | 9.6928
run-bash-command | tool | 157 | 25 | 818.4 | 1548.0 | 0 | 0 | 0.0
acquire-sandbox | span | 48 | 0 | 2438.6 | 10615.0 | 0 | 0 | 0.0Ограничьте вывод одним запуском с помощью --run или выводите строки в машиночитаемом формате с помощью --json.
Для данных, не охваченных сводкой, напрямую запросите таблицу traces с помощью trackio query project — spans является столбцом JSON, поэтому json_each работает.
Получить сводку проекта
Получите подробное резюме проекта, включая количество запусков и недавнюю активность:
trackio get project --project "my-project"Вывод в формате JSON:
trackio get project --project "my-project" --jsonСводка включает:
- Название проекта
- Количество запусков
- Список всех запусков
- Последняя активность (максимальный шаг по всем запускам)
Получить сводку запуска
Получите подробное резюме конкретного запуска, включая метрики и конфигурацию:
trackio get run --project "my-project" --run "my-run"Вывод в формате JSON:
trackio get run --project "my-project" --run "my-run" --jsonСводка включает:
- Имена проектов и запусков
- Количество записей журнала
- Последний шаг
- Список всех метрик
- Конфигурация запуска (без внутренних полей)
Получение значений метрик
Получить все значения для конкретного метрики в запуске:
trackio get metric --project "my-project" --run "my-run" --metric "loss"Вывод в формате JSON:
trackio get metric --project "my-project" --run "my-run" --metric "loss" --jsonВывод включает:
- Номер шага
- Метка времени
- Значение метрики
Фильтрация по шагу или времени
Вы можете отфильтровать значения метрик по конкретному шагу или по окну вокруг шага/метки времени. Это полезно для анализа метрик в момент срабатывания оповещения.
# Get metric at exactly step 200
trackio get metric --project "my-project" --run "my-run" --metric "loss" --step 200
# Get metrics in a window around step 200 (±10 steps, the default)
trackio get metric --project "my-project" --run "my-run" --metric "loss" --around 200
# Get metrics in a window around step 200 (±50 steps)
trackio get metric --project "my-project" --run "my-run" --metric "loss" --around 200 --window 50
# Get metrics within ±60 seconds of a timestamp
trackio get metric --project "my-project" --run "my-run" --metric "loss" --at-time "2025-06-01T12:05:30" --window 60| Флаг | Описание |
|---|---|
--step N | Возвращает метрику ровно на шаге N |
--around N | Возвращает метрики в окне вокруг шага N |
--at-time T | Возвращает метрики в окне вокруг метки времени T в формате ISO 8601 |
--window W | Размер окна: ±steps для --around, ±seconds для --at-time (по умолчанию: 10) |
Получить снимок метрик
Получите все метрики в момент или вблизи шага или временной метки одним вызовом. Это самый быстрый способ для агента понять состояние запуска в конкретный момент — например, сразу после срабатывания оповещения.
# All metrics at step 200
trackio get snapshot --project "my-project" --run "my-run" --step 200 --json
# All metrics in a window around step 200 (±5 steps)
trackio get snapshot --project "my-project" --run "my-run" --around 200 --window 5 --json
# All metrics within ±60 seconds of a timestamp
trackio get snapshot --project "my-project" --run "my-run" --at-time "2025-06-01T12:05:30" --window 60 --jsonПример вывода в формате JSON:
{
"project": "my-project",
"run": "my-run",
"around": 200,
"window": 5,
"metrics": {
"loss": [
{"step": 196, "timestamp": "2025-06-01T12:04:50", "value": 0.42},
{"step": 200, "timestamp": "2025-06-01T12:05:30", "value": 0.45}
],
"accuracy": [
{"step": 196, "timestamp": "2025-06-01T12:04:50", "value": 0.88},
{"step": 200, "timestamp": "2025-06-01T12:05:30", "value": 0.87}
],
"lr": [
{"step": 196, "timestamp": "2025-06-01T12:04:50", "value": 0.0001},
{"step": 200, "timestamp": "2025-06-01T12:05:30", "value": 0.0001}
]
}
}Получение значений системных метрик
Получить значения системных метрик для запуска. Если имя метрики не указано, возвращаются все системные метрики:
# Get all system metrics
trackio get system-metric --project "my-project" --run "my-run"
# Get a specific system metric
trackio get system-metric --project "my-project" --run "my-run" --metric "gpu_utilization"Вывод в формате JSON:
trackio get system-metric --project "my-project" --run "my-run" --metric "gpu_utilization" --jsonПолучить содержимое отчета
Вывод записей отчёта в формате Markdown для конкретного имени отчёта в запуске:
trackio get report --project "my-project" --run "my-run" --report "training_report"Вывод в формате JSON:
trackio get report --project "my-project" --run "my-run" --report "training_report" --jsonКоманда запроса
Используйте trackio query, когда вам нужен универсальный SQL-запрос только для чтения, который не покрывается командами trackio list или trackio get.
Выполнение запроса к базе данных проекта
trackio query project --project "my-project" --sql "SELECT run_name, MAX(step) AS last_step FROM metrics GROUP BY run_name ORDER BY last_step DESC"Вывод в формате JSON:
trackio query project --project "my-project" --sql "SELECT name FROM sqlite_master WHERE type = 'table' ORDER BY name" --jsonЗапрос удалённого Space:
trackio query project --project "my-project" --sql "SELECT COUNT(*) AS num_alerts FROM alerts" --space username/my-space --jsontrackio query поддерживает только запросы SELECT, WITH и безопасные запросы PRAGMA к схеме.
Примеры проверки общей схемы:
# Inspect table columns
trackio query project --project "my-project" --sql "PRAGMA table_info(metrics)"
# Inspect indexes
trackio query project --project "my-project" --sql "PRAGMA index_list(alerts)"
# List tables
trackio query project --project "my-project" --sql "SELECT name FROM sqlite_master WHERE type = 'table' ORDER BY name"Ответ содержит:
projectquerycolumnsrowsrow_count
Полное описание структуры SQLite и parquet см. в разделе Схема хранения и прямые запросы.
Форматы вывода
Все команды list, get и query поддерживают два формата вывода:
- Человекочитаемый (по умолчанию): Форматированный текстовый вывод, подходящий для просмотра в терминале
- JSON (с флагом
--json): структурированный вывод в формате JSON, пригодный для программного использования
Обработка ошибок
Команды CLI включают комплексную валидацию и обработку ошибок:
- Если проект не существует, отображается сообщение об ошибке
- Если запуск не существует в проекте, отображается сообщение об ошибке
- Если метрика отсутствует в запуске, отображается сообщение об ошибке
- Если отчёт отсутствует в запуске, отображается сообщение об ошибке
- Если запрос не является только для чтения, CLI завершается с ошибкой
Все ошибки записываются в stderr, а команда завершается с ненулевым кодом выхода.
Пример рабочего процесса
Ниже приведена типичная последовательность действий для работы с вашими данными Trackio:
# 1. List all projects
trackio list projects
# 2. List runs in a project
trackio list runs --project "my-project"
# 3. Get project summary
trackio get project --project "my-project"
# 4. Get run summary
trackio get run --project "my-project" --run "my-run"
# 5. List metrics in the run
trackio list metrics --project "my-project" --run "my-run"
# 6. Get specific metric values
trackio get metric --project "my-project" --run "my-run" --metric "loss"
# 7. Get all metrics at a specific step (e.g. where an alert fired)
trackio get snapshot --project "my-project" --run "my-run" --step 200 --json
# 8. Get system metrics (if available)
trackio list system-metrics --project "my-project" --run "my-run"
# 9. List reports in a run
trackio list reports --project "my-project" --run "my-run"
# 10. Print report markdown in terminal
trackio get report --project "my-project" --run "my-run" --report "training_report"
# 11. Run a direct SQL query
trackio query project --project "my-project" --sql "SELECT run_name, MAX(step) AS last_step FROM metrics GROUP BY run_name"Запрос удалённого пространства
Та же самая последовательность действий работает и для удалённого Space — достаточно добавить --space:
# List projects on a remote Space
trackio list projects --space username/my-space
# Get metric values from a remote Space
trackio get metric --project "my-project" --run "my-run" --metric "loss" --space username/my-space --jsonСценарии использования
LLM-агенты
Эти команды CLI особенно полезны для агентов LLM, которым необходимо:
- Ознакомьтесь с доступными проектами и запусками
- Получение значений метрик программно
- Просмотрите метрики вокруг предупреждения с помощью
get snapshotилиget metric --around - Выполняйте прямой SQL для случаев, не покрытых структурированными командами
- Получение сводок без запуска сервера
- Разбор структурированного вывода JSON для дальнейшей обработки
Скрипты автоматизации
Вы можете использовать эти команды в скриптах оболочки и автоматизированных конвейерах:
#!/bin/bash
PROJECT="my-project"
RUN="my-run"
# Get the latest loss value
LATEST_LOSS=$(trackio get metric --project "$PROJECT" --run "$RUN" --metric "loss" --json | jq -r '.values[-1].value')
echo "Latest loss: $LATEST_LOSS"Интеграция с другими инструментами
Формат вывода JSON упрощает интеграцию с другими инструментами:
# Pipe to jq for filtering
trackio list runs --project "my-project" --json | jq '.runs[] | select(startswith("train"))'
# Export to file
trackio get run --project "my-project" --run "my-run" --json > run_summary.json