<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: btucker</title><link>https://news.ycombinator.com/user?id=btucker</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 09 Sep 2026 05:19:40 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=btucker" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by btucker in "Ask HN: What are tools you have made for yourself since the advent of AI?"]]></title><description><![CDATA[
<p>I built a terminal app for myself that conflates worktrees & tabs, runs every pane through a terminal multiplexer, lets me join in from my phone and generally makes me happy.<p><a href="https://github.com/btucker/graftty" rel="nofollow">https://github.com/btucker/graftty</a></p>
]]></description><pubDate>Tue, 09 Jun 2026 01:56:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48455234</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=48455234</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48455234</guid></item><item><title><![CDATA[New comment by btucker in "AI eats the world (Spring 26) [pdf]"]]></title><description><![CDATA[
<p>You can find the 4 versions of Benedict's deck here: <a href="https://www.ben-evans.com/presentations" rel="nofollow">https://www.ben-evans.com/presentations</a> I appreciate the temporal view into this thinking. My interpretation:<p>Nov 2024: Don’t dismiss this; it may be the next platform shift. But the actual questions are still unsettled: scaling, usefulness, deployment, and business model.<p>May 2025: The model layer is already showing signs of commoditization, so the important question shifts toward deployment: products, use cases, UX, errors, and enterprise adoption.<p>Nov 2025: The capital cycle has become the story: everyone is spending because missing the platform shift is worse than overbuilding, but there is still no clarity on product shape, moats, or value capture. That creates bubble-like dynamics.<p>May 2026: Provisional thesis: models look likely to become infrastructure, while value probably moves up-stack into apps, workflows, product, proprietary data/context, GTM, and new questions made possible by cheap automation. But he is still explicitly calling this provisional.</p>
]]></description><pubDate>Mon, 18 May 2026 13:31:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48179651</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=48179651</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48179651</guid></item><item><title><![CDATA[New comment by btucker in "Project Glasswing: Securing critical software for the AI era"]]></title><description><![CDATA[
<p>This has increasingly been my take. If we accept that AI is an amplifier of impact, then it follows it will amplify disparities.</p>
]]></description><pubDate>Wed, 08 Apr 2026 14:52:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47691068</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=47691068</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47691068</guid></item><item><title><![CDATA[New comment by btucker in "Puzzlehunts"]]></title><description><![CDATA[
<p>One of my most humbling experiences was entering a puzzle hunt at CMU in the mid 2000s with early undergrad friends. We completely flailed. I still remember watching other groups out the window running around the campus while it took us most of the day just to get out of our room on the first puzzle.<p>It was a great reminder for a bunch of hotshot underclassmen that there were so many skills we all had yet to develop.</p>
]]></description><pubDate>Sun, 05 Apr 2026 14:56:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47650087</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=47650087</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47650087</guid></item><item><title><![CDATA[New comment by btucker in "Show HN: Apfel – The free AI already on your Mac"]]></title><description><![CDATA[
<p>I hacked this together last fall to let you use Apple Foundation Models with llm: <a href="https://github.com/btucker/llm-apple" rel="nofollow">https://github.com/btucker/llm-apple</a> . To enable that I built python bindings with Claude Code: <a href="https://github.com/btucker/apple-foundation-models-py" rel="nofollow">https://github.com/btucker/apple-foundation-models-py</a><p>Unfortunately, I found the small context window makes the utility pretty limited.</p>
]]></description><pubDate>Fri, 03 Apr 2026 13:39:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47626546</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=47626546</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47626546</guid></item><item><title><![CDATA[New comment by btucker in "Anatomy of the .claude/ folder"]]></title><description><![CDATA[
<p>It's not necessarily an AI-generated infographics issue, it's that these aren't good infographics. The graphic part is adding minimal value.</p>
]]></description><pubDate>Fri, 27 Mar 2026 16:09:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47544587</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=47544587</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47544587</guid></item><item><title><![CDATA[New comment by btucker in "New iPad Air, powered by M4"]]></title><description><![CDATA[
<p>I am convinced they’ve done research that says they would sell a meaningfully smaller number of units if they added this feature. Sigh…</p>
]]></description><pubDate>Mon, 02 Mar 2026 18:27:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47221939</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=47221939</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47221939</guid></item><item><title><![CDATA[New comment by btucker in "Hugging Face Skills"]]></title><description><![CDATA[
<p>Anthropic made it an open standard: <a href="https://agentskills.io/home" rel="nofollow">https://agentskills.io/home</a></p>
]]></description><pubDate>Tue, 24 Feb 2026 19:29:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47141557</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=47141557</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47141557</guid></item><item><title><![CDATA[New comment by btucker in "Ex-GitHub CEO launches a new developer platform for AI agents"]]></title><description><![CDATA[
<p>Completely agree. But I wonder how much of that is just accomplished with well placed code comments that explain the why for future agent interactions to prevent them from misunderstanding. I have something like this in my AGENTS.md.</p>
]]></description><pubDate>Wed, 11 Feb 2026 03:45:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=46970541</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=46970541</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46970541</guid></item><item><title><![CDATA[New comment by btucker in "Ex-GitHub CEO launches a new developer platform for AI agents"]]></title><description><![CDATA[
<p>I hacked together something similar to the concept they describe a few months ago (<a href="https://github.com/btucker/agentgit" rel="nofollow">https://github.com/btucker/agentgit</a>) and then ended up not actually finding it that useful and abandoning it.</p>
]]></description><pubDate>Wed, 11 Feb 2026 02:51:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=46970152</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=46970152</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46970152</guid></item><item><title><![CDATA[New comment by btucker in "Mermaid ASCII: Render Mermaid diagrams in your terminal"]]></title><description><![CDATA[
<p>I've been working on <a href="https://github.com/btucker/selkie" rel="nofollow">https://github.com/btucker/selkie</a> which is a complete implementation of the Mermaid parser & renderer in rust as an experiment in what's possible with Claude Code. It's still rough around the edges, but I've been blown away by what's been possible. (I'm now using it as a test repo for <a href="https://github.com/btucker/midtown" rel="nofollow">https://github.com/btucker/midtown</a>)<p>Playground here: <a href="https://btucker.github.io/selkie/" rel="nofollow">https://btucker.github.io/selkie/</a><p>One of the cool features is it can use kitty to output diagrams direct to the terminal (if kitty is supported like in ghostty).<p>I'm planning to blog about the whole process soon.</p>
]]></description><pubDate>Thu, 29 Jan 2026 17:29:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=46813365</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=46813365</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46813365</guid></item><item><title><![CDATA[New comment by btucker in "Apple introduces new AirTag with longer range and improved findability"]]></title><description><![CDATA[
<p>Last year here in Chicago my wife's bike was stolen overnight. It has an airtag hidden in a bell on the handlebars. When we woke up and noticed it was missing, we traced it to a park not too far away. We ran over there and called the Chicago PD who showed up in <10min. We told them a description of the bike and showed where FindMy said it was. They went and retrieved it. Surprisingly happy ending & I was impressed the Chicago PD were so helpful!</p>
]]></description><pubDate>Tue, 27 Jan 2026 17:28:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=46783208</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=46783208</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46783208</guid></item><item><title><![CDATA[New comment by btucker in "Cowork: Claude Code for the rest of your work"]]></title><description><![CDATA[
<p>I haven't dug too deep, but it appears to be using a bubblewrap sandbox inside a vm on the Mac using Apple's Virtualization.framework from what I can tell. It then uses unix sockets to proxy network via socat.<p>ETA: used Claude Code to reverse engineer it:<p><pre><code>   Insight ─────────────────────────────────────

  Claude.app VM Architecture:
  1. Uses Apple's Virtualization.framework (only on ARM64/Apple Silicon, macOS 13+)
  2. Communication is via VirtioSocket (not stdio pipes directly to host)
  3. The VM runs a full Linux system with EFI/GRUB boot

  ─────────────────────────────────────────────────

        ┌─────────────────────────────────────────────────────────────────────────────────┐
        │  macOS Host                                                                     │
        │                                                                                 │
        │  Claude Desktop App (Electron + Swift native bindings)                          │
        │      │                                                                          │
        │      ├─ @anthropic-ai/claude-swift (swift_addon.node)                           │
        │      │   └─ Links: Virtualization.framework (ARM64 only, macOS 13+)            │
        │      │                                                                          │
        │      ↓ Creates/Starts VM via VZVirtualMachine                                   │
        │                                                                                 │
        │  ┌──────────────────────────────────────────────────────────────────────────┐  │
        │  │  Linux VM (claudevm.bundle)                                              │  │
        │  │                                                                          │  │
        │  │  ┌────────────────────────────────────────────────────────────────────┐  │  │
        │  │  │  Bubblewrap Sandbox (bwrap)                                        │  │  │
        │  │  │  - Network namespace isolation (--unshare-net)                     │  │  │
        │  │  │  - PID namespace isolation (--unshare-pid)                         │  │  │
        │  │  │  - Seccomp filtering (unix-block.bpf)                              │  │  │
        │  │  │                                                                    │  │  │
        │  │  │  ┌──────────────────────────────────────────────────────────────┐  │  │  │
        │  │  │  │  /usr/local/bin/claude                                       │  │  │  │
        │  │  │  │  (Claude Code SDK - 213MB ARM64 ELF binary)                  │  │  │  │
        │  │  │  │                                                              │  │  │  │
        │  │  │  │  --input-format stream-json                                  │  │  │  │
        │  │  │  │  --output-format stream-json                                 │  │  │  │
        │  │  │  │  --model claude-opus-4-5-20251101                            │  │  │  │
        │  │  │  └──────────────────────────────────────────────────────────────┘  │  │  │
        │  │  │       ↑↓ stdio (JSON-RPC)                                          │  │  │
        │  │  │                                                                    │  │  │
        │  │  │  socat proxies:                                                    │  │  │
        │  │  │  - TCP:3128 → /tmp/claude-http-*.sock (HTTP proxy)                │  │  │
        │  │  │  - TCP:1080 → /tmp/claude-socks-*.sock (SOCKS proxy)              │  │  │
        │  │  └────────────────────────────────────────────────────────────────────┘  │  │
        │  │                                                                          │  │
        │  └──────────────────────────────────────────────────────────────────────────┘  │
        │           ↕ VirtioSocket (RPC)                                                 │
        │      ClaudeVMDaemonRPCClient.swift                                             │
        │           ↕                                                                    │
        │      Node.js IPC layer                                                         │
        └─────────────────────────────────────────────────────────────────────────────────┘
</code></pre>
VM Specifications (from inside)<p>ComponentDetailsKernelLinux 6.8.0-90-generic aarch64 (Ubuntu PREEMPT_DYNAMIC)OSUbuntu 22.04.5 LTS (Jammy Jellyfish)HostnameclaudeCPU4 cores, Apple Silicon (virtualized), 48 BogoMIPSRAM3.8 GB total (~620MB used at idle)SwapNone<p>Storage Layout<p>DeviceSizeTypeMount PointPurpose/dev/nvme0n1p19.6 GBext4/Root filesystem (rootfs.img)/dev/nvme0n1p1598 MBvfat/boot/efiEFI boot partition/dev/nvme1n19.8 GBext4/sessionsSession data (sessiondata.img)virtiofs-virtiofs/mnt/.virtiofs-root/shared/...Host filesystem access<p>Filesystem Mounts (User Perspective)<p><pre><code>        /sessions/gallant-vigilant-lamport/
        ├── mnt/
        │   ├── claude-cowork/     → Your selected folder (virtiofs + bindfs)
        │   ├── .claude/           → ~/.claude config (bindfs, rw)
        │   ├── .skills/           → Skills/plugins (bindfs, ro)
        │   └── uploads/           → Uploaded files (bindfs)
        └── tmp/                   → Session temp files
        
        Session User
        A dedicated user is created per session with a Docker-style random name:
        User: gallant-vigilant-lamport
        UID:  1001
        Home: /sessions/gallant-vigilant-lamport
        Process Tree
        PID 1: bwrap (bubblewrap sandbox)
        └── bash (shell wrapper)
            ├── socat TCP:3128 → unix socket (HTTP proxy)
            ├── socat TCP:1080 → unix socket (SOCKS proxy)
            └── /usr/local/bin/claude (Claude Code SDK)
                └── bash (tool execution shells)

        Security Layers

        Apple Virtualization.framework - Hardware-level VM isolation
        Bubblewrap (bwrap) - Linux container/sandbox

        --unshare-net - No direct network access
        --unshare-pid - Isolated PID namespace
        --ro-bind / / - Read-only root (with selective rw binds)


        Seccomp - System call filtering (unix-block.bpf)
        Network Isolation - All traffic via proxied unix sockets

        Network Architecture
        ┌─────────────────────────────────────────────────────────────┐
        │  Inside Sandbox                                             │
        │                                                             │
        │  claude process                                             │
        │      │                                                      │
        │      ↓ HTTP/HTTPS requests                                  │
        │  localhost:3128 (HTTP proxy via env vars)                   │
        │      │                                                      │
        │      ↓                                                      │
        │  socat → /tmp/claude-http-*.sock ─────────┐                │
        │                                            │                │
        │  localhost:1080 (SOCKS proxy)              │                │
        │      │                                     │                │
        │      ↓                                     │                │
        │  socat → /tmp/claude-socks-*.sock ────────┤                │
        └───────────────────────────────────────────┼────────────────┘
                                                    │
                                VirtioSocket ←──────┘
                                                    │
        ┌───────────────────────────────────────────┼────────────────┐
        │  Host (macOS)                             │                │
        │                                           ↓                │
        │                              Claude Desktop App            │
        │                                           │                │
        │                                           ↓                │
        │                                    Internet                │
        └─────────────────────────────────────────────────────────────┘
        Key insight: The VM has only a loopback interface (lo). No eth0, no bridge. All external network access is tunneled through unix sockets that cross the VM boundary via VirtioSocket.


  Communication Flow

  From the logs and symbols:

  1. VM Start: Swift calls VZVirtualMachine.start() with EFI boot
  2. Guest Ready: VM guest connects (takes ~6 seconds)
  3. SDK Install: Copies /usr/local/bin/claude into VM
  4. Process Spawn: RPC call to spawn /usr/local/bin/claude with args

  The spawn command shows the actual invocation:
  /usr/local/bin/claude --output-format stream-json --verbose \
    --input-format stream-json --model claude-opus-4-5-20251101 \
    --permission-prompt-tool stdio --mcp-config {...}</code></pre></p>
]]></description><pubDate>Mon, 12 Jan 2026 21:00:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46594248</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=46594248</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46594248</guid></item><item><title><![CDATA[New comment by btucker in "AI has a cargo cult problem"]]></title><description><![CDATA[
<p><a href="https://archive.is/RVTHE" rel="nofollow">https://archive.is/RVTHE</a></p>
]]></description><pubDate>Fri, 17 Oct 2025 16:34:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=45618707</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=45618707</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45618707</guid></item><item><title><![CDATA[New comment by btucker in "AI tooling must be disclosed for contributions"]]></title><description><![CDATA[
<p>I probably should have written it as “OK Engineer--“</p>
]]></description><pubDate>Fri, 22 Aug 2025 01:16:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=44980102</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=44980102</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44980102</guid></item><item><title><![CDATA[New comment by btucker in "AI tooling must be disclosed for contributions"]]></title><description><![CDATA[
<p>I've been starting to think of it like this:<p>Great Engineer + AI = Great Engineer++ (Where a great engineer isn't just someone who is a great coder, they also are a great communicator & collaborator, and love to learn)<p>Good Engineer + AI = Good Engineer<p>OK Engineer + AI = Mediocre Engineer</p>
]]></description><pubDate>Thu, 21 Aug 2025 20:03:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=44977381</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=44977381</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44977381</guid></item><item><title><![CDATA[New comment by btucker in "NINA: Rebuilding the original AIM, AOL Desktop, Yahoo and ICQ platforms"]]></title><description><![CDATA[
<p>Also, it was a time when being “online” was an active state. Now we’re “online” passively 24/7.</p>
]]></description><pubDate>Thu, 17 Jul 2025 13:21:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=44593109</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=44593109</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44593109</guid></item><item><title><![CDATA[New comment by btucker in "Locally hosting an internet-connected server"]]></title><description><![CDATA[
<p>I love Monkeybrains! I had something in the neighborhood of a 600mbps symmetric connection through them in the late 2010s when I lived in SF. The only issue was when it rained hard the speeds would deteriorate.<p>Interesting you're getting such slow speeds. Ask them if a tech can stop by and troubleshoot with you.</p>
]]></description><pubDate>Wed, 18 Jun 2025 21:30:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=44313440</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=44313440</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44313440</guid></item><item><title><![CDATA[New comment by btucker in "CVE program faces swift end after DHS fails to renew contract [updated]"]]></title><description><![CDATA[
<p>Then why did you post that?</p>
]]></description><pubDate>Wed, 16 Apr 2025 16:30:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=43707358</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=43707358</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43707358</guid></item><item><title><![CDATA[New comment by btucker in "CVE program faces swift end after DHS fails to renew contract [updated]"]]></title><description><![CDATA[
<p>I understand you're trying to "both sides" an argument. What have you found that has achieved for you in the past? Do you change people's opinions with this?</p>
]]></description><pubDate>Wed, 16 Apr 2025 12:58:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=43704916</link><dc:creator>btucker</dc:creator><comments>https://news.ycombinator.com/item?id=43704916</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43704916</guid></item></channel></rss>