- Go 66.9%
- TypeScript 28%
- Shell 4.4%
- Dockerfile 0.5%
- HTML 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| cmd/studio | ||
| deploy | ||
| docs | ||
| internal | ||
| scripts | ||
| web | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| Makefile | ||
| README.md | ||
Hermes Studio
Hermes Studio is a Dockerized control plane for managing multiple Hermes Agent containers and profiles.
Toolchain
- Go 1.26.8
- React 19 + TypeScript
- PostgreSQL
- Docker-in-Docker
- Studio Certified Hermes:
nousresearch/hermes-agent:v2026.9.14
Development
go test ./...
go run ./cmd/studio
In another terminal:
cd web
npm ci
npm run dev
The backend listens on 127.0.0.1:8080 by default. Set HERMES_STUDIO_LISTEN_ADDR to override it.
Database credentials are runtime-only environment variables documented in .env.example. Never commit a populated .env file. On startup, the backend applies embedded, advisory-lock-protected migrations and inserts missing non-secret defaults without overwriting operator changes.
See docs/DEVELOPMENT_PLAN.md and docs/architecture/OVERVIEW.md.
Offline maintenance
Run these commands while the normal Studio server is stopped, using the same runtime environment and /data volume:
hermes-studio reset-admin-password <username> <new-password>
hermes-studio restore-full /data/backups/<backup-id>.tar.gz <sha256>
Full restore refuses a target that already contains Agents or Agent data. It validates the archive path list, checksum and manifest, restores PostgreSQL, pulls the recorded Hermes images by digest, and recreates Agent containers. Agent and Profile backups can be restored from the web UI after their original IDs/names have been removed; conflicts are never overwritten automatically.