<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Openclaw on Home</title><link>/tags/openclaw/</link><description>Recent content in Openclaw on Home</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Sun, 14 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="/tags/openclaw/" rel="self" type="application/rss+xml"/><item><title>Tank OS: Running OpenClaw locally in a safe and open way</title><link>/2026/tank-os-running-openclaw-locally-in-a-safe-and-open-way/</link><pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate><guid>/2026/tank-os-running-openclaw-locally-in-a-safe-and-open-way/</guid><description>&lt;figure&gt;&lt;img src="/images/posts/post_37/overview.png"data-src="/images/posts/post_37/overview.png"
/&gt;&lt;figcaption&gt;
&lt;h4&gt;Tank OS packages OpenClaw as a rootless Podman workload inside a Fedora bootc VM - AI generated&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In this post, I want to describe how to run OpenClaw on a laptop using &lt;a href="https://github.com/LobsterTrap/tank-os"&gt;Tank OS&lt;/a&gt;, a Fedora bootc image that packages OpenClaw as a rootless workload inside an immutable operating system. This is a different path from the approach in the previous post on &lt;a href="/2026/deploying-openclaw-on-openshift/"&gt;Deploying OpenClaw on OpenShift&lt;/a&gt;. Tank OS runs on a regular machine through a virtual machine. The result is the same agent, running locally without any cluster dependency.&lt;/p&gt;
&lt;h2 id="what-is-tank-os"&gt;What is Tank OS&lt;/h2&gt;
&lt;p&gt;Tank OS was created by &lt;a href="https://github.com/sallyom"&gt;Sally O&amp;rsquo;Malley&lt;/a&gt;, a principal software engineer at Red Hat and one of the OpenClaw maintainers. The project was published in April 2026, shortly after OpenClaw&amp;rsquo;s rise to the most-starred software repository in GitHub&amp;rsquo;s history. In the &lt;a href="https://techcrunch.com/2026/04/28/red-hats-openclaw-maintainer-just-made-enterprise-claw-deployments-a-lot-safer/"&gt;TechCrunch article&lt;/a&gt; that accompanied the release, O&amp;rsquo;Malley was direct about the risk: OpenClaw is &amp;ldquo;an incredibly powerful application&amp;rdquo; but one that can be &amp;ldquo;dangerous&amp;rdquo; without proper configuration. &amp;ldquo;It&amp;rsquo;s not a tool that you can use easily unless you do have some sort of technical experience,&amp;rdquo; she said. Tank OS is her response to that gap.&lt;/p&gt;
&lt;p&gt;Tank OS packages OpenClaw inside a Fedora bootc image, which is a complete Linux operating system distributed as a container image. You do not install Tank OS on top of your existing OS. Instead, you build a QCOW2 disk image from the bootc image and boot it in a virtual machine. OpenClaw runs inside that VM as a rootless Podman container, isolated from the host.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;The following steps have been tested on a Apple Silicon MacBook. Before starting, the following must be in place:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Homebrew&lt;/strong&gt; - the package manager for macOS, used to install QEMU&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;QEMU&lt;/strong&gt; version 11 or later - the open source machine emulator used to run the Tank OS virtual machine: &lt;code&gt;brew install qemu&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Podman&lt;/strong&gt; version 5 or later — the container engine used by the smoke-test script to pull the Tank OS image and run &lt;code&gt;bootc-image-builder&lt;/code&gt; to produce the QCOW2 disk image&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;An SSH key pair&lt;/strong&gt; at &lt;em&gt;~/.ssh/&lt;/em&gt;. The Tank OS image locks the default user&amp;rsquo;s password, so this key is the only way in.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you do not have a key at that path, generate one:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ssh-keygen -t ed25519 -f ~/.ssh/github -C &lt;span class="s2"&gt;&amp;#34;tank-os&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="getting-started"&gt;Getting Started&lt;/h2&gt;
&lt;p&gt;The entry point to Tank OS is slightly unconventional, and worth explaining before running anything.&lt;/p&gt;
&lt;p&gt;Rather than providing a traditional setup script, the &lt;a href="https://github.com/LobsterTrap/tank-os"&gt;Tank OS GitHub repository&lt;/a&gt; includes an agent prompt at the bottom of its README. The idea is that you copy that prompt, paste it into a coding agent such as Claude Code, and the agent handles the bootstrap: it clones the repository, inspects the structure, and produces the &lt;code&gt;smoke-test.sh&lt;/code&gt; script that drives the actual workflow. Instead of reading through setup instructions and editing configuration by hand, you hand the prompt to the agent and get a runnable script back.&lt;/p&gt;
&lt;p&gt;This is an uncommon way to explore a new project. The approach makes sense here because the setup involves several environment-specific details, including QEMU firmware paths, the difference between rootful and rootless Podman, and SSH key locations. An agent can adapt these to your machine setup without requiring manual edits to a configuration file.&lt;/p&gt;
&lt;h2 id="building-booting-and-running-openclaw"&gt;Building, Booting, and Running OpenClaw&lt;/h2&gt;
&lt;p&gt;Once the agent has produced the &lt;code&gt;smoke-test.sh&lt;/code&gt; script, the rest of the workflow runs through that script in four phases.&lt;/p&gt;
&lt;h3 id="phase-1-building-the-disk-image"&gt;Phase 1: Building the Disk Image&lt;/h3&gt;
&lt;p&gt;First, make sure the default Podman machine is running:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;podman machine init
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;podman machine start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then run the build phase:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./smoke-test.sh build
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This phase does several things automatically. It reads your SSH public key from &lt;code&gt;~/.ssh/github.pub&lt;/code&gt; and writes a &lt;code&gt;config.json&lt;/code&gt; file that embeds the key into the disk image at build time. Without this step, the VM boots with no login path because the &lt;code&gt;openclaw&lt;/code&gt; user password is locked in the default image.&lt;/p&gt;
&lt;p&gt;Next, the script establishes a rootful Podman connection, required by the &lt;em&gt;bootc-image-builder&lt;/em&gt; to write to the container storage, pulls the Tank OS image into the rootful store, and runs the &lt;em&gt;bootc-image-builder&lt;/em&gt; as a privileged container to produce the QCOW2 disk image.&lt;/p&gt;
&lt;p&gt;The output is then resized to 20 GB. The default 10 GB is not enough once the 3.5 GB OpenClaw container image and the OS are both on disk.&lt;/p&gt;
&lt;p&gt;The build takes a few minutes. When it finishes, the QCOW2 file is in the output directory &lt;em&gt;out-tank-os&lt;/em&gt;, ready to boot.&lt;/p&gt;
&lt;figure&gt;&lt;img src="/images/posts/post_37/build_step.png"data-src="/images/posts/post_37/build_step.png"
/&gt;&lt;figcaption&gt;
&lt;h4&gt;Terminal output once the build step completes.&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id="phase-2-starting-the-vm"&gt;Phase 2: Starting the VM&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./smoke-test.sh vm
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This starts QEMU with Apple&amp;rsquo;s Hypervisor Framework for acceleration, four virtual CPUs, 4 GB of RAM, and port forwarding from &lt;code&gt;localhost:2222&lt;/code&gt; to port 22 inside the VM. The VM boots using the UEFI firmware that Homebrew installs alongside QEMU.&lt;/p&gt;
&lt;p&gt;The terminal shows the VM console as the OS starts. The OpenClaw Podman service launches automatically as a systemd user unit.&lt;/p&gt;
&lt;h3 id="phase-3-connecting-to-openclaw"&gt;Phase 3: Connecting to OpenClaw&lt;/h3&gt;
&lt;p&gt;Open a second terminal and wait for the VM&amp;rsquo;s SSH daemon to accept connections, then log in:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;until&lt;/span&gt; ssh -o &lt;span class="nv"&gt;ConnectTimeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt; -o &lt;span class="nv"&gt;StrictHostKeyChecking&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;no &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -i ~/.ssh/github -p &lt;span class="m"&gt;2222&lt;/span&gt; openclaw@localhost &lt;span class="nb"&gt;true&lt;/span&gt; 2&amp;gt;/dev/null&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Waiting for VM...&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; sleep &lt;span class="m"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; ssh -o &lt;span class="nv"&gt;StrictHostKeyChecking&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;no -i ~/.ssh/github -p &lt;span class="m"&gt;2222&lt;/span&gt; openclaw@localhost
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Once logged into the VM, verify the agent is running with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;podman ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;figure&gt;&lt;img src="/images/posts/post_37/vm_connection.png"data-src="/images/posts/post_37/vm_connection.png"
/&gt;&lt;figcaption&gt;
&lt;h4&gt;Terminal output shows OpenClaw running as Podman container inside the Fedora VM&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Once inside the VM, retrieve the gateway authentication token:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;jq -r &lt;span class="s1"&gt;&amp;#39;.gateway.auth.token&amp;#39;&lt;/span&gt; ~/.openclaw/openclaw.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If the command returns nothing, generate a token first, then repeat:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;openclaw doctor --generate-gateway-token
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In a third terminal, open the SSH tunnel so the OpenClaw web interface is reachable from your browser:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ssh -N -o &lt;span class="nv"&gt;StrictHostKeyChecking&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;no -i ~/.ssh/github -p &lt;span class="m"&gt;2222&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -L 18789:127.0.0.1:18789 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -L 18790:127.0.0.1:18790 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; openclaw@localhost
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Open &lt;code&gt;http://127.0.0.1:18789&lt;/code&gt; in a browser. Paste the gateway token when prompted. The OpenClaw dashboard appears and the agent is ready.&lt;/p&gt;
&lt;figure&gt;&lt;img src="/images/posts/post_37/openclaw_gateway.png"data-src="/images/posts/post_37/openclaw_gateway.png"
/&gt;&lt;figcaption&gt;
&lt;h4&gt;OpenClaw Gateway Dashboard running locally&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id="adding-a-model-provider"&gt;Adding a Model Provider&lt;/h3&gt;
&lt;p&gt;Tank OS stores API keys as Podman secrets rather than in configuration files. From inside the VM, create a secret for your provider:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%s&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$ANTHROPIC_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; podman secret create anthropic_api_key -
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%s&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$OPENAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; podman secret create openai_api_key -
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%s&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$GEMINI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; podman secret create gemini_api_key -
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%s&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$OPENROUTER_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; podman secret create openrouter_api_key -
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then sync it to the OpenClaw configuration and restart the service:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tank-openclaw-secrets
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl --user restart openclaw.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This updates the OpenClaw configuration and restarts the service.&lt;/p&gt;
&lt;figure&gt;&lt;img src="/images/posts/post_37/openclaw_dashboard.png"data-src="/images/posts/post_37/openclaw_dashboard.png"
/&gt;&lt;figcaption&gt;
&lt;h4&gt;OpenClaw Dashboard running locally, configured to use Anthropic Claude Sonnet model&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Tank OS is a practical way to get OpenClaw running on a laptop without modifying the host system. The agent runs inside a virtual machine on an immutable Fedora base, which limits what a misconfigured agent can reach on the host. Updating is also clean: pull a new bootc image and reboot, and the system reflects the new state.&lt;/p&gt;
&lt;p&gt;For teams that already have OpenShift running, the claw-installer approach from the &lt;a href="/2026/deploying-openclaw-on-openshift/"&gt;previous post&lt;/a&gt; is faster to deploy and integrates with cluster authentication out of the box. Tank OS is the right choice when you want a self-contained local setup that does not depend on a cluster, a cost-effective way to explore OpenClaw, or a portable environment to run a demo.&lt;/p&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Tank OS - GitHub repository - &lt;a href="https://github.com/LobsterTrap/tank-os"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Deploying OpenClaw on OpenShift - &lt;a href="/2026/deploying-openclaw-on-openshift/"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sally O&amp;rsquo;Malley - GitHub Profile - &lt;a href="https://github.com/sallyom"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Red Hat&amp;rsquo;s OpenClaw maintainer just made enterprise Claw deployments a lot safer - TechCrunch - &lt;a href="https://techcrunch.com/2026/04/28/red-hats-openclaw-maintainer-just-made-enterprise-claw-deployments-a-lot-safer/"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Running the Red Hat AI Inference Server on OpenShift - &lt;a href="/2026/running-the-red-hat-ai-inference-server-on-openshift/"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fedora bootc documentation - &lt;a href="https://fedora.gitlab.io/bootc/docs/"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Deploying OpenClaw on OpenShift</title><link>/2026/deploying-openclaw-on-openshift/</link><pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate><guid>/2026/deploying-openclaw-on-openshift/</guid><description>&lt;figure&gt;&lt;img src="/images/posts/post_36/overview.png"data-src="/images/posts/post_36/overview.png"
/&gt;&lt;figcaption&gt;
&lt;h4&gt;The claw-installer automates the full OpenShift deployment in minutes, including authentication and TLS-terminated route - AI generated&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In this post, I want to describe how to deploy &lt;em&gt;OpenClaw&lt;/em&gt; on OpenShift using a browser-based installer. It is possible to configure OpenClaw to use a self-hosted model endpoint. This post builds on &lt;a href="/2026/running-the-red-hat-ai-inference-server-on-openshift/"&gt;Running the Red Hat AI Inference Server on OpenShift&lt;/a&gt; for the model serving layer and sits alongside the &lt;a href="/2026/deploying-hermes-agent-on-openshift/"&gt;Hermes Agent deployment post&lt;/a&gt; as a second option for running an AI agent on the same cluster.&lt;/p&gt;
&lt;p&gt;The two approaches are different in character. Hermes uses YAML manifests applied to OpenShift, requires a custom ServiceAccount with the &lt;code&gt;anyuid&lt;/code&gt; SCC, and is configured through environment variables and a config file. For OpenClaw it is possible to leverage the &lt;a href="https://github.com/sallyom/claw-installer"&gt;claw-installer&lt;/a&gt; repository, a community supported tool that automates the deployment of OpenClaw on OpenShift. The claw-installer uses a browser-based installer that generates and applies all manifests, runs inside the default &lt;code&gt;restricted-v2&lt;/code&gt; SCC without elevated permissions, and handles OpenShift OAuth authentication automatically through a sidecar container.&lt;/p&gt;
&lt;h2 id="what-is-openclaw"&gt;What is OpenClaw&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://openclaw.ai/"&gt;OpenClaw&lt;/a&gt; is an open-source agent framework designed to run on your own infrastructure. It connects to model providers, integrates with messaging platforms, and exposes a web interface for interacting with an agent.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/steipete"&gt;Peter Steinberger&lt;/a&gt; created OpenClaw in late 2025. The project gained traction quickly: by early 2026 it had become the most-starred software project in GitHub&amp;rsquo;s history, &lt;a href="https://www.star-history.com/blog/openclaw-surpasses-react-most-starred-software/"&gt;overtaking repositories&lt;/a&gt; that had accumulated stars over decades. At the &lt;a href="https://www.youtube.com/watch?v=jw_o0xr8MWU&amp;amp;list=PL5B692fm6--tiaBq8Gc0ZenDDcvk_8vEL"&gt;NVIDIA GTC keynote&lt;/a&gt; in March 2026, NVIDIA CEO Jensen Huang put it directly: &amp;ldquo;OpenClaw is the number one. It is the most popular open-source project in the history of humanity, and it did so in just a few weeks.&amp;rdquo;&lt;/p&gt;
&lt;figure&gt;&lt;img src="/images/posts/post_36/star_history.png"data-src="/images/posts/post_36/star_history.png"
/&gt;&lt;figcaption&gt;
&lt;h4&gt;GitHub Star History of OpenClaw relative to the Linux and React projects - [Source](https://www.star-history.com/blog/openclaw-surpasses-react-most-starred-software/)&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The gateway is the always-on component. It manages sessions, routes requests between channels, dispatches tool calls, and emits events. On OpenShift, it runs as a three-container pod: an init container that handles startup configuration, an OAuth-proxy sidecar that ties authentication to the OpenShift OAuth server, and the OpenClaw gateway itself. The pod runs under the default &lt;code&gt;restricted-v2&lt;/code&gt; SCC.&lt;/p&gt;
&lt;p&gt;OpenClaw supports the Model Context Protocol for tool integration. An &lt;code&gt;mcp.json&lt;/code&gt; file placed in the agent workspace directory provisions MCP servers at deploy time, and the installer merges it into the main configuration.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A running OpenShift cluster. The post &lt;a href="/2026/deploying-openshift-on-aws-with-automated-cluster-provisioning/"&gt;Deploying OpenShift on AWS&lt;/a&gt; covers one way to get there.&lt;/li&gt;
&lt;li&gt;The RHAIIS deployment from &lt;a href="/2026/running-the-red-hat-ai-inference-server-on-openshift/"&gt;Running the Red Hat AI Inference Server on OpenShift&lt;/a&gt; running in the &lt;code&gt;rhaiis&lt;/code&gt; namespace, or an external model provider API key if you prefer a AI model as a service.&lt;/li&gt;
&lt;li&gt;Node.js 22 or later installed locally.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="deploying-openclaw"&gt;Deploying OpenClaw&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Create a namespace:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;oc new-project openclaw
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="2"&gt;
&lt;li&gt;Clone the installer:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/sallyom/claw-installer.git
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; claw-installer
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="3"&gt;
&lt;li&gt;Start the installer:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm install &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; npm run build &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; npm run dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The installer starts a local web server on port 3000. Open &lt;code&gt;http://localhost:3000&lt;/code&gt; in a browser.&lt;/p&gt;
&lt;ol start="4"&gt;
&lt;li&gt;Configure the deployment in the installer UI.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In the Deploy tab, select &lt;strong&gt;OpenShift&lt;/strong&gt; as the deployment target. The installer reads the current &lt;code&gt;oc&lt;/code&gt; context to detect the cluster and active namespace. Fill in the configuration form:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Agent Name:&lt;/strong&gt; a name of your choice for your agent&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Project / Namespace:&lt;/strong&gt; the namespace to deploy the agent into, the installer pre-fills this from the current namespace in the &lt;code&gt;oc&lt;/code&gt; context&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inference providers:&lt;/strong&gt; add one or more model backends, for each provider specify the model endpoint, the model name, and the API key&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;&lt;img src="/images/posts/post_36/claw_installer.png"data-src="/images/posts/post_36/claw_installer.png"
/&gt;&lt;figcaption&gt;
&lt;h4&gt;OpenClaw Installer available at *localhost:3000*&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;If using RHAIIS as the model provider, the internal service DNS name keeps all model traffic inside the cluster. Retrieve the API key from the &lt;code&gt;rhaiis&lt;/code&gt; namespace before filling in the form:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;MODEL_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;oc get secret vllm-api-key-secret -n rhaiis &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -o &lt;span class="nv"&gt;jsonpath&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;{.data.VLLM_API_KEY}&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; base64 -d&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$MODEL_API_KEY&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Set the model endpoint to the internal cluster address:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;http://rhaiis-vllm.rhaiis.svc.cluster.local:8000/v1
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="5"&gt;
&lt;li&gt;Click &lt;strong&gt;Deploy OpenClaw&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The installer generates and applies all manifests against the active cluster context. In the target namespace it creates a ServiceAccount with OpenShift OAuth annotations, secrets for the OAuth client and the gateway token, ConfigMaps for the agent configuration and workspace files, a 10Gi PVC backed by block storage, a Deployment running the three-container pod, a Service, and a TLS-terminated Route using the cluster wildcard certificate.&lt;/p&gt;
&lt;p&gt;Once the pod reaches Running status, the OpenShift Topology view shows the deployment with two services: the gateway on port 18789 and the OAuth proxy on port 8443.&lt;/p&gt;
&lt;figure&gt;&lt;img src="/images/posts/post_36/openclaw_topology.png"data-src="/images/posts/post_36/openclaw_topology.png"
/&gt;&lt;figcaption&gt;
&lt;h4&gt;The openclaw deployment in the OpenShift Topology view, showing the pod, the gateway service on port 18789 and the OAuth proxy on port 8443 and the route&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;ol start="6"&gt;
&lt;li&gt;Retrieve the gateway token:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;OPENCLAW_HOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;oc get route openclaw -n openclaw &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -o &lt;span class="nv"&gt;jsonpath&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;{.spec.host}&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;OPENCLAW_GATEWAY_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;oc get secret openclaw-secrets -n openclaw &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -o &lt;span class="nv"&gt;jsonpath&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;{.data.OPENCLAW_GATEWAY_TOKEN}&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; base64 -d&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;OPENCLAW_HOST : &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPENCLAW_HOST&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;OPENCLAW_GATEWAY_TOKEN : &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPENCLAW_GATEWAY_TOKEN&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="7"&gt;
&lt;li&gt;Open the Route in a browser.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;OpenShift OAuth handles authentication automatically. Log in with your cluster credentials when prompted. After login, the OpenClaw gateway dashboard appears. Paste the gateway token into the &lt;strong&gt;Gateway-Token&lt;/strong&gt; field to authenticate the browser session with the running gateway.&lt;/p&gt;
&lt;figure&gt;&lt;img src="/images/posts/post_36/openclaw_gateway.png"data-src="/images/posts/post_36/openclaw_gateway.png"
/&gt;&lt;figcaption&gt;
&lt;h4&gt;The OpenClaw Gateway-Dashboard after the authentication step, showing the WebSocket connection URL and the Gateway-Token field used to authenticate the browser session&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;ol start="8"&gt;
&lt;li&gt;Approve the pairing in the installer.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Go back to the installer at &lt;code&gt;http://localhost:3000&lt;/code&gt;, open the &lt;strong&gt;Instances&lt;/strong&gt; tab, find the running instance, and click &lt;strong&gt;Approve Pairing&lt;/strong&gt;. This confirms the connection between the local installer session and the cluster deployment.&lt;/p&gt;
&lt;figure&gt;&lt;img src="/images/posts/post_36/openclaw_instances.png"data-src="/images/posts/post_36/openclaw_instances.png"
/&gt;&lt;figcaption&gt;
&lt;h4&gt;The claw-installer Instances tab showing the openclaw deployment running on OpenShift, with the Approve Pairing control and other management options&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Once the pairing is approved, the web interface is ready. The chat window connects to the configured model backend and the agent shows as ready. The OpenClaw dashboard can be used to further configure the agent, for example adding additional model providers or connecting messaging platforms.&lt;/p&gt;
&lt;figure&gt;&lt;img src="/images/posts/post_36/openclaw_dashboard.png"data-src="/images/posts/post_36/openclaw_dashboard.png"
/&gt;&lt;figcaption&gt;
&lt;h4&gt;OpenClaw Dashboard Overview&lt;/h4&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The OpenClaw gateway can expose an OpenAI-compatible API, so adding it as a connection in &lt;em&gt;Open WebUI&lt;/em&gt; follows the same steps described in the &lt;a href="/2026/running-the-red-hat-ai-inference-server-on-openshift/"&gt;Running the Red Hat AI Inference Server on OpenShift&lt;/a&gt; and &lt;a href="/2026/deploying-hermes-agent-on-openshift/"&gt;Deploying Hermes Agent on OpenShift&lt;/a&gt; posts.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;OpenClaw on OpenShift is a different path compared to the Hermes Agent deployment covered in the previous post. The installer handles all manifest generation from a web form, and the result is a running agent in minutes without writing any YAML. The OpenShift OAuth sidecar covers authentication from the start, using existing cluster credentials rather than a separately managed API key. The pod runs under the default &lt;code&gt;restricted-v2&lt;/code&gt; security policy, which matters in environments where elevated SCCs require explicit approval from a cluster administrator.&lt;/p&gt;
&lt;p&gt;If RHAIIS is already running on the same cluster, pointing OpenClaw at the internal service address keeps all model traffic off the public network. Both agents can run on the same cluster in separate namespaces without any conflict.&lt;/p&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Running the Red Hat AI Inference Server on OpenShift - &lt;a href="/2026/running-the-red-hat-ai-inference-server-on-openshift/"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Deploying Hermes Agent on OpenShift - &lt;a href="/2026/deploying-hermes-agent-on-openshift/"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;claw-installer - GitHub repository - &lt;a href="https://github.com/sallyom/claw-installer"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenClaw Project website - &lt;a href="https://openclaw.ai/"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Peter Steinbergers GitHub Profile - &lt;a href="https://github.com/steipete"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenClaw surpasses React as most-starred software on GitHub - &lt;a href="https://www.star-history.com/blog/openclaw-surpasses-react-most-starred-software/"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;NVIDIA GTC 2026 Keynote - YouTube - &lt;a href="https://www.youtube.com/watch?v=jw_o0xr8MWU&amp;amp;list=PL5B692fm6--tiaBq8Gc0ZenDDcvk_8vEL"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Nvidia CEO Jensen Huang says OpenClaw is &amp;ldquo;definitely the next ChatGPT&amp;rdquo; - CNBC - &lt;a href="https://www.cnbc.com/2026/03/17/nvidia-ceo-jensen-huang-says-openclaw-is-definitely-the-next-chatgpt.html"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Deploying OpenShift on AWS with Automated Cluster Provisioning - &lt;a href="/2026/deploying-openshift-on-aws-with-automated-cluster-provisioning/"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Deploying agents with Red Hat AI: The curious case of OpenClaw - &lt;a href="https://developers.redhat.com/articles/2026/04/14/deploying-agents-red-hat-ai-openclaw"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenClaw - GitHub repository - &lt;a href="https://github.com/openclaw/openclaw"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>