<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OSC 1338 on Brian Hengen</title><link>https://brianhengen.us/tags/osc-1338/</link><description>Recent content in OSC 1338 on Brian Hengen</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 17 Jun 2026 12:39:55 -0400</lastBuildDate><atom:link href="https://brianhengen.us/tags/osc-1338/index.xml" rel="self" type="application/rss+xml"/><item><title>How vibeflow knows what your AI agent is doing</title><link>https://brianhengen.us/posts/how-vibeflow-detects-ai-state/</link><pubDate>Wed, 17 Jun 2026 08:00:00 -0400</pubDate><guid>https://brianhengen.us/posts/how-vibeflow-detects-ai-state/</guid><description>&lt;p&gt;&lt;em&gt;vibeflow is an open-source Linux terminal that shows, per tab, whether the program inside is
working or waiting on you. This article details how the detection works: the open protocol, the
heuristic fallback, and other key components.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;A regular terminal emulator renders a grid of characters coming out of a pty. It has no notion of
what the program on the other end is &lt;em&gt;doing&lt;/em&gt;, which was never a problem because a human was typing
every command and already knew. The terminal is essentially modeled after a typewriter, and how
often has anyone worked at two typewriters at once, much less five? AI coding agents break that
assumption. They run for minutes (for periods getting longer all the time), then stop and wait for
input, and from the terminal&amp;rsquo;s point of view &amp;ldquo;thinking hard&amp;rdquo; and &amp;ldquo;waiting for you&amp;rdquo; are the same
thing: a quiet pty.&lt;/p&gt;</description></item></channel></rss>