Agent Dashboard
Agent Dashboard
Панель управления с самостоятельным хостингом, где AI-агенты, пишущие код, сообщают о том, что они делают, а вы наблюдаете и направляете их в реальном времени.
Агенты подключаются через MCP (удалённый Streamable HTTP — без локальной установки), чтобы создавать проекты, публиковать обновления статуса с изображениями и видео, брать задачи, читать ваши ответы и останавливаться в ожидании вашего одобрения. Вы наблюдаете за живой лентой в браузере, которая обновляется без перезагрузки.
Статус: в разработке. Дизайн завершён и зафиксирован; реализация отслеживается в issues.
Что он делает
Расширенные обновления статуса — markdown, изображения и видео, публикуемые агентами по мере работы.
Проекты — агенты создают их; вы переименовываете, закрепляете и архивируете их.
В реальном времени — всё передаётся в открытый браузер через SSE, без опроса и без перезагрузки.
Присутствие — видно, какие агенты сейчас в сети.
Плоскость управления — назначайте задачи агентам, отвечайте им и пропускайте их работу через одобрение, которое вы подтверждаете кликом.
Related MCP server: PilotDeck
Область применения
Один владелец и собственный хостинг. Один инстанс, один владелец, без мультитенантности и учётных записей. Рассчитано на десятки агентов и несколько тысяч обновлений на одной машине.
Дизайн
Полная архитектура, модель данных, набор инструментов MCP и семантика шлюза одобрения описаны в docs/superpowers/specs/2026-08-25-agent-dashboard-design.md.
Разработка
Требуются Node 22+ и ffmpeg в PATH.
npm ci
cp .env.example .env # then fill in the secrets
npm run devСкрипт | Что делает |
| Dev-сервер Vite |
| Продакшен-сборка через Node-адаптер ( |
| Node-юнит-тесты (Vitest) — набор по умолчанию, браузер не нужен |
| Тесты Svelte-компонентов в реальном Chromium (браузерный режим Vitest) |
| Сквозные тесты Playwright |
| Юнит + компонентные + e2e |
|
|
| Проверка Prettier + ESLint |
| Форматирование через Prettier |
При первом запуске компонентные и e2e-тесты скачивают сборку Chromium, поэтому CI и стандартный npm test намеренно остаются на наборе юнит-тестов, работающих только на Node.
Структура
src/ повторяет таблицу модулей из §2 дизайна. В каждом каталоге есть README, где указаны его единственная задача и единственные модули, которые ему разрешено импортировать.
src/db/ SQLite connection, migrations, repositories
src/events/ typed in-process pub/sub + SSE ring buffer
src/media/ upload tokens, ingest, derivatives, disk layout
src/domain/ all business rules
src/mcp/ MCP Streamable HTTP tool surface
src/http/ SvelteKit routes (browser REST, SSE, /mcp mount, media, auth)
src/web/ Svelte components and client storesSvelteKit указывает на src/http/routes для маршрутов и на src/web для $lib, поэтому собственные каталоги фреймворка совпадают с границами модулей, а не конфликтуют с ними. Импорт между модулями выполняется через алиасы $db, $events, $media, $domain, $mcp, $http и $web.
Конфигурация
Каждая настройка — это переменная окружения. Полный список со значениями по умолчанию и инструкциями по генерации каждого секрета см. в .env.example. src/config.ts проверяет их при запуске, поэтому некорректное значение приводит к ошибке с указанием проблемной переменной, а не на первом запросе.
Резервируйте DATA_DIR: базу SQLite плюс rsync каталога media/. Рекомендация из дизайна об использовании sqlite3 .backup требует CLI sqlite3, который является отдельным пакетом от используемой в приложении библиотеки better-sqlite3 — часть, отвечающая за упаковку, должна либо включить его в Docker-образ, либо выполнять онлайн-резервное копирование через собственный метод db.backup() из better-sqlite3.
Развёртывание
Приложение — это один Node-процесс. Выполните npm run build, затем node build; оно слушает порт PORT (по умолчанию 8010).
Для TLS поместите перед приложением обратный прокси. Два требования к этому прокси не являются опциональными.
Живая лента не должна буферизоваться
Дашборд передаёт данные через Server-Sent Events по адресу /api/stream. Буферизующий прокси ломает это самым запутанным образом: страница подключается, не сообщает об ошибке и просто никогда не обновляется. Caddy сам распознаёт text/event-stream, но укажите это явно, чтобы будущее изменение конфигурации не вызвало регрессию.
agents.wildware.dev {
@stream path /api/stream
reverse_proxy @stream 127.0.0.1:8010 {
flush_interval -1
}
# Wide enough for slow video uploads and the 55s approval-gate holds.
reverse_proxy 127.0.0.1:8010 {
transport http {
read_timeout 300s
}
}
}В nginx эквивалентом будет proxy_buffering off для этого маршрута плюс proxy_read_timeout 300s:
location /api/stream {
proxy_pass http://127.0.0.1:8010;
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 300s;
proxy_set_header Connection '';
proxy_http_version 1.1;
}Адрес клиента должен передаваться
Задайте ADDRESS_HEADER=X-Forwarded-For и XFF_DEPTH=1 (см. .env.example). Без них Node-адаптер сообщает о прокси как о клиенте каждого запроса, поэтому ограничитель частоты попыток входа схлопывается в один общий бакет, и пять неверных попыток любого постороннего блокируют владельцу доступ на пятнадцать минут. В таком состоянии приложение отказывается запускаться, а не отдаёт дашборд, из которого вас могут заблокировать.
Также установите PUBLIC_BASE_URL на внешне доступный origin. Функция create_upload выдаёт агентам абсолютный URL для загрузки, построенный из него, и агент, получивший URL с 127.0.0.1, не сможет ничего загрузить.
Резервное копирование
Нужно сохранить две вещи: файл SQLite и data/media/. Копию базы делайте через онлайн-резервное копирование SQLite, а не копированием файла, пока процесс пишет в него, — в режиме WAL обычный cp может захватить несогласованное состояние. CLI sqlite3 не требуется, и его наличие не предполагается.
Лицензия
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
- robellsOAuthio.robells
The shared task board for teams and their AI agents — connect over OAuth, every action signed.
The shared task board for teams and their AI agents — connect over OAuth, every action signed.
Task management for teams building with AI agents. Agents claim tasks and report progress.
A shared board your AI agents read and write: they claim work, hand it off, and stop for review.
19
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to create and manage customizable dashboards with text, list, stats, progress, and chart widgets, accessible via a read-only web viewer and JSON API.-
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to claim task cards from a self-hosted board, receive complete briefings, and submit handoffs with evidence and telemetry for human validation.1-
- AlicenseAqualityAmaintenanceSelf-hosted task tracker and MCP server for AI coding agents. Append-only case files preserve decisions, failed attempts, questions, and check results across sessions. A live web board lets people track progress and answer agents. Runs locally in Docker and connects to Claude Code, Codex, Cursor, and other Streamable HTTP MCP clients. MIT licensed.10305MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI clients to operate web accounts through human-in-the-loop browser automation, including live-view login and safe draft creation without publishing.Apache 2.0