<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Chris Vautour</title>
    <description>The latest articles on Forem by Chris Vautour (@chris_vautour_4652874465d).</description>
    <link>https://forem.com/chris_vautour_4652874465d</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3852467%2Fc4104d9b-02b0-4535-8dfd-450fa5c70108.png</url>
      <title>Forem: Chris Vautour</title>
      <link>https://forem.com/chris_vautour_4652874465d</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/chris_vautour_4652874465d"/>
    <language>en</language>
    <item>
      <title>I built an MCP server that lets Claude Code actually run commands on my servers (not just suggest them)</title>
      <dc:creator>Chris Vautour</dc:creator>
      <pubDate>Sat, 18 Apr 2026 11:43:06 +0000</pubDate>
      <link>https://forem.com/chris_vautour_4652874465d/i-built-an-mcp-server-that-lets-claude-code-actually-run-commands-on-my-servers-not-just-suggest-17ca</link>
      <guid>https://forem.com/chris_vautour_4652874465d/i-built-an-mcp-server-that-lets-claude-code-actually-run-commands-on-my-servers-not-just-suggest-17ca</guid>
      <description>&lt;p&gt;I've been using Claude Code for infrastructure work for months. And every session followed the same pattern:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ask Claude what command to run&lt;/li&gt;
&lt;li&gt;Read Claude's answer&lt;/li&gt;
&lt;li&gt;Open terminal&lt;/li&gt;
&lt;li&gt;Copy-paste the command&lt;/li&gt;
&lt;li&gt;Read output&lt;/li&gt;
&lt;li&gt;Paste output back to Claude&lt;/li&gt;
&lt;li&gt;Repeat&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It felt like I'd hired a senior engineer who wasn't allowed to touch the keyboard. So I built &lt;strong&gt;Conduit&lt;/strong&gt; — and gave Claude the keyboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Conduit?
&lt;/h2&gt;

&lt;p&gt;Conduit is a cross-platform remote connection manager (SSH, RDP, VNC, web) with a built-in MCP server. Think Termius or Royal TS, but the whole thing is wired up as an MCP server so Claude Code can drive it directly.&lt;/p&gt;

&lt;p&gt;Apache 2.0 open source: &lt;a href="https://github.com/advenimus/conduit-desktop" rel="noopener noreferrer"&gt;https://github.com/advenimus/conduit-desktop&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The MCP integration
&lt;/h2&gt;

&lt;p&gt;When you add Conduit as an MCP server in Claude Code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add conduit &lt;span class="nt"&gt;--&lt;/span&gt; node &lt;span class="s2"&gt;"/Applications/Conduit.app/Contents/Resources/mcp/dist/index.js"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--env&lt;/span&gt; &lt;span class="nv"&gt;CONDUIT_SOCKET_PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/Library/Application Support/conduit/conduit.sock"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--env&lt;/span&gt; &lt;span class="nv"&gt;CONDUIT_ENV&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"production"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude gets access to 60+ tools across five categories.&lt;/p&gt;

&lt;h3&gt;
  
  
  Terminal (SSH)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;terminal_execute&lt;/code&gt; — run a command in an SSH session and get the output back&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;terminal_read_pane&lt;/code&gt; — read the current terminal buffer&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;terminal_send_keys&lt;/code&gt; — send raw keystrokes (including Ctrl+C, arrow keys, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now instead of "run &lt;code&gt;df -h&lt;/code&gt; on each server," Claude just does it. Across all of them.&lt;/p&gt;

&lt;h3&gt;
  
  
  RDP / VNC
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;rdp_screenshot&lt;/code&gt; — capture a screenshot of a remote desktop&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rdp_click&lt;/code&gt; — click at coordinates&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rdp_type&lt;/code&gt; — type text&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rdp_send_key&lt;/code&gt; — send keyboard shortcuts (Win+R, Ctrl+Alt+Del, etc.)&lt;/li&gt;
&lt;li&gt;Same set for VNC sessions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This unlocks something surprisingly powerful: Claude can &lt;em&gt;look at&lt;/em&gt; a Windows server, read error dialogs, and click through them. Not just SSH into the host — actually drive the graphical interface.&lt;/p&gt;

&lt;h3&gt;
  
  
  Web sessions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;website_click_element&lt;/code&gt; — click by CSS selector (more reliable than coordinates)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;website_fill_input&lt;/code&gt; — fill inputs with React/Vue/Angular event dispatch&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;website_execute_js&lt;/code&gt; — run JavaScript in the page&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;website_get_elements&lt;/code&gt; — discover all interactive elements on a page&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Web sessions are driven by Electron's WebContentsView — a full browser engine. Claude can navigate admin dashboards, fill forms, and execute JavaScript in sessions that are already logged in.&lt;/p&gt;

&lt;h3&gt;
  
  
  Credential vault
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;credential_list&lt;/code&gt; — list stored credentials (metadata only)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;credential_read&lt;/code&gt; — retrieve a secret (requires explicit user approval prompt)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AES-256, local-first. Secrets never leave your machine. When the agent wants a credential, you get an approval prompt — you see exactly what's being requested and why.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it actually works under the hood
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Claude Code ──(MCP protocol)──&amp;gt; Conduit MCP binary (Node.js)
                                         │
                                  (Unix socket)
                                         │
                                 Conduit desktop app
                                         │
                    ┌────────────────────┼─────────────────────┐
                    │                   │                      │
               SSH session         RDP session           Web session
               (node-pty)       (FreeRDP C helper)  (Electron WebContentsView)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The MCP binary is a separate Node.js process that connects to the desktop app over a Unix domain socket. Every tool call goes through the main process where it's rate-limited, audited, quota-checked, and approval-prompted.&lt;/p&gt;

&lt;p&gt;The MCP binary holds no session state — it's a thin proxy. If it crashes or restarts, it reconnects automatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  Safety model
&lt;/h2&gt;

&lt;p&gt;"AI agent with SSH access to all your servers" is a large trust surface. Here's how Conduit handles it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Approval prompts&lt;/strong&gt; are color-coded by risk:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔵 Read operations (list connections, read terminal buffer)&lt;/li&gt;
&lt;li&gt;🟡 Execute operations (run commands, navigate web)&lt;/li&gt;
&lt;li&gt;🟠 Write operations (fill forms, click UI elements)&lt;/li&gt;
&lt;li&gt;🔴 Credential operations (read secrets from vault)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every prompt has a &lt;strong&gt;120-second auto-deny timeout&lt;/strong&gt; — walk away from your machine and nothing sensitive happens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Audit log&lt;/strong&gt; records every tool call: timestamp, tool name, arguments (secrets masked), result status.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rate limiting&lt;/strong&gt;: 30 calls/minute per connection by default, token bucket algorithm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bring-your-own-subscription&lt;/strong&gt;: Claude Code authenticates directly with Anthropic. Conduit never proxies API calls or sees your API keys.&lt;/p&gt;

&lt;h2&gt;
  
  
  A real example
&lt;/h2&gt;

&lt;p&gt;Here's a real workflow:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Check disk usage on all prod servers, find the one with least headroom, and tell me what's in its largest directories"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Claude:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;connection_list&lt;/code&gt; → gets my SSH connections&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;terminal_execute&lt;/code&gt; on each → runs &lt;code&gt;df -h&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Parses output, identifies the problem server&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;terminal_execute&lt;/code&gt; → runs &lt;code&gt;du -sh /* 2&amp;gt;/dev/null | sort -rh | head -20&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Reports back with findings&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What used to be 10 minutes of tabbing between terminals is a 30-second conversation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech stack
&lt;/h2&gt;

&lt;p&gt;For the curious:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;App&lt;/strong&gt;: Electron 34 + React 18 + TypeScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSH&lt;/strong&gt;: ssh2 + node-pty + xterm.js&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RDP&lt;/strong&gt;: FreeRDP 3.x (custom C helper binary with binary protocol to the main process)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VNC&lt;/strong&gt;: rfb2&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP&lt;/strong&gt;: @modelcontextprotocol/sdk&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vault&lt;/strong&gt;: AES-256-GCM, local storage, optional Supabase cloud sync&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auth&lt;/strong&gt;: Supabase&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The FreeRDP integration was the hardest part — building the C helper, the binary protocol, and getting screenshots flowing at acceptable latency took weeks. Happy to write a separate post on that if there's interest.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; (Apache 2.0): &lt;a href="https://github.com/advenimus/conduit-desktop" rel="noopener noreferrer"&gt;https://github.com/advenimus/conduit-desktop&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Download&lt;/strong&gt; (macOS/Windows/Linux): &lt;a href="https://conduitdesktop.com/download" rel="noopener noreferrer"&gt;https://conduitdesktop.com/download&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Free for personal use&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy to answer questions in the comments — especially about the MCP tool design, the FreeRDP C helper, or the approval/safety system.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>claude</category>
      <category>opensource</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Best SSH Clients for Mac in 2026 — Compared &amp; Ranked</title>
      <dc:creator>Chris Vautour</dc:creator>
      <pubDate>Tue, 31 Mar 2026 14:09:01 +0000</pubDate>
      <link>https://forem.com/chris_vautour_4652874465d/best-ssh-clients-for-mac-in-2026-compared-ranked-1b9b</link>
      <guid>https://forem.com/chris_vautour_4652874465d/best-ssh-clients-for-mac-in-2026-compared-ranked-1b9b</guid>
      <description>&lt;p&gt;If you manage remote servers from a Mac, your SSH client is one of the most important tools in your workflow. I tested and compared the most popular SSH clients for macOS in 2026. Here's what I found.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Client&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;th&gt;Protocols&lt;/th&gt;
&lt;th&gt;AI&lt;/th&gt;
&lt;th&gt;Vault&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Conduit&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Free / $12/mo&lt;/td&gt;
&lt;td&gt;SSH, RDP, VNC, Web&lt;/td&gt;
&lt;td&gt;9 models&lt;/td&gt;
&lt;td&gt;AES-256&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terminal.app&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;SSH&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Keychain&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;iTerm2&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;SSH&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Warp&lt;/td&gt;
&lt;td&gt;Free / $18/mo&lt;/td&gt;
&lt;td&gt;SSH&lt;/td&gt;
&lt;td&gt;Built-in&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Termius&lt;/td&gt;
&lt;td&gt;Free / $10/mo&lt;/td&gt;
&lt;td&gt;SSH, SFTP, Mosh&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;Cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Royal TSX&lt;/td&gt;
&lt;td&gt;Free / $42/yr&lt;/td&gt;
&lt;td&gt;SSH, RDP, VNC, SFTP&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Local&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tabby&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;SSH, Serial&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Config&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prompt 3&lt;/td&gt;
&lt;td&gt;$49.99&lt;/td&gt;
&lt;td&gt;SSH&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Keychain&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  1. Conduit — Best for AI-powered multi-protocol management
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://conduitdesktop.com" rel="noopener noreferrer"&gt;Conduit&lt;/a&gt; is the only SSH client for Mac that combines SSH, RDP, VNC, and web sessions with a built-in AI assistant. It supports 9 AI models including Claude Opus 4.6 and GPT-5.2.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key features:&lt;/strong&gt; SSH + RDP + VNC + Web in one app, AI assistant that reads terminal output, MCP server for Claude Code/Codex, AES-256 encrypted vault, cross-platform (macOS/Windows/Linux/iOS).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; Free forever (unlimited connections). Pro $12/mo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://conduitdesktop.com/download" rel="noopener noreferrer"&gt;Download Conduit free →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Terminal.app — Best for minimal needs
&lt;/h2&gt;

&lt;p&gt;The built-in macOS Terminal. Zero setup, uses system OpenSSH, integrates with Keychain. Best for 1-3 servers.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. iTerm2 — Best free terminal emulator
&lt;/h2&gt;

&lt;p&gt;Split panes, hotkey window, shell integration, extensive customization. The gold standard free terminal for macOS. No connection manager or AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Warp — Best AI-first terminal
&lt;/h2&gt;

&lt;p&gt;Modern editor-like terminal with block-based output and AI command suggestions. Requires account creation. SSH-only.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Termius — Best for SSH with cloud sync
&lt;/h2&gt;

&lt;p&gt;Cross-platform SSH with cloud-synced credentials and built-in SFTP. SSH/SFTP only — no RDP or VNC. Pro $10/mo.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Royal TSX — Best traditional connection manager
&lt;/h2&gt;

&lt;p&gt;Plugin-based multi-protocol manager (SSH, RDP, VNC, SFTP). Native macOS app. Free tier limited to 10 connections. No AI, no Linux.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Tabby — Best open-source modern terminal
&lt;/h2&gt;

&lt;p&gt;Open-source terminal with SSH connection manager and split panes. Cross-platform. No RDP/VNC/AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Prompt 3 — Best native Mac SSH experience
&lt;/h2&gt;

&lt;p&gt;Beautiful native macOS SSH client from Panic. iCloud sync. SSH-only, $49.99 one-time.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to choose
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Casual use:&lt;/strong&gt; Terminal.app or iTerm2&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI command help:&lt;/strong&gt; Warp&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-device sync:&lt;/strong&gt; Termius&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-protocol (SSH + RDP + VNC):&lt;/strong&gt; &lt;a href="https://conduitdesktop.com" rel="noopener noreferrer"&gt;Conduit&lt;/a&gt; or Royal TSX&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-powered infrastructure:&lt;/strong&gt; &lt;a href="https://conduitdesktop.com" rel="noopener noreferrer"&gt;Conduit&lt;/a&gt; (only option with MCP server)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Native Mac design:&lt;/strong&gt; Prompt 3&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ssh</category>
      <category>macos</category>
      <category>devtools</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
