<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Infrastructure on human - The AI dev rig for AI coding agents</title>
    <link>https://gethuman.sh/docs/infrastructure/</link>
    <description>Recent content in Infrastructure on human - The AI dev rig for AI coding agents</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="https://gethuman.sh/docs/infrastructure/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Devcontainers</title>
      <link>https://gethuman.sh/docs/infrastructure/devcontainers/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://gethuman.sh/docs/infrastructure/devcontainers/</guid>
      <description>&lt;p&gt;AI agents inside devcontainers need access to issue trackers, Notion, Figma, and Amplitude, but credentials should stay on the host. human solves this with a daemon that forwards CLI commands from the container to the host.&lt;/p&gt;&#xA;&lt;h2 id=&#34;architecture&#34;&gt;Architecture&lt;/h2&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[Devcontainer]                          [Host]&#xA;human jira issues list                  human daemon (:19285)&#xA;    |  TCP                                  |  (executes command with&#xA;    └───── :19285 ──────────────────────────┘    host credentials)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The daemon also runs a chrome proxy on &lt;code&gt;:19286&lt;/code&gt; for &lt;a href=&#34;https://gethuman.sh/docs/infrastructure/chrome-bridge/&#34;&gt;Chrome Bridge&lt;/a&gt; support, an HTTPS proxy on &lt;code&gt;:19287&lt;/code&gt; for &lt;a href=&#34;#https-proxy&#34;&gt;outbound traffic filtering&lt;/a&gt;, and a &lt;a href=&#34;#env-file-protection&#34;&gt;FUSE .env filter&lt;/a&gt; that hides secrets from the agent.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chrome Bridge</title>
      <link>https://gethuman.sh/docs/infrastructure/chrome-bridge/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://gethuman.sh/docs/infrastructure/chrome-bridge/</guid>
      <description>&lt;p&gt;The Chrome Bridge enables &lt;code&gt;claude --chrome&lt;/code&gt; to work inside devcontainers. Claude Code&amp;rsquo;s Chrome integration uses Chrome&amp;rsquo;s native messaging protocol to communicate with the browser extension, which does not work from inside a container because Chrome runs on the host.&lt;/p&gt;&#xA;&lt;h2 id=&#34;architecture&#34;&gt;Architecture&lt;/h2&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[Devcontainer]                              [Host]&#xA;Claude Code --chrome                        Chrome + Extension&#xA;    |  (Unix socket)                            ^  (native messaging)&#xA;human chrome-bridge                         human daemon&#xA;    |  TCP (:19286)                             ^  (SocketRelay)&#xA;    └──────────── TCP tunnel ───────────────────┘&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;how-it-works&#34;&gt;How it works&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;human daemon start&lt;/code&gt; on the host starts the daemon (&lt;code&gt;:19285&lt;/code&gt;), chrome proxy (&lt;code&gt;:19286&lt;/code&gt;), and a SocketRelay that listens on a Unix socket in &lt;code&gt;/tmp/claude-mcp-browser-bridge-&amp;lt;username&amp;gt;/&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;human chrome-bridge&lt;/code&gt; in the container creates a Unix socket at the same path that Claude Code uses to discover the MCP browser bridge&lt;/li&gt;&#xA;&lt;li&gt;When Claude Code connects to the socket, the bridge tunnels traffic over TCP to the daemon&amp;rsquo;s chrome proxy&lt;/li&gt;&#xA;&lt;li&gt;The daemon pairs the connection with a Chrome native messaging connection via the SocketRelay&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;host-setup&#34;&gt;Host setup&lt;/h2&gt;&#xA;&lt;p&gt;Start the daemon on your host machine:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
