hermes-workspace

Native web workspace for Hermes Agent — chat, terminal, memory, skills, inspector.

★ 1.4K TypeScript MIT Updated 4/14/2026
View on GitHub → Homepage
Hermes Workspace

Hermes Workspace

Your AI agent's command center — chat, files, memory, skills, and terminal in one place.

Version License Node PRs Welcome

Not a chat wrapper. A complete workspace — orchestrate agents, browse memory, manage skills, and control everything from one interface.

Hermes Workspace


✨ Features


📸 Screenshots

Chat Files
Chat Files
Terminal Memory
Terminal Memory
Skills Settings
Skills Settings

🚀 Quick Start

Hermes Workspace works with any OpenAI-compatible backend. If your backend also exposes Hermes gateway APIs, enhanced features like sessions, memory, skills, and jobs unlock automatically.

Prerequisites

Step 1: Start your backend

Point Hermes Workspace at any backend that supports:

Example Hermes gateway setup:

git clone https://github.com/outsourc-e/hermes-agent.git
cd hermes-agent
python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -e .
hermes setup
hermes --gateway

If you're using another OpenAI-compatible server, just note its base URL.

Step 2: Install & Run Hermes Workspace

# In a new terminal
git clone https://github.com/outsourc-e/hermes-workspace.git
cd hermes-workspace
pnpm install
cp .env.example .env
printf '\nHERMES_API_URL=http://127.0.0.1:8642\n' >> .env
pnpm dev                   # Starts on http://localhost:3000

Verify: Open http://localhost:3000 and complete the onboarding flow. First connect the backend, then verify chat works. If your gateway exposes Hermes APIs, advanced features appear automatically.

Environment Variables

# OpenAI-compatible backend URL
HERMES_API_URL=http://127.0.0.1:8642

# Optional provider keys for Hermes gateway-managed config
ANTHROPIC_API_KEY=your-key-here

# Optional: password-protect the web UI
# HERMES_PASSWORD=your_password

🧠 Local Models (Ollama, LM Studio, vLLM)

Hermes Workspace supports two modes with local models:

Portable Mode (Easiest)

Point the workspace directly at your local server — no Hermes gateway needed:

# Start Ollama
OLLAMA_ORIGINS=* ollama serve

# Start workspace pointed at Ollama
HERMES_API_URL=http://127.0.0.1:11434 pnpm dev

Chat works immediately. Sessions, memory, and skills show "Not Available" — that's expected in portable mode.

Enhanced Mode (Full Features)

Route through the Hermes gateway for sessions, memory, skills, jobs, and tools:

1. Configure your local model in ~/.hermes/config.yaml:

provider: ollama
model: qwen2.5:7b # or any model you have pulled
custom_providers:
  - name: ollama
    base_url: http://127.0.0.1:11434/v1
    api_key: ollama
    api_mode: chat_completions

2. Enable the API server in ~/.hermes/.env:

API_SERVER_ENABLED=true

3. Start the gateway and workspace:

hermes gateway run          # Starts on :8642
HERMES_API_URL=http://127.0.0.1:8642 pnpm dev

All workspace features unlock automatically — sessions persist, memory saves across chats, skills are available, and the dashboard shows real usage data.

Works with any OpenAI-compatible server — Ollama, LM Studio, vLLM, llama.cpp, LocalAI, etc. Just change the base_url and model in the config above.


🐳 Docker Quickstart

Open in GitHub Codespaces

The Docker setup runs both the Hermes Agent gateway and Hermes Workspace together.

Prerequisites

Step 1: Configure Environment

git clone https://github.com/outsourc-e/hermes-workspace.git
cd hermes-workspace
cp .env.example .env

Edit .env and add your API key:

ANTHROPIC_API_KEY=your-key-here

Important: The hermes-agent container requires ANTHROPIC_API_KEY to function. Without it, the gateway will fail to authenticate.

Step 2: Start the Services

docker compose up

This starts two services:

Step 3: Access the Workspace

Open http://localhost:3000 and complete the onboarding.

Verify: Check the Docker logs for [gateway] Connected to Hermes — this confirms the workspace successfully connected to the agent.


📱 Install as App (Recommended)

Hermes Workspace is a Progressive Web App (PWA) — install it for the full native app experience with no browser chrome, keyboard shortcuts, and offline support.

🖥️ Desktop (macOS / Windows / Linux)

  1. Open Hermes Workspace in Chrome or Edge at http://localhost:3000
  2. Click the install icon (⊕) in the address bar
  3. Click Install — Hermes Workspace opens as a standalone desktop app
  4. Pin to Dock / Taskbar for quick access

macOS users: After installing, you can also add it to your Launchpad.

📱 iPhone / iPad (iOS Safari)

  1. Open Hermes Workspace in Safari on your iPhone
  2. Tap the Share button (□↑)
  3. Scroll down and tap "Add to Home Screen"
  4. Tap Add — the Hermes Workspace icon appears on your home screen
  5. Launch from home screen for the full native app experience

🤖 Android

  1. Open Hermes Workspace in Chrome on your Android device
  2. Tap the three-dot menu (⋮) → "Add to Home screen"
  3. Tap Add — Hermes Workspace is now a native-feeling app on your device

📡 Mobile Access via Tailscale

Access Hermes Workspace from anywhere on your devices — no port forwarding, no VPN complexity.

Setup

  1. Install Tailscale on your Mac and mobile device:

  2. Sign in to the same Tailscale account on both devices

  3. Find your Mac's Tailscale IP:

    tailscale ip -4
    # Example output: 100.x.x.x
    
  4. Open Hermes Workspace on your phone:

    http://100.x.x.x:3000
    
  5. Add to Home Screen using the steps above for the full app experience

💡 Tailscale works over any network — home wifi, mobile data, even across countries. Your traffic stays end-to-end encrypted.


🖥️ Native Desktop App

Status: In Development — A native Electron-based desktop app is in active development.

The desktop app will offer:

In the meantime: Install Hermes Workspace as a PWA (see above) for a near-native desktop experience — it works great.


☁️ Cloud & Hosted Setup

Status: Coming Soon

A fully managed cloud version of Hermes Workspace is in development:

Features pending cloud infrastructure:


✨ Features

💬 Chat

🧠 Memory

🧩 Skills

📁 Files

💻 Terminal

🎨 Themes

🔒 Security


🔧 Troubleshooting

"Workspace loads but chat doesn't work"

The workspace auto-detects your gateway's capabilities on startup. Check your terminal for a line like:

[gateway] http://127.0.0.1:8642 available: health, models; missing: sessions, skills, memory, config, jobs
[gateway] Missing Hermes APIs detected. Update Hermes: cd hermes-agent && git pull && pip install -e . && hermes --gateway

Fix: Use our fork which includes extended gateway endpoints:

git clone https://github.com/outsourc-e/hermes-agent.git
cd hermes-agent && pip install -e . && hermes --gateway

"Connection refused" or workspace hangs on load

Your Hermes gateway isn't running. Start it:

cd hermes-agent
source .venv/bin/activate
hermes gateway run

Ollama: chat returns empty or model shows "Offline"

Make sure your ~/.hermes/config.yaml has the custom_providers section and API_SERVER_ENABLED=true in ~/.hermes/.env. See Local Models above.

Also ensure Ollama is running with CORS enabled:

OLLAMA_ORIGINS=* ollama serve

Use http://127.0.0.1:11434/v1 (not localhost) as the base URL.

Verify: curl http://localhost:8642/health should return {"status": "ok"}.

"Using upstream NousResearch/hermes-agent"

The upstream hermes-agent supports basic chat via hermes --gateway, but doesn't include extended endpoints (sessions, memory, skills, config) yet. The workspace will work in portable mode with basic chat. For full features, use our fork (outsourc-e/hermes-agent).

Docker: "Unauthorized" or "Connection refused" to hermes-agent

If using Docker Compose and getting auth errors:

  1. Check your API key is set:

    cat .env | grep ANTHROPIC_API_KEY
    # Should show: ANTHROPIC_API_KEY=sk-ant-...
    
  2. View the agent container logs:

    docker compose logs hermes-agent
    

    Look for startup errors or missing API key warnings.

  3. Verify the agent health endpoint:

    curl http://localhost:8642/health
    # Should return: {"status": "ok"}
    
  4. Restart with fresh containers:

    docker compose down
    docker compose up --build
    
  5. Check workspace logs for gateway status:

    docker compose logs hermes-workspace
    

    Look for: [gateway] http://hermes-agent:8642 mode=... — if it shows mode=disconnected, the agent isn't running correctly.

Docker: "hermes webapi command not found"

The hermes webapi command referenced in older docs doesn't exist. The correct command is:

hermes --gateway   # Starts the FastAPI gateway server

The Docker setup uses hermes --gateway automatically — no action needed if using docker compose up.


🗺️ Roadmap

Feature Status
Chat + SSE Streaming ✅ Shipped
Files + Terminal ✅ Shipped
Memory Browser ✅ Shipped
Skills Browser ✅ Shipped
Mobile PWA + Tailscale ✅ Shipped
8-Theme System ✅ Shipped
Native Desktop App (Electron) 🔨 In Development
Model Switching & Config 🔨 In Development
Chat Abort / Cancel 🔨 In Development
Cloud / Hosted Version 🔜 Coming Soon
Team Collaboration 🔜 Coming Soon

⭐ Star History

Star History Chart

💛 Support the Project

Hermes Workspace is free and open source. If it's saving you time and powering your workflow, consider supporting development:

ETH: 0xB332D4C60f6FBd94913e3Fd40d77e3FE901FAe22

GitHub Sponsors

Every contribution helps keep this project moving. Thank you 🙏


🤝 Contributing

PRs are welcome! See CONTRIBUTING.md for guidelines.


📄 License

MIT — see LICENSE for details.


Built with ⚡ by @outsourc-e and the Hermes Workspace community