Ekko Studio: A Local-First Web Console for Running Five Agent Runtimes
Web dashboard for Hermes Agent — multi-platform AI chat, session management, scheduled jobs, usage analytics
At a glance
- What is it?
- Ekko Studio, also published as hermes-studio, is a TypeScript/Vue 3 dashboard that coordinates Hermes, Ekko, Claude Code, Codex, and Pi from one local workspace. It centralizes chats, platform channels, scheduled jobs, and usage analytics, but its boundaries and licensing need close reading before adoption.
- Who is it for?
- Adopt Ekko Studio if you already run Hermes Agent and want a single local dashboard for chat sessions, platform channel credentials, cron jobs, and usage tracking across multiple agent runtimes. Do not adopt it if you need a standalone product independent of the Hermes ecosystem, because the README explicitly says Ekko Studio is not a sixth agent and coordinates only the five listed runtimes.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Ekko Studio Actually Solves
Ekko Studio addresses a coordination problem, not a new agent problem. If you run Hermes Agent alongside Ekko, Claude Code, Codex, or Pi, each runtime has its own configuration, session store, and execution model. The project's README states that Ekko Studio is the shared product platform, not a sixth agent. It provides a web dashboard that unifies chat, group chat, workflows, files, voice, and device views across those runtimes. The target user is someone who already operates one or more of these agents and wants a single local-first workspace to manage them. Without such a layer, you would toggle between different CLIs, config files, and session databases. Ekko Studio does not replace the agents; it coordinates them. This is a meaningful distinction because it sets expectations: the dashboard inherits the quirks and update cycles of each underlying runtime.
Architecture: Runtime Adapters and API Boundaries
The architecture is visible in the README's description of API routes and session storage. Ekko Studio dispatches each chat run to one of the five runtimes through runtime adapters. Real-time streaming uses Socket.IO on the /chat-run endpoint. The dashboard's own HTTP APIs live under /api/studio/*, while Hermes control-plane APIs remain under /api/hermes/*. This split suggests a deliberate separation between Studio-owned features and Hermes-owned configuration. The README also mentions a centralized compatibility layer for mobile App paths, which avoids duplicate legacy controllers. Session management is notable: Studio maintains its own local SQLite session database, while Hermes state.db is treated as a read-only source for history APIs. This means session search and grouping work off the Studio database, and Hermes history sessions are excluded from search results. The design gives Studio fast local queries without writing to Hermes state, but it also means two sources of truth exist for session data.
How to Get It Running: Commands and Distribution
The README offers three distribution methods: a desktop app for Windows, macOS, and Linux, an npm CLI package, and a Docker image. The desktop app can be downloaded from the releases page. The npm route is explicit: install the package globally with npm install -g hermes-web-ui, then start it with hermes-web-ui start. The same npm package name appears in the badge, so hermes-web-ui is the published CLI. The Docker image is mentioned but no run command is given. For configuration, the README states that channel credential management writes to ~/.hermes/.env and channel behavior settings write to ~/.hermes/config.yaml. Those paths suggest the dashboard expects an existing Hermes installation. If you are new to Hermes, you would need to set up that agent first. The lack of a detailed setup guide in the README means you should consult the linked documentation at ekkostudio.xyz for exact prerequisites.
Platform Channels: One Page for Ten Messaging Services
A central feature is unified configuration for ten platforms: Telegram, Discord, Slack, WhatsApp, Matrix, Feishu (Lark), DingTalk, QQBot, WeChat, and WeCom. Each platform has specific fields, such as bot tokens for Telegram and Discord, or App ID and Secret for Feishu. WeChat uses QR code login that scans in the browser and auto-saves credentials. The dashboard writes credentials to ~/.hermes/.env and behavior settings to config.yaml. It also detects per-platform configured or unconfigured status. This is practical if you run multiple channel integrations, because the alternative is editing .env files by hand. However, the README does not explain how the dashboard handles secret rotation or multi-user access. The local-first model implies single-user or trusted-network use, but that is not stated explicitly.
Usage Analytics, Scheduled Jobs, and Kanban
The dashboard includes usage analytics with total token usage split into input and output, session counts with daily averages, estimated cost, cache hit rate, model usage distribution, and a 30-day daily trend. These metrics are useful for cost control when you run multiple models. Scheduled jobs are managed through cron expressions with presets, and you can create, edit, pause, resume, delete, and trigger immediate execution. A Kanban board is profile-aware and shared with the same local Studio state and authentication model. Visual workflows use Vue Flow and can connect the five runtimes through schedules, approval gates, and group-chat rooms. The README does not specify how workflow execution is persisted or whether failures are retried. That is a gap you would need to test.
Limitations and Failure Modes
The most obvious limitation is that Ekko Studio is not a general-purpose agent dashboard. It only coordinates the five named runtimes. If you use a different agent, it will not work. The README also reveals a split-brain risk: Studio maintains its own SQLite session database, while Hermes state.db is read-only for history. Session search excludes Hermes history sessions, so a user might expect all past chats to be searchable and find that older Hermes-recorded sessions are missing. The README states this explicitly, but it is a functional gap. Another constraint is the license. The repository metadata says NOASSERTION, and the README links a LICENSE file without describing its terms. That is a red flag for commercial adoption. You must inspect the LICENSE file before deploying. Finally, the project has a recent release v1.0.2, but the README still refers to the project as Ekko Studio while the repository name is hermes-studio. This naming inconsistency could cause confusion when filing issues or searching documentation.
Alternatives and Their Different Approaches
A direct alternative is to use each agent's native interface. Hermes Agent has its own CLI and control-plane APIs, and Claude Code, Codex, and Pi each ship with their own session management. The difference is that Ekko Studio adds a unified web layer, whereas native tools keep configuration in separate modules. Another alternative is Open WebUI, which is a self-hosted chat interface for LLMs, but it typically targets OpenAI-compatible backends rather than orchestrating multiple agent runtimes. Open WebUI does not manage Hermes profiles, platform channels, or cron jobs. The architectural difference is that Open WebUI focuses on chat and model routing, while Ekko Studio is a control plane for agent-specific features. If you only need chat, Open WebUI is simpler. If you need to manage channel credentials and scheduled jobs across Hermes and coding agents, Ekko Studio is more aligned.
Maintenance, Upgrade Cost, and License Risks
The release history shows active development, with v1.0.2 released on 2026-09-09 and v0.7.18 two days earlier. That frequency suggests a fast-moving project, which means upgrades could introduce breaking changes. The API split between /api/studio/* and /api/hermes/* implies that changes in Hermes Agent could affect dashboard features, and vice versa. The README does not provide a migration guide or changelog within the snippet. You would need to track both the dashboard and the underlying runtimes. The license is the bigger concern. NOASSERTION means the SPDX identifier could not be determined. The README links to a LICENSE file, but its content is not summarized. Without a clear open-source license, you cannot assume you have the right to modify or redistribute the code. For internal use, that may be acceptable, but for production or commercial distribution, legal review is necessary. The README also mentions the npm package hermes-web-ui, and the npm license badge may show a different value, but the repository metadata is authoritative for the source.
Editorial conclusion
Adopt Ekko Studio if you already run Hermes Agent and want a single local dashboard for chat sessions, platform channel credentials, cron jobs, and usage tracking across multiple agent runtimes. Do not adopt it if you need a standalone product independent of the Hermes ecosystem, because the README explicitly says Ekko Studio is not a sixth agent and coordinates only the five listed runtimes. Before deployment, verify the license status: the repository declares NOASSERTION, and the README links a LICENSE file that is not described. Also confirm which runtime versions are supported, since the control-plane APIs are split between /api/studio/* and /api/hermes/*, and the documentation is still the authoritative source for setup details beyond the npm command.
Community notes