Fox in the Box packages a private AI assistant for a personal computer: the Hermes agent, the Hermes WebUI chat interface, persistent semantic memory, and optional remote access, in one desktop app for Windows, macOS, and Linux. The app manages a single Docker container that holds the whole stack, and a browser-based onboarding wizard takes an OpenRouter key (or skips straight to a detected local model) without a terminal. Fox tracks the upstream Hermes projects through an overlay and adds the desktop wrapper (Electron), the Docker packaging, the wizard, Tailscale integration, and an auto-update channel.
When a message is sent, the app forwards it to the chosen provider and shows the response. Conversation history, files, and memory stay on the machine in a local data folder, and the only outbound traffic is the provider call. Memory is on by default for fresh installs: facts are extracted by the configured chat provider, embeddings are computed on-device by a bundled nomic-embed-text model running on llama.cpp, and entries are stored in Qdrant through mem0, with the memory state shown in Settings and on a readiness endpoint so a disabled or failing store is never silent. Entries can be read, edited, and pruned from a Memory panel, and each profile can carry its own personality file.
The chat inherits Hermes features: streaming with live tool-call progress, 26 slash commands, mid-stream steering, conversation branching, background tasks, and session search. Skills (bundled and user-authored) can register their own slash commands, Brave Search is wired in as an MCP integration, built-in tools cover file I/O, terminal execution, web browsing over the Chrome DevTools Protocol, vision, text to speech, transcription, and image generation, and a cron-style builder schedules skills. Slack, Discord, Telegram, and WhatsApp gateway adapters ship in the container but are driven from the Hermes CLI rather than the WebUI.
Providers switch live from Settings: OpenRouter is the suggested start, with Anthropic, OpenAI, Google Gemini, xAI, DeepSeek, Mistral AI, Z.ai (GLM), Kimi, MiniMax, NVIDIA NIM, OpenCode-Zen, Ollama Cloud, and LM Studio added by key, and GitHub Copilot, Nous Portal, Codex, and Qwen through OAuth in the bundled CLI. A local Ollama daemon is auto-detected and appears as its own tile with installed models, one-click switching, and one-click pulls from a recommended set. Remote access is a Tailscale toggle that serves the assistant over HTTPS to devices on the user's tailnet. Compared with Open WebUI, AnythingLLM, Jan, and LibreChat, the project positions itself on desktop installers for all three platforms, a no-terminal wizard, semantic memory across sessions, and built-in remote access.
Features
- One-container stack: the Hermes agent, Hermes WebUI, Qdrant, mem0, a llama.cpp embedder, Tailscale, and supervisord run inside a single Docker container managed by the desktop app
- No-terminal onboarding: a browser wizard takes an OpenRouter key or skips to a detected local model, and the desktop app handles Docker lifecycle, system tray, auto-start, and updates
- Semantic memory: on by default, with on-device embeddings from a bundled nomic-embed-text model, storage in Qdrant via mem0, a visible memory state, and a Memory panel to read, edit, and prune entries
- Chat: streaming with live tool-call progress, markdown and highlighted code, 26 slash commands, mid-stream steering, branching, background tasks, and session search
- Multi-profile: separate Hermes environments with isolated config, sessions, memory, and personality, switchable without a restart
- Skills, tools, and scheduling: bundled and user-authored skills with their own slash commands, Brave Search over MCP, file, terminal, browsing, vision, speech, and image tools, and cron-style scheduled tasks
- Provider switching: OpenRouter, Anthropic, OpenAI, Google Gemini, xAI, DeepSeek, Mistral AI, Z.ai, Kimi, MiniMax, NVIDIA NIM, OpenCode-Zen, Ollama Cloud, and LM Studio by key, changed live from Settings
- Local Ollama: auto-detected on first launch, shown as a tile with installed models, one-click switching, and one-click pulls from a recommended set, with no API key
- Tailscale remote access: optional one-toggle HTTPS access from phones and other devices on the user's tailnet, with no port forwarding
- Local-first privacy: the provider call is the only outbound traffic, memory and files stay on the machine, mem0 telemetry is off, and everything sits in one backup-friendly data folder
- Messaging gateways: Slack, Discord, Telegram, and WhatsApp adapters available in the container through the Hermes CLI
- Diagnostics and updates: a built-in log viewer, a System settings page, and automatic desktop updates or an in-place re-run of the install script





