<?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>DEV Community: Charlie Archer Simmons</title>
    <description>The latest articles on DEV Community by Charlie Archer Simmons (@charlie_archersimmons_b6).</description>
    <link>https://dev.to/charlie_archersimmons_b6</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3830184%2F7bcd24ae-62c3-4554-9039-94659c4e3d9d.jpg</url>
      <title>DEV Community: Charlie Archer Simmons</title>
      <link>https://dev.to/charlie_archersimmons_b6</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/charlie_archersimmons_b6"/>
    <language>en</language>
    <item>
      <title>I put my Claude Code sessions on Discord — and now it's a one-line plugin</title>
      <dc:creator>Charlie Archer Simmons</dc:creator>
      <pubDate>Wed, 17 Jun 2026 12:52:05 +0000</pubDate>
      <link>https://dev.to/charlie_archersimmons_b6/i-put-my-claude-code-sessions-on-discord-and-now-its-a-one-line-plugin-243k</link>
      <guid>https://dev.to/charlie_archersimmons_b6/i-put-my-claude-code-sessions-on-discord-and-now-its-a-one-line-plugin-243k</guid>
      <description>&lt;p&gt;About 7,000 developers install a little tool of mine every month. It has 7 GitHub stars. I think about that gap a lot — but it also means thousands of these cards are quietly running in Discord right now, which is the whole point.&lt;/p&gt;

&lt;p&gt;It's called &lt;strong&gt;claude-rpc&lt;/strong&gt;, and as of today you can install it from inside Claude Code itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it is
&lt;/h2&gt;

&lt;p&gt;claude-rpc is a small Node daemon that takes the lifecycle events Claude Code already fires — session start, each tool call, token counts — and turns them into a live &lt;strong&gt;Discord Rich Presence&lt;/strong&gt; card on your profile: current model, project, what tool is running, plus lifetime stats. Your friends see what you're building; you get a year heatmap of your own work.&lt;/p&gt;

&lt;p&gt;It's free, open source, and has &lt;strong&gt;zero runtime dependencies&lt;/strong&gt; — the Discord IPC client is hand-rolled, so the entire supply chain fits in a single review.&lt;/p&gt;

&lt;h2&gt;
  
  
  The new part: a Claude Code plugin
&lt;/h2&gt;

&lt;p&gt;Two lines, in the editor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/plugin marketplace add rar-file/claude-rpc
/plugin install claude-rpc@claude-rpc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The card shows up on your next session. That's it.&lt;/p&gt;

&lt;p&gt;The plugin itself is deliberately thin — one &lt;code&gt;SessionStart&lt;/code&gt; hook that runs the same installer you'd run by hand (&lt;code&gt;npx claude-rpc@latest setup&lt;/code&gt;) once, in the background, then gets out of the way. Claude Code measures it at ~0 tokens of context per session. The real package still does the real work: wiring hooks, holding Discord's local socket, starting at login.&lt;/p&gt;

&lt;p&gt;It's now the &lt;strong&gt;fifth&lt;/strong&gt; way to install the same tool — &lt;code&gt;npx&lt;/code&gt;, a &lt;code&gt;curl&lt;/code&gt; one-liner, Homebrew, a Windows exe, and now this — so pick whatever fits your setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it actually works
&lt;/h2&gt;

&lt;p&gt;No magic: 5 hooks, one small state file, and a daemon that holds Discord's &lt;strong&gt;local&lt;/strong&gt; socket. No polling, no network calls, no telemetry you didn't opt into. If you want to read it, start with &lt;code&gt;src/discord-ipc.js&lt;/code&gt;.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Site + build log: &lt;a href="https://claude-rpc.vercel.app" rel="noopener noreferrer"&gt;https://claude-rpc.vercel.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Source: &lt;a href="https://github.com/rar-file/claude-rpc" rel="noopener noreferrer"&gt;https://github.com/rar-file/claude-rpc&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Built solo, on weekends. If one of those 7,000 cards ends up being yours, a GitHub star is the cheapest possible way to tell me it's working.&lt;/p&gt;

</description>
      <category>claude</category>
      <category>discord</category>
      <category>opensource</category>
      <category>node</category>
    </item>
    <item>
      <title>I built a free self-hosted AI chat app with web search and browser agent automation</title>
      <dc:creator>Charlie Archer Simmons</dc:creator>
      <pubDate>Tue, 17 Mar 2026 23:58:34 +0000</pubDate>
      <link>https://dev.to/charlie_archersimmons_b6/i-built-a-free-self-hosted-ai-chat-app-with-web-search-and-browser-agent-automation-6mm</link>
      <guid>https://dev.to/charlie_archersimmons_b6/i-built-a-free-self-hosted-ai-chat-app-with-web-search-and-browser-agent-automation-6mm</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkzp7svnc9j769fgwerhe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkzp7svnc9j769fgwerhe.png" alt=" " width="800" height="416"&gt;&lt;/a&gt;## What I built&lt;br&gt;
1 paragraph — what SURF is, what problem it solves.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why I built it
&lt;/h2&gt;

&lt;p&gt;ChatGPT costs money. Runs in the cloud. Your data leaves your machine.&lt;br&gt;
I wanted something free, local, and private.&lt;/p&gt;
&lt;h2&gt;
  
  
  What it can do
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;bullet list of features (keep it brief)&lt;/li&gt;
&lt;li&gt;include a screenshot / gif here ← critical&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Tech stack
&lt;/h2&gt;

&lt;p&gt;Python · Flask · Playwright · DuckDuckGo (no key needed)&lt;/p&gt;
&lt;h2&gt;
  
  
  The hard parts
&lt;/h2&gt;

&lt;p&gt;Pick 1-2 interesting technical challenges you solved.&lt;br&gt;
e.g. "Getting Playwright to stream browser screenshots in real time was tricky because..."&lt;br&gt;
This is what gets upvotes — people love implementation details.&lt;/p&gt;
&lt;h2&gt;
  
  
  Try it yourself
&lt;/h2&gt;

&lt;p&gt;Link to GitHub + one-line install command&lt;/p&gt;
&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;1-2 future features you're thinking about.&lt;br&gt;
Ask readers: "What would you add?"&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/rar-file" rel="noopener noreferrer"&gt;
        rar-file
      &lt;/a&gt; / &lt;a href="https://github.com/rar-file/surf" rel="noopener noreferrer"&gt;
        surf
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Self-hosted AI chat — web UI + terminal CLI. Connect any model (Ollama, OpenAI, Anthropic), free web search, browser agent automation, persistent memory, and analytics.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/rar-file/surf/assets/banner.svg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Frar-file%2Fsurf%2Fassets%2Fbanner.svg" alt="SURF — Search · Understand · Reason · Fast" width="100%"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;p&gt;&lt;a href="https://python.org" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/ae0e75b155a31adbd0bbcaaef1a5dd5b6100ea769df96a517ecd5d9325997a3f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e31302532422d3337373641423f7374796c653d666c61742d737175617265266c6f676f3d707974686f6e266c6f676f436f6c6f723d7768697465" alt="Python"&gt;&lt;/a&gt;
&lt;a href="https://flask.palletsprojects.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/d6c751c40d68958c6e4d32f996360cc30e37286f374424b785ab2e3c17272b36/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f466c61736b2d332e302d3030303030303f7374796c653d666c61742d737175617265266c6f676f3d666c61736b266c6f676f436f6c6f723d7768697465" alt="Flask"&gt;&lt;/a&gt;
&lt;a href="https://ollama.ai" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/485b0093758cad6de6ef0041323ab79558cdbf0ce8f8839ace0d16c4d6845eac/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4f6c6c616d612d6c6f63616c2532306d6f64656c732d626c61636b3f7374796c653d666c61742d737175617265266c6f676f3d6f6c6c616d61266c6f676f436f6c6f723d7768697465" alt="Ollama"&gt;&lt;/a&gt;
&lt;a href="https://playwright.dev" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/a4b65f5b1d0844c7312545bda5ddc7bf8ee6005ec08ec1fb4d9e121d3ad96125/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506c61797772696768742d62726f777365722532306167656e742d3435626134623f7374796c653d666c61742d737175617265266c6f676f3d706c6179777269676874266c6f676f436f6c6f723d7768697465" alt="Playwright"&gt;&lt;/a&gt;
&lt;a href="https://github.com/rar-file/surf/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/17bff2d66819daedba9ed586d4475c2630ef8d31024e0a2c7be0148b38b01070/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d3831386366383f7374796c653d666c61742d737175617265" alt="License: MIT"&gt;&lt;/a&gt;
&lt;a href="https://github.com/rar-file/surf/" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/3e3c4076485d036108e6f5c3bb5976df782f3a48a68ed8034860b523ab51b169/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506c6174666f726d2d57696e646f77732532302537432532306d61634f532532302537432532304c696e75782d3535353f7374796c653d666c61742d737175617265" alt="Platform"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;A self-hosted AI chat with a sleek web UI and a rich terminal CLI.&lt;/strong&gt;&lt;br&gt;
Connect any model. Search the web for free. Automate your browser. Remember everything.&lt;/p&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;SURF — Search · Understand · Reason · Fast&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A self-hosted AI chat with a polished web UI and a rich CLI. Connect to any model — local or cloud — with free built-in web search, persistent memory, a browser automation agent, and a full analytics dashboard.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Preview&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Web UI&lt;/h3&gt;
&lt;/div&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/rar-file/surf/assets/preview.svg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Frar-file%2Fsurf%2Fassets%2Fpreview.svg" alt="SURF Web UI" width="100%"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Terminal CLI&lt;/h3&gt;

&lt;/div&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/rar-file/surf/assets/cli-preview.svg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Frar-file%2Fsurf%2Fassets%2Fcli-preview.svg" alt="SURF CLI" width="90%"&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="50%"&gt;
&lt;p&gt;&lt;strong&gt;🦙 Any AI Provider&lt;/strong&gt;&lt;br&gt;
Ollama (local), Anthropic Claude, OpenAI GPT, OpenRouter, or any OpenAI-compatible endpoint. Switch mid-conversation with &lt;code&gt;/provider&lt;/code&gt;.&lt;/p&gt;
&lt;/td&gt;
&lt;td width="50%"&gt;
&lt;p&gt;&lt;strong&gt;🔍 Free Web Search&lt;/strong&gt;&lt;br&gt;
DuckDuckGo search with no API key and no quota. Multi-source synthesis powered by Playwright. Works in both web UI and CLI.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;🤖 Browser Agent&lt;/strong&gt;&lt;br&gt;
Vision-powered autonomous browsing. Give a task in plain English — SURF opens a real browser, takes screenshots, and executes: click, type, scroll…&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/rar-file/surf" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>python</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
