<?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: Eric Mono</title>
    <description>The latest articles on DEV Community by Eric Mono (@earthwalker17).</description>
    <link>https://dev.to/earthwalker17</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%2F4024302%2F8b60ec5a-cb9b-4210-8777-0a98ab781d14.jpg</url>
      <title>DEV Community: Eric Mono</title>
      <link>https://dev.to/earthwalker17</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/earthwalker17"/>
    <language>en</language>
    <item>
      <title>Building an Agent I Could Actually Trust: What I Learned from Agent CLI</title>
      <dc:creator>Eric Mono</dc:creator>
      <pubDate>Thu, 20 Aug 2026 17:09:23 +0000</pubDate>
      <link>https://dev.to/earthwalker17/building-an-agent-i-could-actually-trust-what-i-learned-from-agent-cli-1hmn</link>
      <guid>https://dev.to/earthwalker17/building-an-agent-i-could-actually-trust-what-i-learned-from-agent-cli-1hmn</guid>
      <description>&lt;p&gt;&lt;em&gt;What building Agent CLI taught me about evidence, permissions, verification, and the systems around LLMs.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Over the past month, I've been building an open-source project called &lt;a href="https://github.com/earthwalker17/agent-cli" rel="noopener noreferrer"&gt;Agent CLI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Today it's a local-first, terminal-native agent harness that can work across code, shell commands, Git, browser automation, research, DOCX/PDFs, and remote delivery.&lt;/p&gt;

&lt;p&gt;But it didn't start because I wanted to build another coding agent.&lt;br&gt;
It started with a much simpler question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What would an AI agent be like if I cared less about how many capabilities it had, and more about whether I could trust what it actually did?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That question ended up shaping the whole project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Starting again after building too much
&lt;/h2&gt;

&lt;p&gt;Before Agent CLI, I already built a much larger local AI system called Agent OS.&lt;/p&gt;

&lt;p&gt;It explored multi-agent orchestration, memory, Git workflows, deployment, browser automation, recovery, research, skills, and a graphical interface.&lt;/p&gt;

&lt;p&gt;It was a useful learning project, but it also exposed a problem: &lt;strong&gt;adding capabilities faster than architectural guarantees makes an agent look more mature than it really is.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A polished UI could hide unclear boundaries; Confirmation prompts could be mistaken for actual sandboxing; Large feature increments became harder to review; And a convincing model-generated summary was still just a summary.&lt;/p&gt;

&lt;p&gt;So instead of keep expanding the same system, I started Agent CLI around a narrower thesis:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Build a trustworthy execution kernel first. Expand the workflows later.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The basic loop became:&lt;br&gt;
&lt;code&gt;Understand → Plan → Act → Observe → Verify → Record → Resume&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;What began as a design principle gradually became a test for almost every feature I added.&lt;/p&gt;

&lt;h2&gt;
  
  
  An agent is more than an LLM with tools
&lt;/h2&gt;

&lt;p&gt;The interesting engineering problem isn't about the model.&lt;/p&gt;

&lt;p&gt;Once an agent can modify files, execute processes, access the network, or publish code, the important part becomes the &lt;strong&gt;execution harness around the model&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The model can propose an action;&lt;br&gt;
The runtime decides whether it's allowed.&lt;/p&gt;

&lt;p&gt;The model can say tests passed;&lt;br&gt;
The runtime should know which process ran and the exit code.&lt;/p&gt;

&lt;p&gt;The model can say a file was fixed;&lt;br&gt;
The runtime should know what bytes changed and whether verification happened afterwards.&lt;/p&gt;

&lt;p&gt;This led to one rule that has survived almost every iteration of Agent CLI:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The model may reason about reality, but it shouldn't define reality.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Whenever possible, reality comes from files, hashes, process results, diffs, Git state, browser observations, and other external evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Evidence over narration
&lt;/h2&gt;

&lt;p&gt;Agent runs naturally produce persuasive narratives:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Implemented the feature, fixed the bug, and all tests pass.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But many subtle failures can hide behind that sentence.&lt;/p&gt;

&lt;p&gt;Maybe the test ran before the final edit; Maybe it ran in the wrong package; Maybe the command timed out; And maybe the model interpreted partial output as success.&lt;/p&gt;

&lt;p&gt;Agent CLI therefore records important actions into an append-only event log: approvals, commands, file mutations, hashes, verification results, and other consequences.&lt;/p&gt;

&lt;p&gt;Reports are derived from that evidence rather than reconstructed from the model's memory.&lt;/p&gt;

&lt;p&gt;Verification is also temporal.&lt;/p&gt;

&lt;p&gt;A file is only considered checked when a real verification process succeeds &lt;strong&gt;after its last relevant mutation&lt;/strong&gt;; A successful build in one project cannot certify a change in another; A killed command without an exit code cannot quietly become a pass.&lt;/p&gt;

&lt;p&gt;This sounds like implementation detail, but it changed the architecture significantly.&lt;/p&gt;

&lt;p&gt;The conversation is context.&lt;br&gt;
The model's explanation is interpretation.&lt;br&gt;
The execution record is evidence.&lt;/p&gt;

&lt;p&gt;Those are three different things.&lt;/p&gt;

&lt;h2&gt;
  
  
  Permission, approval, and sandboxing are different problems
&lt;/h2&gt;

&lt;p&gt;Another lesson came from trying to define what “safe execution” actually means.&lt;/p&gt;

&lt;p&gt;Agent tools often expose broad modes such as safe, automatic, or full access. They are convenient, but they can hide what has actually been authorized.&lt;/p&gt;

&lt;p&gt;Agent CLI instead evaluates individual actions through a centralized policy gate.&lt;/p&gt;

&lt;p&gt;Tools declare facts about their effects—running a command, mutating files, reading remotely, sending data externally—and the runtime decides whether that action is allowed, requires approval, or should be denied.&lt;/p&gt;

&lt;p&gt;This also forced me to separate three concepts I previously treated too loosely:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Trust&lt;/strong&gt;: permission to operate inside a workspace.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Approval&lt;/strong&gt;: authorization for a particular consequential action.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sandboxing&lt;/strong&gt;: technical enforcement by the operating system.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A confirmation prompt isn't a sandbox.&lt;br&gt;
A workspace path check isn't a sandbox.&lt;br&gt;
And trusting a project doesn't mean approving every future action.&lt;/p&gt;

&lt;p&gt;Agent CLI currently has real OS-level sandboxing for eligible auto-run commands on Windows, using Low Integrity and a Job Object. But that boundary is deliberately described narrowly: it doesn't prevent reads or control network access, and explicitly approved commands run unsandboxed.&lt;/p&gt;

&lt;p&gt;On platforms where the same enforcement is unavailable, command auto-run fails closed instead of pretending the guarantees are equivalent.&lt;/p&gt;

&lt;p&gt;That produced another principle I now care about:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Security degradation should be visible degradation.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;An honest weak boundary is more useful than a strong-sounding label.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reversibility is an underrated form of autonomy
&lt;/h2&gt;

&lt;p&gt;As agents gain more authority, the obvious solution is to ask users for confirmation more often.&lt;/p&gt;

&lt;p&gt;But an agent that asks before every small edit quickly stops feeling like an agent, but more like a baby you have to look after all the time.&lt;/p&gt;

&lt;p&gt;A better solution for many local operations is to make them cheaply reversible.&lt;/p&gt;

&lt;p&gt;Agent CLI snapshots workspace changes before applying them. &lt;code&gt;/undo&lt;/code&gt; can restore them later and refuses to overwrite files that have drifted. Larger recovery points can use hidden Git references without moving the user's branch or HEAD.&lt;/p&gt;

&lt;p&gt;Mutating delegated agents work in disposable Git worktrees, and their changes reach the main workspace only through explicit integration.&lt;/p&gt;

&lt;p&gt;This changed the question from:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Should the agent be allowed to modify this file?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can this operation be made reversible enough that review afterwards is cheaper than interruption beforehand?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not every action fits that model. Publishing, destructive operations, and sensitive external effects still deserve stronger approval boundaries.&lt;/p&gt;

&lt;p&gt;But for ordinary local work, &lt;strong&gt;reversibility can often buy useful autonomy without simply removing control.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  General-purpose shouldn't mean improvising everything
&lt;/h2&gt;

&lt;p&gt;Agent CLI started as a coding agent, but I wanted to know whether its architecture was actually general or merely coding-specific.&lt;/p&gt;

&lt;p&gt;DOCX and PDFs became an early test.&lt;/p&gt;

&lt;p&gt;Instead of creating a separate “document agent,” the same runtime writes a structured specification, deterministic software renders the artifact, the result is parsed back for validation, pages can be rasterized, and a vision-capable model can inspect the real output.&lt;/p&gt;

&lt;p&gt;This led to a broader idea:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Many high-quality agent workflows need an intermediate representation between language and effects.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Code already has source files.&lt;br&gt;
Docs can have a document specification.&lt;br&gt;
Slides can have a layout model.&lt;br&gt;
Video can have an edit decision list.&lt;br&gt;
Deployment can have typed desired state.&lt;/p&gt;

&lt;p&gt;The model handles ambiguity and high-level decisions. Deterministic software handles repeatable transformations and validation.&lt;/p&gt;

&lt;p&gt;That seems much more promising to me than letting the model rediscover an ad-hoc workflow every time.&lt;/p&gt;

&lt;h2&gt;
  
  
  More agents doesn't mean a better agent system
&lt;/h2&gt;

&lt;p&gt;Agent CLI eventually gained planning, delegated research, reviewing, and isolated mutating workers.&lt;/p&gt;

&lt;p&gt;But building those features actually made me less interested in the “agent team” metaphor.&lt;/p&gt;

&lt;p&gt;Once the implementation becomes concrete, multi-agent execution looks much more like a familiar systems problem:&lt;br&gt;
&lt;strong&gt;How do we delegate bounded work, isolate concurrent mutation, preserve provenance, and safely integrate results?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A child agent should inherit the same or narrower authority.&lt;br&gt;
A mutating worker shouldn't casually share the parent's workspace.&lt;br&gt;
An approved plan should refer to specific content, not merely an old conversational “yes”.&lt;/p&gt;

&lt;p&gt;Those boundaries matter more than how many agents appear in the terminal.&lt;/p&gt;

&lt;h2&gt;
  
  
  The main lesson: remove ambiguity before adding intelligence
&lt;/h2&gt;

&lt;p&gt;Agent CLI is now a substantial project: more than 50k lines of TypeScript source, over 2400 hermetic tests, five model providers, multiple workflow areas, and a runtime that has been exercised end-to-end on real software work.&lt;/p&gt;

&lt;p&gt;But the most valuable improvements rarely came from adding more features.&lt;/p&gt;

&lt;p&gt;They came from replacing vague concepts with precise ones.&lt;/p&gt;

&lt;p&gt;“Safe command” became an action contract plus policy plus an enforcement boundary.&lt;br&gt;
“Verified” became a successful process after the relevant mutation.&lt;br&gt;
“Plan approved” became approval of specific semantic content.&lt;br&gt;
“Memory” became context that carries no authority.&lt;br&gt;
“Multi-agent” became bounded delegation and isolated workspaces.&lt;br&gt;
“Done” became something that should be justified by evidence.&lt;/p&gt;

&lt;p&gt;That has changed the question I ask when an agent behaves unreliably.&lt;/p&gt;

&lt;p&gt;Instead of immediately asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How should I improve the prompt?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I now ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What ambiguity is the model currently resolving that the system could resolve instead?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sometimes the model really should reason about it.&lt;/p&gt;

&lt;p&gt;But surprisingly often, the better answer is a type, a state machine, a hash, an exit code, a sandbox boundary, or a deterministic renderer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agent engineering is increasingly systems engineering
&lt;/h2&gt;

&lt;p&gt;Models will keep getting stronger.&lt;/p&gt;

&lt;p&gt;But stronger models also mean we will delegate more consequential work to them, which makes the surrounding harness more important rather than less.&lt;/p&gt;

&lt;p&gt;For me, the interesting questions are increasingly:&lt;br&gt;
&lt;strong&gt;What may happen?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;What actually happened?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;How do we know it worked?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;What happens if it fails halfway through?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Can someone else inspect the evidence and reach the same conclusion?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These are not entirely new questions.&lt;/p&gt;

&lt;p&gt;Operating systems, databases, build systems, version control, security engineering, and distributed systems have been dealing with variations of them for decades.&lt;/p&gt;

&lt;p&gt;The model is new.&lt;br&gt;
Many of the engineering problems around it are not.&lt;/p&gt;




&lt;p&gt;Agent CLI is still an experiment rather than a claim that I have found the “correct” architecture.&lt;/p&gt;

&lt;p&gt;The project is completely open source under MIT, and I'm sharing it mainly as part of the learning process instead of a commercial launch.&lt;/p&gt;

&lt;p&gt;If you are also working on coding agents, local AI systems, sandboxing, verification, agent runtimes, or related infrastructure, I would genuinely be interested in criticism or alternative approaches.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/earthwalker17/agent-cli" rel="noopener noreferrer"&gt;github.com/earthwalker17/agent-cli&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Issues, PRs, and technical discussion are all welcome.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>architecture</category>
      <category>programming</category>
    </item>
    <item>
      <title>How I Made a Product Demo with Claude Code, Playwright, and FFmpeg</title>
      <dc:creator>Eric Mono</dc:creator>
      <pubDate>Mon, 13 Jul 2026 14:47:14 +0000</pubDate>
      <link>https://dev.to/earthwalker17/how-i-made-a-product-demo-with-claude-code-playwright-and-ffmpeg-2ach</link>
      <guid>https://dev.to/earthwalker17/how-i-made-a-product-demo-with-claude-code-playwright-and-ffmpeg-2ach</guid>
      <description>&lt;p&gt;I recently needed a short product demo for my open-source project called Agent OS.&lt;/p&gt;

&lt;p&gt;The goal was modest: create a clear 45–60 second walkthrough of the real product.&lt;/p&gt;

&lt;p&gt;I didn't need a polished advertisement. I also didn't want to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;manually record a dozen clips&lt;/li&gt;
&lt;li&gt;learn Premiere or After Effects&lt;/li&gt;
&lt;li&gt;move every cut and caption on a timeline&lt;/li&gt;
&lt;li&gt;recreate the product interface with generated animation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I tried a simple automated workflow:&lt;br&gt;
&lt;strong&gt;Claude Code + Playwright + FFmpeg&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The result was a 56-second silent MP4 created in roughly 30 minutes, using around 50K tokens with Opus 4.8.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Claude Code handled
&lt;/h2&gt;

&lt;p&gt;Claude Code first inspected the application and identified the existing product states that could form a complete story:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Agent OS landing page&lt;/li&gt;
&lt;li&gt;Main Agent planning and Coding Agent handoff&lt;/li&gt;
&lt;li&gt;A real task graph and execution trace&lt;/li&gt;
&lt;li&gt;Build, browser, and visual verification&lt;/li&gt;
&lt;li&gt;A failed browser run with runtime evidence&lt;/li&gt;
&lt;li&gt;A linked bounded-recovery run&lt;/li&gt;
&lt;li&gt;A preview-only Git contract&lt;/li&gt;
&lt;li&gt;The finished Pulseboard application&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It then started the locally served frontend and backend and used Playwright to navigate through those states.&lt;/p&gt;

&lt;p&gt;Nothing was recreated or fabricated for the video. The walkthrough used existing persisted run records from the real Pulseboard build.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it recorded several short clips
&lt;/h2&gt;

&lt;p&gt;The first instinct was to record one continuous browser session.&lt;/p&gt;

&lt;p&gt;That became unreliable when dense modals and long smooth scrolling caused the Playwright video encoder to fall behind.&lt;/p&gt;

&lt;p&gt;The practical fix was simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;record one short clip for each narrative beat&lt;/li&gt;
&lt;li&gt;give each clip its own BrowserContext&lt;/li&gt;
&lt;li&gt;store the content start and end times&lt;/li&gt;
&lt;li&gt;close the context after every clip so the recording is finalized&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The result was much more stable than one long recording.&lt;/p&gt;

&lt;h2&gt;
  
  
  What FFmpeg handled
&lt;/h2&gt;

&lt;p&gt;After Playwright produced the raw WebM files, a small Python script used FFmpeg to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;trim each clip to its useful content window&lt;/li&gt;
&lt;li&gt;add short labels&lt;/li&gt;
&lt;li&gt;create a simple opening card&lt;/li&gt;
&lt;li&gt;create a GitHub end card&lt;/li&gt;
&lt;li&gt;concatenate everything&lt;/li&gt;
&lt;li&gt;export a 1280×720, 30 fps H.264 MP4&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There were no complex transitions. The product interface remained the main visual.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this workflow was useful
&lt;/h2&gt;

&lt;p&gt;This won't replace professional video editing.&lt;/p&gt;

&lt;p&gt;But it seems well suited to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;open-source project demos&lt;/li&gt;
&lt;li&gt;internal product walkthroughs&lt;/li&gt;
&lt;li&gt;release previews&lt;/li&gt;
&lt;li&gt;reproducible UI recordings&lt;/li&gt;
&lt;li&gt;projects where authenticity matters more than elaborate motion graphics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The useful shift was treating the demo as another automated software artifact.&lt;/p&gt;

&lt;p&gt;The browser flow is code.&lt;br&gt;
The selected product state is deterministic.&lt;br&gt;
The labels and timings are configuration.&lt;br&gt;
The video can be regenerated when the interface changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The project shown in the demo
&lt;/h2&gt;

&lt;p&gt;Agent OS is a local-first AI Project Operating System — the harness around coding models that adds persistent memory, controlled execution, real verification, bounded recovery, and approval-gated delivery.&lt;/p&gt;

&lt;p&gt;The project is open source here:&lt;br&gt;
&lt;a href="https://github.com/earthwalker17/agent-os" rel="noopener noreferrer"&gt;https://github.com/earthwalker17/agent-os&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The demo doesn't prove that the system is perfect. It simply gives people a much faster way to see what it actually does.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>playwright</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Agent OS: A Local-First Harness Around Coding Models</title>
      <dc:creator>Eric Mono</dc:creator>
      <pubDate>Fri, 10 Jul 2026 16:48:13 +0000</pubDate>
      <link>https://dev.to/earthwalker17/agent-os-a-local-first-harness-around-coding-models-238b</link>
      <guid>https://dev.to/earthwalker17/agent-os-a-local-first-harness-around-coding-models-238b</guid>
      <description>&lt;p&gt;AI coding model can generate code.&lt;br&gt;
That doesn't mean it can reliably finish real software work.&lt;/p&gt;

&lt;p&gt;Between a plausible diff and a completed task, a real software agent still needs memory, execution boundaries, verification, recovery, permissions, and delivery infrastructure.&lt;/p&gt;

&lt;p&gt;That's the problem I've been exploring through &lt;strong&gt;Agent OS&lt;/strong&gt;, which I now release as an open-source project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/earthwalker17/agent-os" rel="noopener noreferrer"&gt;https://github.com/earthwalker17/agent-os&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The model is only one part of the agent
&lt;/h2&gt;

&lt;p&gt;Agent OS is a local-first AI Project Operating System: a harness around coding models.&lt;/p&gt;

&lt;p&gt;The core architecture separates two responsibilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  Main Agent: the brain
&lt;/h3&gt;

&lt;p&gt;The Main Agent handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Conversation&lt;/li&gt;
&lt;li&gt;Planning&lt;/li&gt;
&lt;li&gt;Project memory&lt;/li&gt;
&lt;li&gt;Context assembly&lt;/li&gt;
&lt;li&gt;Orchestration&lt;/li&gt;
&lt;li&gt;Delegation decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It cannot change code or execute shell commands directly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Coding Agent: the hands
&lt;/h3&gt;

&lt;p&gt;The Coding Agent operates inside one sandboxed project workspace.&lt;/p&gt;

&lt;p&gt;It can inspect files, edit code, run bounded commands, but it cannot modify project memory or access another project’s workspace.&lt;/p&gt;

&lt;p&gt;The two sides communicate through summaries and structured artifacts rather than unrestricted shared control.&lt;/p&gt;

&lt;h2&gt;
  
  
  “Done” must come from verification
&lt;/h2&gt;

&lt;p&gt;Agent OS doesn't accept the model’s own claim that a task is complete.&lt;/p&gt;

&lt;p&gt;A coding run must pass a real build or test command.&lt;/p&gt;

&lt;p&gt;It can then:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Launch the application&lt;/li&gt;
&lt;li&gt;Walk declared browser flows&lt;/li&gt;
&lt;li&gt;Capture screenshots and runtime evidence&lt;/li&gt;
&lt;li&gt;Run visual review&lt;/li&gt;
&lt;li&gt;Classify failures&lt;/li&gt;
&lt;li&gt;Propose or execute a bounded repair pass&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Recovery is deliberately limited. The goal isn't unlimited autonomy, but controlled progress with evidence and an audit trail.&lt;/p&gt;

&lt;h2&gt;
  
  
  External actions remain human-controlled
&lt;/h2&gt;

&lt;p&gt;Git pushes, pull requests, deployments, database migrations, and Stripe test-mode operations use explicit preview-and-confirm contracts.&lt;/p&gt;

&lt;p&gt;The agent can prepare the operation, but it cannot silently mutate an external system because it inferred that the user probably wanted it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing the system on a real product
&lt;/h2&gt;

&lt;p&gt;To pressure-test the architecture, I used Agent OS itself to build and deploy &lt;strong&gt;Pulseboard&lt;/strong&gt;, a full-stack SaaS, from an empty repository.&lt;/p&gt;

&lt;p&gt;The process included real build, runtime, browser, visual, deployment, and database failures. Those failures became the test for whether the system could collect evidence, expose the problem, and recover instead of simply producing a confident success message.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's included in the first public release
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Local filesystem and SQLite-based project state&lt;/li&gt;
&lt;li&gt;Structured Markdown memory&lt;/li&gt;
&lt;li&gt;Claude, GPT, Gemini, DeepSeek, Kimi, and GLM support&lt;/li&gt;
&lt;li&gt;Sandboxed coding execution&lt;/li&gt;
&lt;li&gt;Parallel agent teams in isolated Git worktrees&lt;/li&gt;
&lt;li&gt;Command, browser, and visual verification&lt;/li&gt;
&lt;li&gt;Typed bounded recovery&lt;/li&gt;
&lt;li&gt;GitHub, Vercel, Supabase, and Stripe test-mode connectors&lt;/li&gt;
&lt;li&gt;Apache-2.0 licensing&lt;/li&gt;
&lt;li&gt;GitHub CI and 832 backend tests&lt;/li&gt;
&lt;li&gt;One-command Windows installation&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Current limitations
&lt;/h2&gt;

&lt;p&gt;This is an early public release.&lt;/p&gt;

&lt;p&gt;The Windows setup is currently the most thoroughly tested. macOS and Linux users need to follow the manual setup instructions. At least one supported model provider API key is required.&lt;/p&gt;

&lt;p&gt;Local-first means that project memory, workspaces, credentials, and execution records live on the user’s disk. It doesn't currently mean that every supported model runs locally.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm looking for
&lt;/h2&gt;

&lt;p&gt;I'm especially interested in feedback on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The separation between the Main Agent and Coding Agent&lt;/li&gt;
&lt;li&gt;The first-run installation experience&lt;/li&gt;
&lt;li&gt;The boundaries of automated recovery&lt;/li&gt;
&lt;li&gt;Which internal components should become independent libraries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The repository, architecture documentation, installation guide, and production showcase are all available here:&lt;br&gt;
&lt;a href="https://github.com/earthwalker17/agent-os" rel="noopener noreferrer"&gt;https://github.com/earthwalker17/agent-os&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>devtools</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
