{"id":150032,"date":"2026-06-05T05:11:42","date_gmt":"2026-06-05T05:11:42","guid":{"rendered":"\/tutorials\/?p=150032"},"modified":"2026-06-08T05:01:45","modified_gmt":"2026-06-08T05:01:45","slug":"how-to-set-up-hermes-workspace","status":"publish","type":"post","link":"\/tutorials\/how-to-set-up-hermes-workspace","title":{"rendered":"How to set up Hermes Workspace"},"content":{"rendered":"<p>Hermes Workspace is an <strong>open-source web UI for Hermes Agent<\/strong>, a self-improving AI agent from Nous Research.<\/p><p>It brings the agent&rsquo;s chat, persistent memory, skills marketplace, terminal, and multi-agent orchestration together in a single self-hosted dashboard that you can access from any device.<\/p><p>To set up Hermes Workspace on a virtual private server (VPS), install the workspace alongside the agent, configure the gateway and dashboard, and access the interface through an SSH tunnel or a domain.<\/p><p>Running Hermes Workspace on a VPS keeps your conversations, agent memory, and API keys on infrastructure you control instead of relying on third-party services.<\/p><p>\n\n\n\n\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-1-check-the-prerequisites\"><strong>1. Check the prerequisites<\/strong><\/h2><p>Hermes Workspace runs on a VPS with <strong>at least<\/strong> <strong>2 GB of RAM<\/strong> and a major Linux distribution, such as Ubuntu 24.04. The workspace works as the interface, while <a href=\"\/tutorials\/what-is-hermes-agent\/\">Hermes Agent<\/a> handles the tasks underneath.<\/p><p><a href=\"\/tutorials\/how-to-set-up-vps\/\">Set up a VPS<\/a> first if you don&rsquo;t have one yet, then connect to it over SSH.<\/p><p>Hermes Workspace needs three tools: Node.js 22 or higher, Python 3.11 or higher, and <strong>pnpm<\/strong>. Ubuntu 24.04 already includes a compatible Python version, so you only need to <a href=\"\/tutorials\/how-to-install-nodejs-ubuntu\/\">install Node.js<\/a> and <strong>pnpm<\/strong>.<\/p><p>Update the system first:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt update<\/pre><p>Install <strong>curl<\/strong> and <strong>git<\/strong>, then add the NodeSource repository for Node.js 22:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt install -y curl git\ncurl -fsSL https:\/\/deb.nodesource.com\/setup_22.x | sudo -E bash -\nsudo apt install -y nodejs<\/pre><p>Install <strong>pnpm<\/strong> through <strong>npm<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo npm install -g pnpm<\/pre><p>Verify that each tool is installed and meets the required version before moving on:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">node -v # 22.x or higher\npython3 -V # 3.11 or higher\npnpm -v<\/pre><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a5fd2a2c0d29\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fd2a2c0d29\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1376\" height=\"542\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-prerequisites-terminal-node-python-pnpm-versions.png\/w=1024,h=1024,fit=scale-down\" alt=\"Terminal showing Node.js 22.22.3, Python 3.12.3, and pnpm 11.5.1 versions\" class=\"wp-image-150050\" title=\"hermes-workspace-prerequisites-terminal-node-python-pnpm-versions\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-prerequisites-terminal-node-python-pnpm-versions.png\/w=1376,fit=scale-down 1376w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-prerequisites-terminal-node-python-pnpm-versions.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-prerequisites-terminal-node-python-pnpm-versions.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-prerequisites-terminal-node-python-pnpm-versions.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-prerequisites-terminal-node-python-pnpm-versions.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1376px) 100vw, 1376px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><h2 class=\"wp-block-heading\" id=\"h-2-install-hermes-workspace\"><strong>2. Install Hermes Workspace<\/strong><\/h2><p>If you&rsquo;ve never installed Hermes Agent before, set up Hermes Workspace with the official one-line installer. It clones the workspace, pulls Hermes Agent from PyPI, and creates the starter <strong>.env<\/strong> files in one command:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">curl -fsSL https:\/\/raw.githubusercontent.com\/outsourc-e\/hermes-workspace\/main\/install.sh | bash<\/pre><p>On the first run, the installer asks you to pick a model provider and enter an API key, so make sure you have one ready. Once it finishes, you&rsquo;ll see a confirmation message indicating a successful installation.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a5fd2a2c1858\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fd2a2c1858\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1530\" height=\"1036\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-install-terminal-install-complete-next-steps.png\/w=1024,h=1024,fit=scale-down\" alt=\"Terminal showing the install complete message and the next setup steps\" class=\"wp-image-150049\" title=\"hermes-workspace-install-terminal-install-complete-next-steps\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-install-terminal-install-complete-next-steps.png\/w=1530,fit=scale-down 1530w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-install-terminal-install-complete-next-steps.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-install-terminal-install-complete-next-steps.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-install-terminal-install-complete-next-steps.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-install-terminal-install-complete-next-steps.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1530px) 100vw, 1530px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>If you&rsquo;ve already <a href=\"\/tutorials\/how-to-set-up-hermes-agent\/\">installed Hermes Agent<\/a>, skip the one-line installer. Instead, clone the workspace separately and point it to your existing services:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">git clone https:\/\/github.com\/outsourc-e\/hermes-workspace.git\ncd hermes-workspace\npnpm install\ncp .env.example .env\necho 'HERMES_API_URL=http:\/\/127.0.0.1:8642' &gt;&gt; .env\necho 'HERMES_DASHBOARD_URL=http:\/\/127.0.0.1:9119' &gt;&gt; .env<\/pre><p>Use <strong>127.0.0.1<\/strong> if the agent runs on the same server. Use the server&rsquo;s real IP address if it runs elsewhere. Either way, you&rsquo;ll still need to set the gateway key next.<\/p><p>Regardless of your installation method, the workspace and gateway need to share the same secret key. This requires three new entries across two files.<\/p><p>First, generate the secret key and copy it somewhere safe:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">openssl rand -hex 32<\/pre><p>Open the agent&rsquo;s environment file with the <a href=\"\/tutorials\/how-to-install-and-use-nano-text-editor\/\">nano text editor<\/a>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">nano ~\/.hermes\/.env<\/pre><p>Add these two lines to the file. Replace <strong>your-gateway-secret<\/strong> with the secret key you generated earlier:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">API_SERVER_ENABLED=true\nAPI_SERVER_KEY=your-gateway-secret<\/pre><p>Here, <strong>API_SERVER_ENABLED<\/strong> turns on the HTTP API that the workspace calls, and <strong>API_SERVER_KEY<\/strong> protects it with a password.<\/p><p>The gateway needs both before it can serve that API, even when the workspace and gateway run on the same server. This step is easy to miss because a local-only setup can feel like it doesn&rsquo;t need a password.<\/p><p>Save the file and close <strong>nano<\/strong> with <strong>Ctrl+X &rarr; Y &rarr; Enter<\/strong>.<\/p><p>Now open the workspace&rsquo;s environment file:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">nano ~\/hermes-workspace\/.env<\/pre><p>Add the token using the same secret key, so <strong>API_SERVER_KEY<\/strong> and <strong>HERMES_API_TOKEN<\/strong> have matching values:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">HERMES_API_TOKEN=your-gateway-secret<\/pre><p>Save the file the same way to finish the configuration.<\/p><h2 class=\"wp-block-heading\" id=\"h-3-start-the-gateway-and-workspace\"><strong>3. Start the gateway and workspace<\/strong><\/h2><p>Three Hermes services run together: the gateway on port <strong>8642<\/strong>, the dashboard on port <strong>9119<\/strong>, and the workspace UI on port <strong>3000<\/strong>. The gateway and dashboard belong to Hermes Agent, while the UI is the part you use in the browser.<\/p><p>Navigate to the workspace folder:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cd ~\/hermes-workspace<\/pre><p>Start the gateway, dashboard, and workspace UI with one command:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">npx concurrently --names \"gateway,dashboard,workspace\" --prefix-colors \"blue,green,yellow\" \"hermes gateway run\" \"hermes dashboard\" \"pnpm dev\"<\/pre><p>\n\n\n        <div class=\"protip\">\n            <div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                    &#128161; Pro tip                <\/p>\n            <\/div>\n            <p class=\"protip__content\"><br>\nSome documentation suggests using <strong>pnpm start:all<\/strong>, which should do the same job as running all three services. In our testing, though, it leaves out the dashboard.<br>\nWithout the dashboard, core features like chat still work, but you lose access to sessions, skills, memory, and jobs.<br>\nWe recommend starting all services with <strong>npx concurrently<\/strong> instead because it&rsquo;s more reliable and lets the workspace run with full features.<br>\n<\/p>\n                    <\/div>\n        \n\n\n\n<\/p><p>The output prints the workspace UI URL at your VPS IP on port <strong>3000<\/strong>, such as <strong>http:\/\/22.222.222.84:3000<\/strong>. Open it in your browser.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a5fd2a2c2a34\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fd2a2c2a34\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"2560\" height=\"568\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-start-services-terminal-workspace-ui-url-scaled.png\/w=1024,h=1024,fit=scale-down\" alt=\"Terminal showing the workspace UI ready with its local and network URLs\" class=\"wp-image-150051\" title=\"hermes-workspace-start-services-terminal-workspace-ui-url\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-start-services-terminal-workspace-ui-url-scaled.png\/w=2560,fit=scale-down 2560w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-start-services-terminal-workspace-ui-url-scaled.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-start-services-terminal-workspace-ui-url-scaled.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-start-services-terminal-workspace-ui-url-scaled.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-start-services-terminal-workspace-ui-url-scaled.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-start-services-terminal-workspace-ui-url-scaled.png\/w=1536,fit=scale-down 1536w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-start-services-terminal-workspace-ui-url-scaled.png\/w=2048,fit=scale-down 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>The dashboard loads ready to use, so you can start chatting, browse memory and skills, or open the built-in terminal right away.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a5fd2a2c38fd\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fd2a2c38fd\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"2560\" height=\"1391\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-dashboard-begin-a-session-home-screen-scaled.png\/w=1024,h=1024,fit=scale-down\" alt=\"Hermes Workspace dashboard with the sidebar and a new chat session screen\" class=\"wp-image-150044\" title=\"hermes-workspace-dashboard-begin-a-session-home-screen\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-dashboard-begin-a-session-home-screen-scaled.png\/w=2560,fit=scale-down 2560w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-dashboard-begin-a-session-home-screen-scaled.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-dashboard-begin-a-session-home-screen-scaled.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-dashboard-begin-a-session-home-screen-scaled.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-dashboard-begin-a-session-home-screen-scaled.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-dashboard-begin-a-session-home-screen-scaled.png\/w=1536,fit=scale-down 1536w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-dashboard-begin-a-session-home-screen-scaled.png\/w=2048,fit=scale-down 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>If you close the SSH session or lose the connection, these processes stop with it. To keep them running after SSH disconnects, run them inside a <a href=\"\/tutorials\/how-to-use-tmux\/\">tmux session<\/a>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">tmux new -s hermes\ncd ~\/hermes-workspace\nnpx concurrently \"hermes gateway run\" \"hermes dashboard\" \"pnpm dev\"<\/pre><p>Detach with <strong>Ctrl+B<\/strong>, then <strong>D<\/strong>. Reattach later with <strong>tmux attach -t hermes<\/strong>.<\/p><p>To confirm the gateway and dashboard are responding, open a new terminal window and run these two checks:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">curl http:\/\/127.0.0.1:8642\/health\ncurl http:\/\/127.0.0.1:9119\/api\/status<\/pre><p>The first command checks the gateway, which returns <strong>{&ldquo;status&rdquo;:&rdquo;ok&rdquo;,&rdquo;platform&rdquo;:&rdquo;hermes-agent&rdquo;}<\/strong>.<\/p><p>The second command checks the dashboard. The fields that matter are <strong>&ldquo;gateway_running&rdquo;:true<\/strong> and an <strong>api_server<\/strong> state of <strong>&ldquo;connected&rdquo;<\/strong>, which confirms the gateway is running and its API server is connected.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a5fd2a2c451e\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fd2a2c451e\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"2560\" height=\"328\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-verify-terminal-curl-health-status-output-scaled.png\/w=1024,h=1024,fit=scale-down\" alt=\"Terminal showing curl gateway health and dashboard status check responses\" class=\"wp-image-150045\" title=\"hermes-workspace-verify-terminal-curl-health-status-output\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-verify-terminal-curl-health-status-output-scaled.png\/w=2560,fit=scale-down 2560w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-verify-terminal-curl-health-status-output-scaled.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-verify-terminal-curl-health-status-output-scaled.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-verify-terminal-curl-health-status-output-scaled.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-verify-terminal-curl-health-status-output-scaled.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-verify-terminal-curl-health-status-output-scaled.png\/w=1536,fit=scale-down 1536w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-verify-terminal-curl-health-status-output-scaled.png\/w=2048,fit=scale-down 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>You also need to check the run mode in the terminal running the services. A workspace log line that includes <strong>mode=zero-fork<\/strong> indicates that the gateway and dashboard paired.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a5fd2a2c4eda\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fd2a2c4eda\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"2560\" height=\"187\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-verify-terminal-workspace-log-mode-zero-fork-scaled.png\/w=1024,h=1024,fit=scale-down\" alt=\"Workspace log showing mode=zero-fork after the gateway and dashboard pair\" class=\"wp-image-150046\" title=\"hermes-workspace-verify-terminal-workspace-log-mode-zero-fork\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-verify-terminal-workspace-log-mode-zero-fork-scaled.png\/w=2560,fit=scale-down 2560w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-verify-terminal-workspace-log-mode-zero-fork-scaled.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-verify-terminal-workspace-log-mode-zero-fork-scaled.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-verify-terminal-workspace-log-mode-zero-fork-scaled.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-verify-terminal-workspace-log-mode-zero-fork-scaled.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-verify-terminal-workspace-log-mode-zero-fork-scaled.png\/w=1536,fit=scale-down 1536w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hermes-workspace-verify-terminal-workspace-log-mode-zero-fork-scaled.png\/w=2048,fit=scale-down 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><h2 class=\"wp-block-heading\" id=\"h-how-to-set-up-hermes-workspace-on-hostinger\"><strong>How to set up Hermes Workspace on Hostinger<\/strong><\/h2><p>On Hostinger, Hermes Workspace is available as a one-click Docker template that automatically sets up the agent and workspace containers.<\/p><p>This saves you from running installation and configuration commands manually, which can lead to errors.<\/p><p>If you&rsquo;re a new customer, open the <a href=\"\/vps\/docker\/hermes-workspace\">Hermes Workspace template<\/a> page, then choose your plan, billing period, and server location. After purchase, enter a workspace password and one API key.<\/p><p>The installation takes about five minutes. When it finishes, the system redirects you to the <strong>Docker Manage<\/strong>r page. From there, click <strong>Open<\/strong> in the <strong>Access<\/strong> column to access the web UI.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a5fd2a2c59ab\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fd2a2c59ab\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"2212\" height=\"714\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hpanel-vps-docker-manager-hermes-workspace-open-link-highlighted.png\/w=1024,h=1024,fit=scale-down\" alt=\"Docker Manager project list with the Open link for hermes-workspace shown\" class=\"wp-image-150048\" title=\"hpanel-vps-docker-manager-hermes-workspace-open-link-highlighted\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hpanel-vps-docker-manager-hermes-workspace-open-link-highlighted.png\/w=2212,fit=scale-down 2212w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hpanel-vps-docker-manager-hermes-workspace-open-link-highlighted.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hpanel-vps-docker-manager-hermes-workspace-open-link-highlighted.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hpanel-vps-docker-manager-hermes-workspace-open-link-highlighted.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hpanel-vps-docker-manager-hermes-workspace-open-link-highlighted.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hpanel-vps-docker-manager-hermes-workspace-open-link-highlighted.png\/w=1536,fit=scale-down 1536w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hpanel-vps-docker-manager-hermes-workspace-open-link-highlighted.png\/w=2048,fit=scale-down 2048w\" sizes=\"(max-width: 2212px) 100vw, 2212px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>If you already have a Hostinger VPS, you can still install the Hermes Workspace template through hPanel.<\/p><p>\n\n\n<div class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                <strong>Important!<\/strong> Changing the OS erases all data on the server, so <a href=\"https:\/\/www.hostinger.com\/support\/1583232-how-to-back-up-or-restore-a-vps-at-hostinger\/\">back up your files<\/a> and configurations first.\n            <\/p><\/div>\n\n\n\n<\/p><ol class=\"wp-block-list\">\n<li>Go to <strong>hPanel &rarr; VPS &rarr; Manage &rarr; OS &amp; Panel &rarr; Operating System<\/strong>.<\/li>\n\n\n\n<li>In the <strong>Change OS<\/strong> section, search for Hermes Workspace and select it.<\/li>\n<\/ol><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a5fd2a2c64b2\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fd2a2c64b2\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"2128\" height=\"850\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hpanel-vps-change-os-docker-application-hermes-workspace-highlighted.png\/w=1024,h=1024,fit=scale-down\" alt=\"hPanel Change OS screen with the Hermes Workspace Docker template selected\" class=\"wp-image-150047\" title=\"hpanel-vps-change-os-docker-application-hermes-workspace-highlighted\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hpanel-vps-change-os-docker-application-hermes-workspace-highlighted.png\/w=2128,fit=scale-down 2128w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hpanel-vps-change-os-docker-application-hermes-workspace-highlighted.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hpanel-vps-change-os-docker-application-hermes-workspace-highlighted.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hpanel-vps-change-os-docker-application-hermes-workspace-highlighted.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hpanel-vps-change-os-docker-application-hermes-workspace-highlighted.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hpanel-vps-change-os-docker-application-hermes-workspace-highlighted.png\/w=1536,fit=scale-down 1536w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/06\/hpanel-vps-change-os-docker-application-hermes-workspace-highlighted.png\/w=2048,fit=scale-down 2048w\" sizes=\"(max-width: 2128px) 100vw, 2128px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><ol start=\"3\" class=\"wp-block-list\">\n<li>Enter a workspace password and an API key for your preferred provider.<\/li>\n\n\n\n<li>Click <strong>Next &rarr; Deploy<\/strong>.<\/li>\n<\/ol><p>Once deployment finishes, go to <strong>Docker Manager &rarr; Projects<\/strong> and click <strong>Open<\/strong> to access the workspace web UI.<\/p><figure class=\"wp-block-image size-large\"><a class=\"hgr-tutorials-cta hgr-tutorials-cta-vps-hosting\" href=\"\/vps-hosting\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/02\/VPS-hosting-banner.png\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-77934\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/02\/VPS-hosting-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/02\/VPS-hosting-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/02\/VPS-hosting-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/02\/VPS-hosting-banner.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-common-hermes-workspace-setup-errors\"><strong>Common Hermes Workspace setup errors<\/strong><\/h2><p>Most Hermes Workspace setup errors come from a few common causes, such as a <strong>missing API flag, missing gateway key, dashboard that didn&rsquo;t start, or outdated agent build<\/strong>.<\/p><ul class=\"wp-block-list\">\n<li><strong>Gateway HTTP API is off.<\/strong> The error &ldquo;Could not reach Hermes gateway on 8645, 8642, or 8643&rdquo; means the workspace can&rsquo;t reach the gateway&rsquo;s HTTP API. This happens when the gateway is running but only serving messaging platforms, with the HTTP API turned off. Add <strong>API_SERVER_ENABLED=true<\/strong> to <strong>~\/.hermes\/.env<\/strong>, then restart the gateway with <strong>pkill -f &ldquo;hermes gateway&rdquo;<\/strong> and <strong>hermes gateway run<\/strong>.<\/li>\n\n\n\n<li><strong>Missing API server key.<\/strong> The error &ldquo;API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1&rdquo; means the gateway refuses to start its HTTP API. This happens when <strong>API_SERVER_KEY<\/strong> isn&rsquo;t set, since the gateway requires that key even on a local setup. Generate one with <strong>openssl rand -hex 32<\/strong>, add it as <strong>API_SERVER_KEY<\/strong> in <strong>~\/.hermes\/.env<\/strong>, and set the same value as <strong>HERMES_API_TOKEN<\/strong> in <strong>~\/hermes-workspace\/.env<\/strong>.<\/li>\n\n\n\n<li><strong>Dashboard isn&rsquo;t running.<\/strong> The log line &ldquo;mode=portable with missing=[&hellip;dashboard]&rdquo; means the workspace fell back to portable mode, where sessions, skills, memory, and jobs aren&rsquo;t available. This happens when the dashboard isn&rsquo;t running on port <strong>9119<\/strong>, usually because the startup command skipped it. Stop the running services with <strong>Ctrl+C<\/strong>, then start all three together with <strong>npx concurrently<\/strong> so the workspace boots with the dashboard and leaves portable mode.<\/li>\n\n\n\n<li><strong>Messaging allowlist isn&rsquo;t set.<\/strong> The warning &ldquo;No user allowlists configured&rdquo; means the agent blocks messages from users on any connected platform. This happens when a messaging platform like Telegram or Discord is enabled without an allowlist. Add <strong>GATEWAY_ALLOW_ALL_USERS=true<\/strong> to <strong>~\/.hermes\/.env<\/strong> to accept everyone, or set per-platform allowlists to limit who can reach it.<\/li>\n\n\n\n<li><strong>Hermes Agent is outdated.<\/strong> The log line &ldquo;missing=[chatCompletions, models, streaming, &hellip;]&rdquo; means the workspace can&rsquo;t find the endpoints it expects, even though the gateway responds. This happens when the installed Hermes Agent is older than the workspace, so the agent doesn&rsquo;t expose those endpoints. For a <strong>git<\/strong> install, update the agent with <strong>cd ~\/hermes-agent &amp;&amp; git pull &amp;&amp; uv pip install -e .<\/strong> For a PyPI install, run a pip upgrade. Then restart the gateway with <strong>hermes gateway run<\/strong>.<\/li>\n<\/ul><h2 class=\"wp-block-heading\" id=\"h-how-long-does-it-take-to-set-up-hermes-workspace\"><strong>How long does it take to set up Hermes Workspace?<\/strong><\/h2><p>Setting up Hermes Workspace takes about <strong>15 to 30 minutes<\/strong> from start to finish, depending on whether you&rsquo;re doing a clean install or you&rsquo;ve set up Hermes Agent before.<\/p><p>Installing Node.js and <strong>pnpm<\/strong> takes under five minutes. The one-line installer then pulls the workspace and agent in about the same amount of time.<\/p><p>If you&rsquo;ve never set up Hermes Agent before, this is usually the longest part. It takes around 10 minutes because you need to pick a provider, paste an API key, and confirm the settings.<\/p><p>If you&rsquo;ve already installed Hermes Agent and only need to clone Workspace into your existing environment, the process should take about five minutes.<\/p><p>Editing the environment files takes another two to three minutes, and starting the services takes the final minute or two.<\/p><h2 class=\"wp-block-heading\" id=\"h-can-i-run-multiple-hermes-workspace-instances-on-the-same-machine\"><strong>Can I run multiple Hermes Workspace instances on the same machine?<\/strong><\/h2><p>Yes, you can run more than one Hermes Workspace instance on the same machine. <strong>Each instance is a separate copy, so it needs its own gateway, dashboard, and UI<\/strong>.<\/p><p>The catch is that two services can&rsquo;t share a port. Only one gateway can use port <strong>8642<\/strong>, so give the second instance&rsquo;s gateway a different port and point its <strong>HERMES_API_URL<\/strong> to that port.<\/p><p>Do the same for its UI by running it on a free port with <strong>PORT=3001 pnpm dev<\/strong>. Each instance also keeps its own configuration, so they won&rsquo;t overwrite each other.<\/p><p>If you only want to run different agents in one Workspace, you don&rsquo;t need a second instance. Add each one as a profile under <strong>~\/.hermes\/profiles\/profile-name<\/strong>, where <strong>profile-name<\/strong> is a label you choose. You can then switch between profiles from the web UI.<\/p><h2 class=\"wp-block-heading\" id=\"h-next-steps-after-setting-up-hermes-workspace\"><strong>Next steps after setting up Hermes Workspace<\/strong><\/h2><p>With Hermes Workspace running, focus on these four next steps: secure remote access, explore the skills marketplace, schedule autonomous work, and install it as an app.<\/p><ul class=\"wp-block-list\">\n<li><strong>Secure remote access.<\/strong> Replace the SSH tunnel with Tailscale or a reverse proxy. The tunnel only works while its terminal stays open, so it isn&rsquo;t practical for daily access. For Tailscale, set <strong>API_SERVER_HOST=0.0.0.0<\/strong> on the gateway, then update the gateway and dashboard URLs in the workspace environment file.<\/li>\n\n\n\n<li><strong>Explore the skills marketplace.<\/strong> <a href=\"\/tutorials\/what-are-hermes-agent-skills\/\">Hermes skills<\/a> are reusable capabilities that teach the agent how to handle specific tasks. Adding them extends what the agent can do, from research to file management. Open the <strong>Skills<\/strong> tab, browse the marketplace, and enable the ones that fit your workflow.<\/li>\n\n\n\n<li><strong>Schedule autonomous work.<\/strong> The built-in cron scheduler runs prompts on a schedule. It handles routine work, such as a daily report or an hourly check, without you starting each run. Set a prompt and its cadence, then track the runs from the <strong>Jobs<\/strong> view.<\/li>\n\n\n\n<li><strong>Install it as an app.<\/strong> Install the workspace as a progressive web app (PWA). It then opens like a native app on your computer or phone without a browser tab. Use the Chrome install icon, or go to <strong>Share &rarr; Add to Home Screen<\/strong> on iOS Safari.<\/li>\n<\/ul><p>If you want ideas on what to automate, browse popular <a href=\"\/tutorials\/hermes-agent-use-cases\/\">Hermes Agent use cases<\/a> to see how other people use the agent.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hermes Workspace is an open-source web UI for Hermes Agent, a self-improving AI agent from Nous Research. It brings the [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/tutorials\/how-to-set-up-hermes-workspace\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":411,"featured_media":150042,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"How to set up Hermes Workspace: Step-by-step guide","rank_math_description":"Learn how to set up Hermes Workspace on a VPS, configure the gateway and dashboard, and access the browser-based AI agent command center.","rank_math_focus_keyword":"how to set up hermes workspace","footnotes":""},"categories":[22646,22644],"tags":[],"class_list":["post-150032","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pre-installed-applications","category-vps"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-set-up-hermes-workspace\/","default":1},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-set-up-hermes-workspace\/","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/how-to-set-up-hermes-workspace\/","default":0},{"locale":"en-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-set-up-hermes-workspace\/","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/how-to-set-up-hermes-workspace\/","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-set-up-hermes-workspace\/","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-set-up-hermes-workspace\/","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-set-up-hermes-workspace\/","default":0}],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/posts\/150032","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/users\/411"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/comments?post=150032"}],"version-history":[{"count":4,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/posts\/150032\/revisions"}],"predecessor-version":[{"id":150229,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/posts\/150032\/revisions\/150229"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/media\/150042"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/media?parent=150032"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/categories?post=150032"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/tags?post=150032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}