Hermes Kanban Telegram Mini App
- Add Makefile with dev/build/test/docker/ci commands - Rewrite README.md with architecture, quickstart, env vars (EN + RU) - Add Forgejo CI workflow (.forgejo/workflows/test.yml) - Update GitHub CI workflow for pnpm monorepo structure - Fix unused imports in bridge test file (typecheck) - Add test/ci scripts to root package.json - Docker compose build verified (bridge + frontend images) - Full local CI passes: typecheck → test (16/16) → build |
||
|---|---|---|
| .forgejo/workflows | ||
| .github/workflows | ||
| backend | ||
| docs | ||
| frontend | ||
| packages | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| CONTRIBUTING.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| LICENSE | ||
| Makefile | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| SECURITY.md | ||
Hermes Kanban Mini App
Telegram Mini App and web dashboard for Hermes Agent Kanban boards. View, create, and manage tasks from mobile or desktop.
What it does
- Board view: Kanban columns — triage, todo, ready, running, blocked, done, archived
- Task details: body, events, runs, log tail, comments
- Task actions: create, assign, promote, block/unblock, archive, dispatch, comment
- Telegram integration: Mini App theme variables,
initDataauth, haptic feedback - Secure bridge: execFile with
shell: false, command allowlist, token auth
Architecture
Telegram Mini App / Browser
│
│ HTTPS / Vite proxy in dev
▼
React + TypeScript + Vite frontend (port 5173 dev / 80 nginx)
│
│ /bridge/v1/* (X-Bridge-Token or dev mode)
▼
Express Bridge (port 3456)
│
│ hermes kanban ... --json (execFile, shell: false)
▼
Hermes Kanban board (SQLite)
Monorepo structure (pnpm workspace):
packages/contracts— shared TypeScript types + Zod schemaspackages/bridge— Express API server, CLI wrapperfrontend— React + Vite SPA with Tailwind CSS
Quick start
Prerequisites
- Node.js ≥ 18
- pnpm 9.x (
corepack enable) - Hermes Agent installed with Kanban enabled
Local development
git clone https://github.com/Kisskin-Mister/hermes-kanban-miniapp.git
cd hermes-kanban-miniapp
cp .env.example .env # edit as needed
pnpm install
make dev # starts bridge + frontend
- Frontend: http://localhost:5173 (Vite dev server with hot reload)
- Bridge API: http://localhost:3456/bridge/v1/health
Docker Compose
cp .env.example .env # edit HERMES_HOME, BRIDGE_TOKEN, etc.
make docker-build # or: docker compose build
make up # or: docker compose up -d
- Frontend: http://localhost:8080
- Bridge API: http://localhost:3456 (internal, proxied by nginx)
Production
make build # build TypeScript
make docker-build # build images
make up # start containers
The docker-compose.yml mounts ~/.hermes read-only into the bridge container. Configure HERMES_HOME in .env.
Environment variables
Bridge (.env)
| Variable | Default | Description |
|---|---|---|
BRIDGE_HOST |
127.0.0.1 |
Bridge bind address |
BRIDGE_PORT |
8787 |
Bridge port |
BRIDGE_TOKEN |
— | Auth token (X-Bridge-Token header) |
AUTH_MODE |
token |
token (validate header) or dev (bypass auth) |
BRIDGE_ALLOWED_BOARDS |
default |
Comma-separated board slugs or * |
COMMAND_TIMEOUT_SECONDS |
30 |
Per-command timeout |
LOG_TAIL_MAX_LINES |
500 |
Max log lines returned |
HERMES_BIN |
hermes |
Path to hermes executable |
HERMES_HOME |
— | Hermes profile directory |
TELEGRAM_BOT_TOKEN |
— | For initData validation (optional) |
Docker Compose
| Variable | Default | Description |
|---|---|---|
HERMES_HOME |
/home/kisskin/.hermes |
Mounted into bridge container |
Makefile commands
make install — pnpm install
make dev — run bridge + frontend in dev mode
make build — build all TypeScript packages
make typecheck — run TypeScript type checking
make test — run bridge tests
make ci — install + typecheck + test + build
make docker-build — build Docker images
make up — docker compose up -d
make down — docker compose down
make logs — follow service logs
make clean — remove build artifacts
Telegram Mini App setup
- Create a bot with BotFather
- Set the Mini App domain:
/setdomain→ your HTTPS domain - Configure
.env:AUTH_MODE=token BRIDGE_TOKEN=<generate-a-strong-token> TELEGRAM_BOT_TOKEN=<your-bot-token> - Deploy with HTTPS (Caddy, Nginx, Traefik, or Cloudflare Tunnel)
CI
Forgejo CI workflow (.forgejo/workflows/test.yml) runs on push to main:
- Typecheck contracts, bridge, frontend
- Run bridge unit tests (vitest)
- Build frontend
License
MIT — see LICENSE.
Hermes Kanban Mini App / На русском
Telegram Mini App и веб-панель для управления задачами Hermes Agent. Просматривайте, создавайте и управляйте задачами с мобильного или десктопа.
Что это
- Доска с колонками: triage, todo, ready, running, blocked, done, archived
- Детали задачи: описание, события, запуски, логи, комментарии
- Действия: создание, назначение, продвижение, блокировка/разблокировка, архивация, диспетчеризация
- Интеграция с Telegram: темы Mini App, авторизация
initData, тактильная обратная связь
Быстрый старт
Локальная разработка
git clone https://github.com/Kisskin-Mister/hermes-kanban-miniapp.git
cd hermes-kanban-miniapp
cp .env.example .env
pnpm install
make dev
- Фронтенд: http://localhost:5173
- API моста: http://localhost:3456/bridge/v1/health
Docker Compose
cp .env.example .env
# Отредактируйте HERMES_HOME, BRIDGE_TOKEN и другие переменные
make docker-build
make up
- Фронтенд: http://localhost:8080
- Мост (внутренний): http://localhost:3456
Предварительные требования
- Node.js ≥ 18
- pnpm 9.x (
corepack enable) - Hermes Agent с включённым Kanban
Переменные окружения
Смотрите таблицу выше или файл .env.example.
Команды Makefile
| Команда | Описание |
|---|---|
make dev |
Запуск bridge + frontend в режиме разработки |
make build |
Сборка всех TypeScript пакетов |
make test |
Запуск тестов bridge |
make docker-build |
Сборка Docker образов |
make up |
Запуск сервисов через docker compose |
make down |
Остановка сервисов |
make ci |
Полный CI-пайплайн локально |
Установка Telegram Mini App
- Создайте бота через BotFather
- Установите домен Mini App:
/setdomain→ ваш HTTPS домен - Настройте
.envсAUTH_MODE=token,BRIDGE_TOKENиTELEGRAM_BOT_TOKEN - Разверните с HTTPS (Caddy, Nginx, Traefik, Cloudflare Tunnel)
Лицензия
MIT — см. LICENSE.