<?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: Dmytro Klymentiev</title>
    <description>The latest articles on DEV Community by Dmytro Klymentiev (@klymentiev).</description>
    <link>https://dev.to/klymentiev</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%2F2203747%2Fd68e74d9-9f6b-44eb-a5d8-443795918482.jpg</url>
      <title>DEV Community: Dmytro Klymentiev</title>
      <link>https://dev.to/klymentiev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/klymentiev"/>
    <language>en</language>
    <item>
      <title>Claw Code: Open-Source Claude Code Clone With 105K Stars in 24 Hours</title>
      <dc:creator>Dmytro Klymentiev</dc:creator>
      <pubDate>Wed, 01 Apr 2026 22:53:31 +0000</pubDate>
      <link>https://dev.to/klymentiev/claw-code-open-source-claude-code-clone-with-105k-stars-in-24-hours-2jgn</link>
      <guid>https://dev.to/klymentiev/claw-code-open-source-claude-code-clone-with-105k-stars-in-24-hours-2jgn</guid>
      <description>&lt;p&gt;&lt;strong&gt;In Brief:&lt;/strong&gt; Anthropic accidentally published the full Claude Code source, all 512,000 lines of TypeScript, inside an npm package. A developer rebuilt it in Rust overnight. The result is Claw Code, an open-source clone that actually works. It hit 105K GitHub stars in 24 hours.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Claude Code Source Got Leaked
&lt;/h2&gt;

&lt;p&gt;On March 31, 2026, a developer noticed something unusual in a routine npm install. The @anthropic-ai/claude-code package (version 2.1.88) contained a 59.8 MB JavaScript source map file, a debugging artifact that was never meant to be public. Inside that file: the complete Claude Code source code. All 512,000 lines of TypeScript.&lt;/p&gt;

&lt;p&gt;By 4:23 AM ET, the discovery was on X. By sunrise, the code was mirrored across dozens of GitHub repositories and analyzed by thousands of developers worldwide.&lt;/p&gt;

&lt;p&gt;Anthropic responded quickly: this was a packaging mistake, not a hack. No customer data was exposed, no credentials leaked. Just the source code of their most popular developer tool, wide open for anyone to read.&lt;/p&gt;

&lt;p&gt;But the damage (or the opportunity, depending on your perspective) was already done.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Claw Code
&lt;/h2&gt;

&lt;p&gt;Within hours of the leak, Sigrid Jin, a Korean developer known as @instructkr, did something unexpected. Instead of just mirroring the leaked files, he sat down and started rewriting the entire system from scratch.&lt;/p&gt;

&lt;p&gt;Jin is not a random developer. The Wall Street Journal profiled him earlier in March as one of the world's most active Claude Code power users, someone who processed over 25 billion tokens through the tool in a single year. He flew to San Francisco for Claude Code's first birthday party. He knows this system inside and out.&lt;/p&gt;

&lt;p&gt;The first version of Claw Code was Python, a clean-room reimplementation that captured the architecture without copying proprietary code. He used oh-my-codex (OmX), a workflow tool built on OpenAI Codex, to orchestrate the rewrite at speed.&lt;/p&gt;

&lt;p&gt;Then came the Claw Code Rust port. This is where things get interesting.&lt;/p&gt;

&lt;p&gt;The Rust version of Claw Code is not a reference document. It is a working CLI tool. You can build it, run it, and use it to write code with Claude, just like the original.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claw Code vs Claude Code
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;CLAUDE CODE (ORIGINAL)&lt;/th&gt;
&lt;th&gt;CLAW CODE (OPEN SOURCE)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Language&lt;/td&gt;
&lt;td&gt;TypeScript&lt;/td&gt;
&lt;td&gt;Rust&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Codebase size&lt;/td&gt;
&lt;td&gt;~512K lines&lt;/td&gt;
&lt;td&gt;~20K lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Runtime&lt;/td&gt;
&lt;td&gt;Node.js&lt;/td&gt;
&lt;td&gt;Native binary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API&lt;/td&gt;
&lt;td&gt;Anthropic (proprietary)&lt;/td&gt;
&lt;td&gt;Anthropic (same API)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub stars&lt;/td&gt;
&lt;td&gt;n/a&lt;/td&gt;
&lt;td&gt;50K in 2 hours, 105K in 24 hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;License&lt;/td&gt;
&lt;td&gt;Proprietary&lt;/td&gt;
&lt;td&gt;Open source&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Price&lt;/td&gt;
&lt;td&gt;Requires subscription&lt;/td&gt;
&lt;td&gt;Free (bring your own API key)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The Claw Code repository hit 50,000 stars in two hours and passed 105,000 within a day, the fastest any GitHub project has reached that milestone.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Claw Code Works
&lt;/h2&gt;

&lt;p&gt;Claw Code follows the same basic loop that powers Claude Code and most AI coding agents. Here is how it works, without the jargon:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You type a message
       |
       v
Claw Code sends it to Claude (Anthropic API)
       |
       v
Claude thinks and decides what to do:
  - Answer directly? --&amp;gt; you see the response
  - Need to read a file? --&amp;gt; Claw Code reads it, sends back to Claude
  - Need to run a command? --&amp;gt; Claw Code runs it, sends back to Claude
  - Need to search the web? --&amp;gt; same pattern
       |
       v
Claude sees the result and decides the next step
       |
       v
This loop continues until the task is done
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is it. The core idea is simple: the AI model decides what actions to take, and the harness (Claw Code) executes those actions and feeds results back.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inside the Claw Code Harness
&lt;/h2&gt;

&lt;p&gt;The harness is everything around the AI model. Think of it as the model's hands and eyes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools.&lt;/strong&gt; The things the model can do: read files, write files, run shell commands, search the web, search code. Each tool has a name, a description, and rules for when to use it. Claw Code ships with 15+ built-in tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Session management.&lt;/strong&gt; Keeps track of the conversation: what you said, what the model said, what tools were used. When the conversation gets too long, the harness compresses older messages so the model stays within its context window. This is called compaction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Permissions.&lt;/strong&gt; Controls what the model is allowed to do without asking. Read a file? Usually fine. Delete a file? Ask the user first. Run a shell command? Depends on the settings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP (Model Context Protocol).&lt;/strong&gt; A standard way to plug in external tools. Want the model to access your database, your project management tool, your custom API? MCP lets you connect them without modifying the harness itself. If you are curious how MCP works in practice, I wrote about &lt;a href="https://klymentiev.com/blog/claude-code-mcp-infrastructure" rel="noopener noreferrer"&gt;building MCP servers for Claude Code and connecting an entire infrastructure through them&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Configuration.&lt;/strong&gt; The model reads project-specific instructions from a CLAW.md file (the Claw Code equivalent of CLAUDE.md), loads settings from config files, and adapts its behavior to the project it is working on.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;+--------------------------------------------------+
|                  CLAW CODE HARNESS                |
|                                                   |
|  +-------+  +--------+  +-----------+  +------+  |
|  | Tools |  | Session|  |Permissions|  | MCP  |  |
|  | 15+   |  | Mgmt &amp;amp; |  |  System   |  |Plugin|  |
|  | built |  |Compact |  |           |  | Port |  |
|  |  in   |  |  ion   |  |           |  |      |  |
|  +---+---+  +----+---+  +-----+-----+  +--+---+  |
|      |           |             |            |     |
|  +---v-----------v-------------v------------v--+  |
|  |             Claude API (Anthropic)          |  |
|  +---------------------------------------------+  |
+--------------------------------------------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What the Claude Code Leak Revealed
&lt;/h2&gt;

&lt;p&gt;The leaked source code was not just a bigger version of what was already known. According to multiple reports, two previously unknown features stood out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Undercover Mode.&lt;/strong&gt; Several publications report that the code contains a system prompt configuration instructing Claude Code to contribute to public open-source repositories anonymously. The reported prompt fragment reads: "You are operating UNDERCOVER... Your commit messages MUST NOT contain ANY Anthropic-internal information. Do not blow your cover." If confirmed, this means Anthropic has been using Claude Code to submit code to open-source projects without disclosing the AI origin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;KAIROS.&lt;/strong&gt; Reports also describe an autonomous daemon mode, a background agent that runs continuously without waiting for user prompts. It would watch for file changes, run tests, and act proactively. Current Claude Code waits for you to type something. KAIROS would not wait.&lt;/p&gt;

&lt;p&gt;Neither feature has been publicly confirmed or denied by Anthropic. These details come from analysis of the leaked TypeScript source, not from the Claw Code rewrite (which is a clean-room implementation and does not contain these features).&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started With Claw Code
&lt;/h2&gt;

&lt;p&gt;If you want to try Claw Code yourself, here is how to install it:&lt;/p&gt;

&lt;p&gt;Requirements: Rust toolchain (install from rustup.rs), an Anthropic API key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1.&lt;/strong&gt; Clone the repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/instructkr/claw-code.git
&lt;span class="nb"&gt;cd &lt;/span&gt;claw-code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 2.&lt;/strong&gt; Build the Rust binary:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;rust/
cargo build &lt;span class="nt"&gt;--release&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3.&lt;/strong&gt; Set your API key and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"your-key-here"&lt;/span&gt;
./target/release/claw
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You now have an interactive REPL. Type a message and Claw Code will respond, call tools, read your files, and run commands, just like Claude Code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Useful Claw Code commands
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;COMMAND&lt;/th&gt;
&lt;th&gt;WHAT IT DOES&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;/help&lt;/td&gt;
&lt;td&gt;Show available commands&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/status&lt;/td&gt;
&lt;td&gt;Session info, tokens used, cost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/model sonnet&lt;/td&gt;
&lt;td&gt;Switch to a cheaper model&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/compact&lt;/td&gt;
&lt;td&gt;Compress conversation history&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/cost&lt;/td&gt;
&lt;td&gt;Show spending breakdown&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/diff&lt;/td&gt;
&lt;td&gt;Show git changes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Can You Actually Use Claw Code?
&lt;/h2&gt;

&lt;p&gt;Yes, with caveats.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What works in Claw Code today:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interactive REPL with markdown rendering&lt;/li&gt;
&lt;li&gt;Tool system: bash, file operations, search, web tools&lt;/li&gt;
&lt;li&gt;Session save and resume&lt;/li&gt;
&lt;li&gt;MCP server connections&lt;/li&gt;
&lt;li&gt;Cost tracking&lt;/li&gt;
&lt;li&gt;Model switching (Opus, Sonnet, Haiku)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What is missing from Claw Code:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Plugin system (planned)&lt;/li&gt;
&lt;li&gt;Skills registry (planned)&lt;/li&gt;
&lt;li&gt;Hooks are parsed but do not execute yet&lt;/li&gt;
&lt;li&gt;Many specialized tools from the original (LSP, team tools, scheduling)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Python part of Claw Code is not a tool. It is an architectural reference, a catalog of the original components with JSON snapshots. Useful for studying the design, not for daily coding.&lt;/p&gt;

&lt;p&gt;The honest answer: If you want a fully polished AI coding assistant, keep using Claude Code. If you want to understand how AI coding agents work, customize the tool, or build on top of it, Claw Code gives you the source.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Claw Code Means for AI Development
&lt;/h2&gt;

&lt;p&gt;The Claude Code leak is not really about one company's packaging mistake. It is about a shift in how we think about AI tools.&lt;/p&gt;

&lt;p&gt;The model (Claude, GPT, Gemini) is only half the product. The other half is the harness: the tools, the permissions, the session management, the context engineering. That harness is now public knowledge through Claw Code.&lt;/p&gt;

&lt;p&gt;Open-source alternatives will move faster now. Not because the code was copied, but because the patterns are understood. How to wire tools. How to manage context windows. How to set up rules for AI agents safely. These are engineering problems, and engineers now have a detailed reference implementation in Claw Code.&lt;/p&gt;

&lt;p&gt;The 105K stars are not just curiosity. They signal demand for open, inspectable AI tools -- tools where you can read the code, understand the decisions, and modify the behavior.&lt;/p&gt;

&lt;p&gt;Whether Anthropic intended it or not, the playbook is open.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://klymentiev.com/blog/claw-code-claude-source" rel="noopener noreferrer"&gt;klymentiev.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>opensource</category>
      <category>rust</category>
      <category>ai</category>
    </item>
    <item>
      <title>Robots Won't Take Your Job</title>
      <dc:creator>Dmytro Klymentiev</dc:creator>
      <pubDate>Mon, 30 Mar 2026 13:54:19 +0000</pubDate>
      <link>https://dev.to/klymentiev/robots-wont-take-your-job-3bic</link>
      <guid>https://dev.to/klymentiev/robots-wont-take-your-job-3bic</guid>
      <description>&lt;p&gt;Everyone's afraid that robots will take their jobs. Nobody thinks that robots will enslave people — by burying them in work that's impossible to keep up with.&lt;/p&gt;




&lt;p&gt;I have a project. A CRM system for a small company. I started it in 2019.&lt;/p&gt;

&lt;p&gt;Everything was going well: 2,419 commits over 3.5 years, a steady 80 commits per month. One developer, one system, a clear pace.&lt;/p&gt;

&lt;p&gt;Then a forced break. The pace dropped. The project smoldered. Summer 2024 — zero commits. By my estimate — at least another year to completion. Realistically — a year and a half.&lt;/p&gt;

&lt;p&gt;In winter 2025, I started actively using AI, and by summer I plugged it in at full power. In 2 months the project was finished.&lt;/p&gt;

&lt;p&gt;Sounds like a success story, right? Except this isn't the end.&lt;/p&gt;




&lt;h2&gt;
  
  
  Numbers I Didn't Plan For
&lt;/h2&gt;

&lt;p&gt;When you get a tool that can work 24/7, a strange thing happens: you don't start working less. You start working more.&lt;/p&gt;

&lt;p&gt;March 2026. My server:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;17 autonomous AI agents running on schedule. Checking email, analyzing commits, generating reports, monitoring social media, updating dashboards.&lt;/li&gt;
&lt;li&gt;12 parallel projects in the task tracker. I used to manage 3 at most simultaneously.&lt;/li&gt;
&lt;li&gt;1,400+ commits in March — across 39 repositories. For comparison: at peak productivity in 2020, it was 80 per month, in one repository.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Period&lt;/th&gt;
&lt;th&gt;Commits/mo&lt;/th&gt;
&lt;th&gt;Projects&lt;/th&gt;
&lt;th&gt;Agents&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2020 (peak, one person)&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Summer 2024 (slowdown)&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;October 2025 (ramp-up)&lt;/td&gt;
&lt;td&gt;384&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;March 2026 (now)&lt;/td&gt;
&lt;td&gt;1,400+&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;18x more code than my best year. From zero — to infinity. Who reviews all of this? Me. Alone.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Productivity Paradox
&lt;/h2&gt;

&lt;p&gt;The task tracker paints a picture:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Month&lt;/th&gt;
&lt;th&gt;Tasks created&lt;/th&gt;
&lt;th&gt;Average time to close&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;January&lt;/td&gt;
&lt;td&gt;69&lt;/td&gt;
&lt;td&gt;26 days&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;February&lt;/td&gt;
&lt;td&gt;211&lt;/td&gt;
&lt;td&gt;4 days&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;March&lt;/td&gt;
&lt;td&gt;295&lt;/td&gt;
&lt;td&gt;1.6 days&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;4x more tasks in three months. Closing 16x faster.&lt;/p&gt;

&lt;p&gt;Sounds fantastic. But ask yourself: where do these 295 tasks come from?&lt;/p&gt;

&lt;p&gt;I used to create a task when something broke or when an idea came up. Maybe 2-3 per week. Now agents find problems themselves, suggest improvements themselves, generate tasks themselves. The system feeds itself.&lt;/p&gt;

&lt;p&gt;My record: 27 tasks created in a single day. Each one needs a decision. Review it, prioritize it, approve or kill it. This work didn't exist before.&lt;/p&gt;




&lt;h2&gt;
  
  
  Who's Working for Whom?
&lt;/h2&gt;

&lt;p&gt;Who closed what in 3 months:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Who&lt;/th&gt;
&lt;th&gt;Tasks closed&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Me&lt;/td&gt;
&lt;td&gt;242&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9 AI agents&lt;/td&gt;
&lt;td&gt;109&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Other participants&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unassigned&lt;/td&gt;
&lt;td&gt;146&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Formally, I'm managing. In practice — 242 tasks in 3 months is almost 4 tasks per working day, without breaks. And that's only what made it into the tracker.&lt;/p&gt;

&lt;p&gt;My morning starts like this: 25 notifications, 8 pull requests from agents, 3 overnight reports, an inbox that was checked every 5 minutes all night. Agents don't sleep. Agents don't wait. Agents generate work.&lt;/p&gt;




&lt;h2&gt;
  
  
  Parkinson's Law in Reverse
&lt;/h2&gt;

&lt;p&gt;Everyone knows Parkinson's Law: work expands to fill the time available.&lt;/p&gt;

&lt;p&gt;With AI, the opposite happens: work expands to fill all available capacity.&lt;/p&gt;

&lt;p&gt;When you have one developer — you have one project. When you have 17 agents — you have 12 projects. Not because it was planned that way. But because now it's possible, and your brain automatically expands the scope.&lt;/p&gt;

&lt;p&gt;"We could automate retail too, right?" — We could. Plus one project.&lt;br&gt;
"How about we redo the second website too?" — Sure. Plus one project.&lt;br&gt;
"Security could use some tightening..." — We have 17 agents. Plus one project.&lt;/p&gt;

&lt;p&gt;Every new project means new decisions, new reviews, new approvals. All of it falls on one person.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;AI doesn't take away work. AI removes execution and leaves you with pure decision-making.&lt;/p&gt;

&lt;p&gt;Before, 80% of the time was writing code, 20% was thinking. Now it's 80% thinking, reviewing, deciding, directing. And thinking for 8 hours straight is way harder than coding.&lt;/p&gt;

&lt;p&gt;I used to complain that I didn't have enough hands. Now I have 17 pairs of hands. What I don't have enough of is head.&lt;/p&gt;

&lt;p&gt;I didn't lose my job. I got the job of ten people. Except nine of those are a manager's job, not a developer's.&lt;/p&gt;




&lt;h2&gt;
  
  
  Bottom Line
&lt;/h2&gt;

&lt;p&gt;A project that dragged on for 5 years — finished in 2 months. That's a fact.&lt;/p&gt;

&lt;p&gt;But in its place grew 12 new projects, 17 agents, 500+ closed tasks, and I'm working more than ever. That's also a fact.&lt;/p&gt;

&lt;p&gt;Robots won't take your job. Robots will give you so much work that you'll dream of the days when they were taking it away.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://klymentiev.com/blog/robots-wont-take-your-job" rel="noopener noreferrer"&gt;klymentiev.com&lt;/a&gt;&lt;/em&gt;&lt;br&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%2Ffdv9nw285a2c5u5nm1ut.gif" 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%2Ffdv9nw285a2c5u5nm1ut.gif" alt=" " width="600" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>OpenClaw Has 247K Stars. Here's What It Actually Does.</title>
      <dc:creator>Dmytro Klymentiev</dc:creator>
      <pubDate>Wed, 25 Mar 2026 21:16:21 +0000</pubDate>
      <link>https://dev.to/klymentiev/openclaw-has-247k-stars-heres-what-it-actually-does-5b8k</link>
      <guid>https://dev.to/klymentiev/openclaw-has-247k-stars-heres-what-it-actually-does-5b8k</guid>
      <description>&lt;h2&gt;
  
  
  What is OpenClaw
&lt;/h2&gt;

&lt;p&gt;OpenClaw is an AI assistant that lives in your messengers. WhatsApp, Telegram, Discord, Slack, Signal, iMessage, Teams -- you pick the app, OpenClaw is already there.&lt;/p&gt;

&lt;p&gt;You text it like you would text a friend. "Remind me about the meeting tomorrow at 9." "Summarize this article." "Turn on the lights." It reads your message, thinks, and replies -- right in the same chat.&lt;/p&gt;

&lt;p&gt;One assistant. All your messengers. That is the core idea.&lt;/p&gt;

&lt;p&gt;The backstory: Austrian developer Peter Steinberger released it as "Clawdbot" in November 2025. Anthropic sent a trademark complaint (too close to "Claude"), it became Moltbot, then OpenClaw. Steinberger joined OpenAI and handed the project to an open-source foundation.&lt;/p&gt;




&lt;h2&gt;
  
  
  What it can actually do
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Your daily assistant.&lt;/strong&gt; "Add milk to the grocery list." "What is on my schedule today?" "Remind me to call the dentist at 3pm." It works with Apple Notes, Apple Reminders, Things 3, Notion, Trello, and Obsidian -- whatever you already use for tasks and notes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Manage your code.&lt;/strong&gt; Create pull requests, check CI pipelines, review issues, delegate coding tasks to Claude Code or Codex. Developers use it to manage GitHub workflows without leaving their messenger.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Control your smart home.&lt;/strong&gt; "Turn on the living room lights." "Play jazz in the kitchen." It works with Philips Hue, Sonos, Spotify. It can even check security cameras via RTSP feeds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summarize anything.&lt;/strong&gt; Paste a link to an article, a YouTube video, a podcast -- it reads, transcribes, and gives you the summary. It can generate images via OpenAI and transcribe audio via Whisper.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automate your Mac.&lt;/strong&gt; OpenClaw has a tool called Peekaboo that can see your screen, click buttons, fill forms, and navigate applications. You write in Telegram: "log into the admin panel" -- and it does it. It literally sees the screen, finds the login field, types your email, hits submit. macOS only, but real desktop automation through your messenger.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Show things on your phone.&lt;/strong&gt; OpenClaw has something called Canvas -- the agent generates an interactive HTML page (a dashboard, a chart, a game) and pushes it directly to your phone screen. You ask "show me the weekly sales summary" and an interactive dashboard appears on your iPhone. Your phone becomes the agent's display.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make voice calls.&lt;/strong&gt; Through Twilio or Telnyx, the agent can place and receive actual phone calls. Voice recognition, speech synthesis, real conversations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run scheduled tasks.&lt;/strong&gt; Set up cron jobs directly from chat. "Every Monday at 9am, send me a summary of open issues." The agent runs on a schedule without you needing to ask.&lt;/p&gt;




&lt;h2&gt;
  
  
  Multiple agents, one system
&lt;/h2&gt;

&lt;p&gt;You can create separate agents for different purposes. A "work" agent that handles coding and project management. A "home" agent for smart home and personal reminders. A "family" agent with limited permissions for shared use.&lt;/p&gt;

&lt;p&gt;Each agent has its own personality, its own AI model, its own set of tools, and its own memory. The routing system decides which agent handles which message based on the channel, the sender, or even the specific chat group.&lt;/p&gt;

&lt;p&gt;You can set it up so WhatsApp goes to your everyday assistant and Telegram goes to your deep-work coding agent. Different messengers, different agents, same system.&lt;/p&gt;

&lt;p&gt;Agents can even delegate tasks to each other. One agent working on a complex request can spawn child agents to handle subtasks in parallel and combine the results.&lt;/p&gt;




&lt;h2&gt;
  
  
  It remembers
&lt;/h2&gt;

&lt;p&gt;OpenClaw stores memory as simple text files. Every conversation, every decision, every fact worth keeping. When you ask "what did we decide about the database last week?" it searches through its memory and finds the actual answer -- not just the last few messages.&lt;/p&gt;

&lt;p&gt;It uses vector search under the hood, which means it understands meaning, not just keywords. Ask about "the budget discussion" and it finds notes about finances even if the word "budget" was never used.&lt;/p&gt;

&lt;p&gt;Before a long conversation runs out of context, the agent automatically saves the important parts to memory. Nothing gets lost.&lt;/p&gt;




&lt;h2&gt;
  
  
  Your phone as a peripheral
&lt;/h2&gt;

&lt;p&gt;OpenClaw connects to phones through a companion app (iOS and Android). The phone becomes a peripheral device:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Camera&lt;/strong&gt; -- the agent can take a photo through your phone. "Take a picture of what is in front of you" -- it captures, analyzes, responds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Location&lt;/strong&gt; -- "Where am I?" -- it reads GPS coordinates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Display&lt;/strong&gt; -- push dashboards, forms, or interactive apps to the phone screen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice&lt;/strong&gt; -- "Hey Claude" wake word for hands-free voice interaction.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The phone connects to a central server (the Gateway) over Wi-Fi or VPN. The Gateway always runs on a stationary machine -- a Mac Mini, a Linux server, a home PC that stays on.&lt;/p&gt;




&lt;h2&gt;
  
  
  What it cannot do
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;It does not think strategically.&lt;/strong&gt; It executes tasks, it does not set goals or plan long-term.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It does not learn from experience.&lt;/strong&gt; It follows instructions. If it makes a mistake, it will make the same mistake again unless you change the instructions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It cannot interact with the physical world&lt;/strong&gt; beyond what smart home devices and phone sensors allow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It requires API keys.&lt;/strong&gt; The AI thinking happens on cloud services (Anthropic, OpenAI). You pay per usage. OpenClaw itself is free and open-source (MIT license), but the AI models behind it cost money.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Desktop automation is macOS only.&lt;/strong&gt; Peekaboo requires a Mac with Screen Recording and Accessibility permissions. No Windows, no Linux.&lt;/p&gt;




&lt;h2&gt;
  
  
  Who is this for
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;A solo developer&lt;/strong&gt; who wants GitHub, CI, and code review accessible from any messenger.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A small business owner&lt;/strong&gt; who needs a first-line support agent responding in WhatsApp and Telegram simultaneously.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;An executive&lt;/strong&gt; who wants meeting summaries, reminders, and a mobile dashboard pushed to their phone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A smart home enthusiast&lt;/strong&gt; who wants to control lights, music, and cameras through natural conversation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A content creator&lt;/strong&gt; who needs articles summarized, images generated, and videos transcribed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Anyone tired of switching between apps.&lt;/strong&gt; OpenClaw puts AI where you already spend your time -- your messenger.&lt;/p&gt;




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

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OpenClaw (Gateway + all skills)&lt;/td&gt;
&lt;td&gt;Free (MIT license)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Companion apps (iOS/Android/Mac)&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;All extensions and plugins&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI model API keys (Anthropic, OpenAI)&lt;/td&gt;
&lt;td&gt;Paid (main expense)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Voice calls (Twilio/Telnyx)&lt;/td&gt;
&lt;td&gt;Paid per minute&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The main cost is AI API usage. How much depends on how often you use it and which models you choose. A casual user might spend $5-20/month. Heavy usage with premium models can be more.&lt;/p&gt;




&lt;h2&gt;
  
  
  The bottom line
&lt;/h2&gt;

&lt;p&gt;247K stars are not for a breakthrough in AI. They are for solving a real problem: your AI assistant should live where you already communicate.&lt;/p&gt;

&lt;p&gt;OpenClaw is not a chatbot. It is closer to an operating system for AI -- a core engine with skills, memory, channels, and automation capabilities that you assemble to fit your life.&lt;/p&gt;

&lt;p&gt;Five-minute setup. Ten messaging platforms. One assistant that follows you everywhere.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Trying OpenClaw or building your own AI agents?&lt;/strong&gt; &lt;a href="https://x.com/dklymentiev" rel="noopener noreferrer"&gt;Reply on X&lt;/a&gt; -- I am curious what workflows people are automating.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://klymentiev.com/blog/openclaw-hype-reality" rel="noopener noreferrer"&gt;klymentiev.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>automation</category>
      <category>productivity</category>
    </item>
    <item>
      <title>From 600 Notes to 3,500: Semantic Search for AI Agent Memory</title>
      <dc:creator>Dmytro Klymentiev</dc:creator>
      <pubDate>Mon, 23 Mar 2026 13:14:04 +0000</pubDate>
      <link>https://dev.to/klymentiev/from-600-notes-to-3500-semantic-search-for-ai-agent-memory-2j9e</link>
      <guid>https://dev.to/klymentiev/from-600-notes-to-3500-semantic-search-for-ai-agent-memory-2j9e</guid>
      <description>&lt;p&gt;&lt;em&gt;Updated March 22, 2026: added section on workspaces, document pinning, and weighted multi-workspace search.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Two weeks ago I fixed an authentication bug. Today I can't find the note about it.&lt;/p&gt;

&lt;p&gt;I search for "login problems". Nothing. I search for "auth". Nothing, because the note says "fixed session token validation in middleware".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Grep is useless when you don't remember the exact words you used.&lt;/strong&gt; But that's a small problem. The real one is bigger.&lt;/p&gt;

&lt;p&gt;I run a dozen AI agents. Each one starts fresh every session. No memory of yesterday's decisions. No context from last week's architecture change. Every morning, my first 30 minutes go to re-pasting context that existed yesterday but vanished overnight. When AI agents became central to my workflow, memory stopped being optional. I needed infrastructure that remembers.&lt;/p&gt;

&lt;p&gt;This is why I built Mesh.&lt;/p&gt;




&lt;h2&gt;
  
  
  How I got here
&lt;/h2&gt;

&lt;p&gt;In December I built &lt;a href="https://klymentiev.com/blog/semantic-memory-for-ai-assistants/" rel="noopener noreferrer"&gt;mem-cli&lt;/a&gt; — a CLI tool backed by PostgreSQL. It worked but was rough: 600 documents, basic tagging, no auto-organization. Three months later, Mesh is a different system. 3,500+ documents, auto-tagging, project markers, version tracking. It's the memory layer for everything I build. And now it's &lt;a href="https://github.com/dklymentiev/mesh-memory" rel="noopener noreferrer"&gt;open source&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The tipping point: automatic tagging
&lt;/h2&gt;

&lt;p&gt;This is what changed my behavior.&lt;/p&gt;

&lt;p&gt;When you save a document, Mesh adds tags automatically: &lt;code&gt;date:2026-02-03&lt;/code&gt;, &lt;code&gt;source:api&lt;/code&gt;. Then it looks at similar existing documents and infers type, topic, and project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;type:worklog&lt;/code&gt; — because other similar notes are worklogs&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;topic:authentication&lt;/code&gt; — because the content is about auth&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;project:mesh&lt;/code&gt; — because the project marker matches&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No manual tagging. No folder hierarchies. Just save and forget. Mesh organizes it for you.&lt;/p&gt;

&lt;p&gt;The inference isn't perfect — 85% accuracy. Sometimes it tags a debugging note as &lt;code&gt;type:decision&lt;/code&gt;. Sometimes it infers the wrong project. I fix maybe 5 tags a day. That's 5 manual corrections vs 30 fully manual tags.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;85% automatic is better than 100% manual when you're doing it 30 times a day.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This removed the last barrier to writing things down. &lt;strong&gt;Before Mesh:&lt;/strong&gt; 5-10 notes per week. &lt;strong&gt;After:&lt;/strong&gt; 30+. Not because I got more disciplined. Because the friction disappeared.&lt;/p&gt;




&lt;h2&gt;
  
  
  How semantic search finds notes by meaning
&lt;/h2&gt;

&lt;p&gt;Instead of matching exact words, match meaning.&lt;/p&gt;

&lt;p&gt;You write "fixed session token validation in middleware". Mesh converts it into a vector — a numerical representation of what the sentence means. When you search for "login problems", that query also becomes a vector. If the vectors are close in meaning, it's a match.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Search by meaning&lt;/span&gt;
curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST localhost:8000/search &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"query": "login problems"}'&lt;/span&gt;
&lt;span class="c"&gt;# -&amp;gt; finds "fixed session token validation in middleware"&lt;/span&gt;

&lt;span class="c"&gt;# Search by tag&lt;/span&gt;
curl localhost:8000/bytag/topic:authentication
&lt;span class="c"&gt;# -&amp;gt; all authentication-related documents&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The best note-taking system is the one where you don't have to remember how you wrote something.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Giving AI agents persistent memory across sessions
&lt;/h2&gt;

&lt;p&gt;I run a dozen AI agents. Each one starts fresh every session. The first question is always: "what did we do last time?"&lt;/p&gt;

&lt;p&gt;Without memory, every session is a blank slate. No context, no history, no decisions from yesterday.&lt;/p&gt;

&lt;p&gt;Last week I opened Claude Code on a project I hadn't touched in three weeks. First thing it did was &lt;code&gt;mesh search "recent decisions for this project"&lt;/code&gt;. Five seconds later it had the full context: we'd switched from Redis to PostgreSQL for the queue, the migration was half done, and there was a known bug in the retry logic. Without that search, I would have spent ten minutes re-explaining everything.&lt;/p&gt;

&lt;p&gt;When &lt;a href="https://klymentiev.com/blog/brin-the-glue-agent/" rel="noopener noreferrer"&gt;Brin&lt;/a&gt; (my routing agent) starts a new session, it runs &lt;code&gt;mesh find &amp;lt;project-guid&amp;gt;&lt;/code&gt; and immediately has every decision, every bug, every architecture note. No re-asking. No re-pasting. The agent picks up exactly where it left off.&lt;/p&gt;

&lt;p&gt;3,500+ documents indexed. Every agent has access to the full history of every project. Serving 50+ requests per minute with zero data loss in 3 months.&lt;/p&gt;




&lt;h2&gt;
  
  
  Link notes to projects with MEMORY.md markers
&lt;/h2&gt;

&lt;p&gt;Every project on my server has a &lt;code&gt;MEMORY.md&lt;/code&gt; file with a unique ID:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Memory&lt;/span&gt;
guid: a1b2c3d4
created: 2025-12-29
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When I save a note while working in that project directory, Mesh automatically links it to that project. Later, &lt;code&gt;mesh find a1b2c3d4&lt;/code&gt; shows the entire history: worklogs, decisions, research notes. Everything related to that project in one query.&lt;/p&gt;

&lt;p&gt;I have 15 projects with markers. When I switch between them, the first thing I do is &lt;code&gt;mesh find &amp;lt;guid&amp;gt;&lt;/code&gt;. Instant context. No manual bookkeeping.&lt;/p&gt;




&lt;h2&gt;
  
  
  From 600 to 3,500 documents: three months of production use
&lt;/h2&gt;

&lt;p&gt;The first version (mem-cli) was a weekend project. 600 documents, basic CLI. What's different now:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scale.&lt;/strong&gt; 600 documents in December. 3,500+ now. Search still returns in under 100ms. &lt;a href="https://github.com/pgvector/pgvector" rel="noopener noreferrer"&gt;PostgreSQL with pgvector&lt;/a&gt; handles this well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auto-tagging.&lt;/strong&gt; Didn't exist in v1. I was tagging everything manually. Adding auto-inference cut my tagging effort by 80%.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Version tracking.&lt;/strong&gt; Mesh can find earlier versions of a document by comparing vectors. When a decision changes, I can trace back to the original.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-agent access.&lt;/strong&gt; In December, only I used it through CLI. Now it's an MCP server that Claude Code, Brin, and other tools query directly. The API handles 50+ requests per minute without issues.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why multilingual-e5-small
&lt;/h2&gt;

&lt;p&gt;Every embedding is computed locally by &lt;a href="https://huggingface.co/intfloat/multilingual-e5-small" rel="noopener noreferrer"&gt;multilingual-e5-small&lt;/a&gt; — a 384-dimension model that runs on CPU. No OpenAI API key. No data leaving your network.&lt;/p&gt;

&lt;p&gt;Why this model specifically? It handles mixed-language text well (I write in English, Russian, and Ukrainian in the same document). It's small enough to run without GPU. And 384 dimensions is sufficient for document-level search — you'd need 768 or 1536 dimensions for fine-grained passage retrieval, but for "find the decision about Redis vs PostgreSQL", smaller vectors work fine.&lt;/p&gt;

&lt;p&gt;If you're sending your internal notes, architecture decisions, and debugging logs to a third-party embedding API, you're sending your entire engineering context to someone else's server. Mesh runs in a single Docker container. Your notes stay where they belong.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Mesh Memory is (and what it replaces)
&lt;/h2&gt;

&lt;p&gt;Mesh is infrastructure. The memory layer that sits beneath your agents, your CLI tools, your automation. It finds documents. What you do with them is up to you.&lt;/p&gt;

&lt;p&gt;It's not RAG. Retrieval without generation. The G in RAG is where hallucinations live. You don't want an AI summarizing your architecture decisions — you want to read the actual decision yourself.&lt;/p&gt;

&lt;p&gt;It's not a second brain app like Obsidian or Notion. No UI for browsing, no pretty cards. It's an API that other tools call.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Mesh Memory&lt;/th&gt;
&lt;th&gt;Obsidian + plugins&lt;/th&gt;
&lt;th&gt;Chroma / Pinecone&lt;/th&gt;
&lt;th&gt;Plain grep&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Self-hosted&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Managed / self&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Semantic search&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Plugin needed&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auto-tagging&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&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;AI agent REST API&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Setup time&lt;/td&gt;
&lt;td&gt;60 seconds&lt;/td&gt;
&lt;td&gt;30 min&lt;/td&gt;
&lt;td&gt;15 min&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data stays local&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Depends&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;$25+/mo&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Search latency (p95)&lt;/td&gt;
&lt;td&gt;&amp;lt;100ms&lt;/td&gt;
&lt;td&gt;Plugin-dependent&lt;/td&gt;
&lt;td&gt;50-200ms&lt;/td&gt;
&lt;td&gt;Instant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Realistic doc limit&lt;/td&gt;
&lt;td&gt;~10K&lt;/td&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;p&gt;Mesh works well for what I built it for. Here's where it doesn't:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auto-tagging is 85%, not 100%.&lt;/strong&gt; I manually correct about 5 tags per day. If your workflow requires perfect categorization, you'll need manual review.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No relational queries.&lt;/strong&gt; Mesh finds documents by meaning. It doesn't do "show me all decisions that led to bugs" — that requires a graph database, not a vector store.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Embedding bias.&lt;/strong&gt; Small models are less precise on highly specialized domains. If your notes are about quantum chemistry, multilingual-e5-small might not distinguish between related but different concepts well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scaling ceiling.&lt;/strong&gt; I run 3,500 documents comfortably. Realistic limit is ~10K on a single PostgreSQL instance. Beyond that, you'd need connection pooling or sharding. For most individual developers, this is plenty.&lt;/p&gt;




&lt;h2&gt;
  
  
  Three months of production: what surprised me
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The biggest productivity gain is not search. It's that I write things down now.&lt;/strong&gt; Before Mesh, I rarely wrote things down because finding them later was hard. Now I write everything down because finding them later is easy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auto-tagging was the tipping point.&lt;/strong&gt; Manual tagging is friction. Even typing &lt;code&gt;"type:worklog"&lt;/code&gt; is friction when you're doing it 30 times a day. Auto-inference removed that last barrier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agents changed more than I did.&lt;/strong&gt; The biggest difference isn't how I use Mesh — it's how my agents use it. Every Claude Code session, every Brin routing decision, every Rein workflow now starts with memory context. The agents went from amnesiacs to colleagues who remember.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Updated March 22, 2026&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  I blended three knowledge bases at runtime. The agent became a different specialist.
&lt;/h2&gt;

&lt;p&gt;After a few weeks of testing, Mesh went into production. Twelve agents got their own workspaces — separate address spaces within the same memory. The marketing agent reads marketing documents. The architect reads architecture decisions. They share the same database but never see each other's files.&lt;/p&gt;

&lt;p&gt;The problem it solved was simple: when everything is in one pile, agents drown in irrelevant context. A security reviewer doesn't need content plans. A content manager doesn't need firewall rules. Workspaces fixed that — tell the agent "focus on marketing" and it switches to 28 documents about brand strategy. Tell it "focus on security" and it's a different specialist with different knowledge.&lt;/p&gt;

&lt;p&gt;Two features made this actually flexible. First — &lt;strong&gt;document pinning&lt;/strong&gt;. Pin a document to a workspace and the agent always sees it, regardless of search results. Platform rules, style guides, brand voice — things that should be in context every time, not just when the search happens to find them.&lt;/p&gt;

&lt;p&gt;Second — &lt;strong&gt;weighted multi-workspace search&lt;/strong&gt;. Instead of locking an agent into one role, you blend them. Set &lt;code&gt;{"seo": 0.8, "marketing": 0.2}&lt;/code&gt; and you get an SEO specialist who understands brand positioning. Set &lt;code&gt;{"sysadmin": 0.6, "architecture": 0.4}&lt;/code&gt; — a sysadmin who thinks about system design. I needed someone who could audit a landing page, suggest copy improvements, and fix the layout. So I set &lt;code&gt;{"sales": 0.5, "webmaster": 0.3, "design": 0.2}&lt;/code&gt;. One agent, three knowledge bases, blended by weight.&lt;/p&gt;

&lt;p&gt;Today: 8,000 documents across 21 workspaces. When a new specialist joins — say, a legal reviewer — I create a workspace, add the relevant documents, and it's ready. No fine-tuning. No prompt engineering. Just memory.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>semanticsearch</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>How I Added 2+2 Using 97 AI Agents</title>
      <dc:creator>Dmytro Klymentiev</dc:creator>
      <pubDate>Fri, 06 Mar 2026 08:03:31 +0000</pubDate>
      <link>https://dev.to/klymentiev/how-i-added-22-using-97-ai-agents-3ii2</link>
      <guid>https://dev.to/klymentiev/how-i-added-22-using-97-ai-agents-3ii2</guid>
      <description>&lt;p&gt;I built 97 blocks of YAML, 8 AI specialists, and 18 phases of deliberation to answer a question every five-year-old knows: what is 2 + 2?&lt;/p&gt;

&lt;p&gt;It took the system about four minutes to reach a unanimous verdict: 4. Along the way, a mathematician invoked Peano axioms, a philosopher questioned whether numbers exist, a poet called four "the universe's quietest poem," and a child said "it's 4, everybody knows that."&lt;/p&gt;

&lt;p&gt;The most interesting character had only 72% confidence.&lt;/p&gt;

&lt;p&gt;This is how I built &lt;a href="https://github.com/dklymentiev/rein-orchestrator" rel="noopener noreferrer"&gt;Rein&lt;/a&gt;, an open-source orchestrator for multi-agent AI workflows, and why I tested it on the most over-engineered arithmetic problem ever created.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://klymentiev.com/assets/images/blog/rein-97-diagram.jpg" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fklymentiev.com%2Fassets%2Fimages%2Fblog%2Frein-97-diagram.jpg" alt="The dependency graph of 97 blocks: 8 specialists debating 2+2 through 18 phases" width="800" height="542"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://klymentiev.com/assets/rein-transcript.txt" rel="noopener noreferrer"&gt;Read full transcript: 89 blocks, all specialist outputs --&amp;gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;I have a dozen AI agents on my server. Research agents, code reviewers, content writers, critics. Each one works fine alone.&lt;/p&gt;

&lt;p&gt;Getting them to work together is the problem. One massive prompt with all the instructions works for simple tasks. For anything with more than two steps, the model forgets the beginning by the time it reaches the end, and when something fails you re-run everything from scratch.&lt;/p&gt;

&lt;p&gt;I needed a way to split work into steps, hand each step to a different specialist, and have results flow automatically from one to the next. The same structure that debates 2+2 can debate "should we use Kafka or RabbitMQ" -- the patterns are identical, only the question changes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Eight specialists walk into a debate
&lt;/h2&gt;

&lt;p&gt;Before the deliberation, I verified the engine with a 12-block flow that adds 2+2 using Python scripts -- no AI, just parallel validation, compute, verify, conditional branch. That was the unit test. The deliberation is the integration test.&lt;/p&gt;

&lt;p&gt;I defined 8 AI specialists, each with a different lens on the world:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Specialist&lt;/th&gt;
&lt;th&gt;Perspective&lt;/th&gt;
&lt;th&gt;What they bring&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Mathematician&lt;/td&gt;
&lt;td&gt;Formal proof&lt;/td&gt;
&lt;td&gt;Peano axioms, logical certainty&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Philosopher&lt;/td&gt;
&lt;td&gt;Ontological&lt;/td&gt;
&lt;td&gt;"Do numbers even exist?"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Physicist&lt;/td&gt;
&lt;td&gt;Empirical&lt;/td&gt;
&lt;td&gt;Two stones + two stones = four stones&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Child&lt;/td&gt;
&lt;td&gt;Naive common sense&lt;/td&gt;
&lt;td&gt;"It's 4, everybody knows that"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Skeptic&lt;/td&gt;
&lt;td&gt;Challenges everything&lt;/td&gt;
&lt;td&gt;Modular arithmetic, Godel, doubt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Historian&lt;/td&gt;
&lt;td&gt;5000 years of consensus&lt;/td&gt;
&lt;td&gt;Babylonians knew this too&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Poet&lt;/td&gt;
&lt;td&gt;Aesthetic truth&lt;/td&gt;
&lt;td&gt;Beauty in numerical harmony&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineer&lt;/td&gt;
&lt;td&gt;Practical precision&lt;/td&gt;
&lt;td&gt;4, +/- 0.01 tolerance&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Each specialist is a Markdown file with a system prompt. About 10 lines. The team YAML enforces brevity: "respond in 1-2 sentences, output JSON."&lt;/p&gt;




&lt;h2&gt;
  
  
  97 blocks, 18 phases
&lt;/h2&gt;

&lt;p&gt;The workflow YAML is 500+ lines. Here's the structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Phase 1:  OPENING STATEMENTS ............ 8 blocks (parallel)
Phase 2:  CROSS-REVIEW LEFT ............. 8 blocks (parallel)
Phase 3:  CROSS-REVIEW RIGHT ............ 8 blocks (parallel)
Phase 4:  REVISED POSITIONS ............. 8 blocks (parallel)
Phase 5:  STRUCTURED DEBATES ............ 8 blocks (4 pairs)
Phase 6:  DEBATE JUDGES ................. 4 blocks (parallel)
Phase 7:  POST-DEBATE POSITIONS ......... 8 blocks (parallel)
Phase 8:  SKEPTIC CHALLENGES ............ 7 blocks (parallel)
Phase 9:  RESPONSES TO SKEPTIC .......... 7 blocks (parallel)
Phase 10: GROUP SYNTHESIS ............... 2 blocks (parallel)
Phase 11: GROUP DEBATE .................. 2 blocks (sequential)
Phase 12: MODERATOR SYNTHESIS ........... 1 block
Phase 13: FINAL VOTE .................... 8 blocks (parallel)
Phase 14: VOTE COUNT + CONSENSUS ........ 2 blocks (sequential)
Phase 15: EMERGENCY ROUND ............... 4 blocks (conditional)
Phase 16: EMERGENCY VOTE ................ 8 blocks (conditional)
Phase 17: FORMAT ANSWER ................. 1 block
Phase 18: QUALITY + DELIVER ............. 3 blocks (sequential)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every phase runs in parallel where possible. The dependency graph looks like a circuit board: wide parallel bands feeding into narrow synthesis points, then fanning out again.&lt;/p&gt;

&lt;p&gt;The conditional branch at Phase 14 is the interesting part. If 75% of specialists agree, skip to formatting. If not, trigger emergency rounds. In this run, consensus was 100%, so the emergency path never fired. But it's there.&lt;/p&gt;




&lt;h2&gt;
  
  
  What actually happened
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Opening statements
&lt;/h3&gt;

&lt;p&gt;Eight specialists answered simultaneously. Most said "4" without hesitation. The Mathematician cited Peano axioms. The Engineer said "4, fundamental arithmetic identity." The Historian traced it to Babylonian mathematics circa 3000 BCE.&lt;/p&gt;

&lt;p&gt;Two stood out.&lt;/p&gt;

&lt;p&gt;The Poet:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Two and two make four -- a truth as old as counting stars, where symmetry finds its most perfect mirror in the doubling of the pair. It is the first lesson of arithmetic, and perhaps the universe's quietest poem."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And the Skeptic, at 72% confidence:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"While 2+2=4 is treated as self-evident, this relies entirely on accepting the axioms of Peano arithmetic. In modular arithmetic mod 4, 2+2=0. The answer is framework-dependent, not absolute truth."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Everyone else was at 97-100%. The Skeptic opened at 72%. This gap drives the entire deliberation.&lt;/p&gt;




&lt;h3&gt;
  
  
  The debates
&lt;/h3&gt;

&lt;p&gt;Two rounds of cross-review planted the seeds -- the Philosopher called the Mathematician's axiomatic dependence "a significant philosophical concession," the Physicist dismissed modular arithmetic as "contextually irrelevant." Then four structured debates ran in parallel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mathematics vs. Philosophy.&lt;/strong&gt; The Mathematician argued that Peano axioms aren't arbitrary -- they capture our actual concept of natural numbers. The Philosopher rebutted: logical necessity within a system isn't the same as necessity full stop. "If these axioms, then this result" is not the same as "this result, period."&lt;/p&gt;

&lt;p&gt;They partially converged. Both agreed on 4; disagreed on whether it's a mind-independent truth or a consequence of a chosen framework.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Physics vs. Skepticism.&lt;/strong&gt; This was the turning point. The Physicist invoked empirical evidence: two stones plus two stones always makes four stones. Two photons plus two photons, same thing. Every measurement confirms it.&lt;/p&gt;

&lt;p&gt;The Skeptic conceded:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Physical reality does provide a non-circular grounding for why standard arithmetic is the privileged context, making '4' not merely conventional but empirically anchored."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The circularity -- "Peano axioms formalize standard arithmetic, which is standard because Peano axioms formalize it" -- was broken by pointing outside mathematics entirely. Physics grounds the math.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Poetry vs. Engineering.&lt;/strong&gt; The Poet argued mathematics without meaning is "a skeleton without flesh." The Engineer countered that wonder validates the arithmetic, not the other way around. Then the Engineer surprised everyone:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Precision alone is insufficient for full understanding. Context, meaning, and human experience are legitimate dimensions of knowledge, just orthogonal to the arithmetic fact itself."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  The Skeptic's challenge round
&lt;/h3&gt;

&lt;p&gt;Phase 8 was the Skeptic's chance to attack everyone individually. Seven targeted challenges, deployed in parallel.&lt;/p&gt;

&lt;p&gt;To the Mathematician, the Skeptic invoked Godel: "If the consistency of Peano arithmetic cannot be proven within Peano arithmetic itself, your confidence rests on an unprovable meta-assumption."&lt;/p&gt;

&lt;p&gt;To the Child: "You're importing a specific foundational framework as if it were neutral."&lt;/p&gt;

&lt;p&gt;To the Poet, the sharpest attack: "If 2+2=4 is merely system-relative, then so is the beauty you invoke to defend it. Your certainty is self-undermining."&lt;/p&gt;

&lt;p&gt;All seven stood firm. The Mathematician pointed out that Godel's limitations apply equally to every alternative system -- there's no better option to switch to. The Child cut through the philosophy: "The question '2+2=?' implicitly operates within standard arithmetic. Acknowledging that other systems exist doesn't undermine the answer within the default context."&lt;/p&gt;

&lt;p&gt;The Poet made the most elegant counter-move:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"A poet who says 'all roses are red within this garden' need not pretend to stand outside all gardens to say so with conviction."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  The Skeptic's arc
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Opening: 72%.&lt;/strong&gt; "The answer is framework-dependent, not absolute truth."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After the Physics debate: ~85%.&lt;/strong&gt; The moment two stones plus two stones became the argument, the Skeptic's circularity attack lost its teeth. He conceded that standard arithmetic is "empirically anchored" -- not just a convention we happen to use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Post-debate reflection: 88%.&lt;/strong&gt; "The philosophical nuance about axiomatic choice is valid but doesn't undermine the practical answer." The hedging shrank. The confidence grew.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final vote: 100%.&lt;/strong&gt; "2+2=4 is a fundamental arithmetic fact, universally true in standard integer arithmetic."&lt;/p&gt;

&lt;p&gt;The Skeptic didn't cave to pressure. He engaged every argument, found the best counterarguments, and changed his mind when the evidence warranted it. His journey from principled doubt to informed certainty is the intellectual backbone of the entire deliberation.&lt;/p&gt;




&lt;h3&gt;
  
  
  Final vote
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Specialist&lt;/th&gt;
&lt;th&gt;Answer&lt;/th&gt;
&lt;th&gt;Confidence&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Mathematician&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Philosopher&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Physicist&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Child&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Skeptic&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Historian&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Poet&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engineer&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Unanimous. 8/8, 100% confidence. The consensus check passed instantly. Emergency rounds never triggered.&lt;/p&gt;




&lt;h2&gt;
  
  
  Transcript highlights
&lt;/h2&gt;

&lt;p&gt;These are real outputs from a real run. 89 of 97 blocks completed. Here are 10 moments from the deliberation:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Child, opening statement:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"It's 4! Everyone knows that, it's easy!"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Skeptic, opening statement (72% confidence):&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"While 2+2=4 is treated as self-evident, this relies entirely on accepting the axioms of Peano arithmetic. In modular arithmetic mod 4, 2+2=0. The answer is framework-dependent, not absolute truth."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Poet, opening statement:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Two and two make four -- a truth as old as counting stars, where symmetry finds its most perfect mirror in the doubling of the pair. It is the first lesson of arithmetic, and perhaps the universe's quietest poem."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Physicist, arguing against the Skeptic:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Every empirical counting operation -- two stones plus two stones, two photons plus two photons -- consistently yields four. The reason standard arithmetic is the assumed context is precisely because it models physical reality most faithfully."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Skeptic, conceding to the Physicist:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I concede: physical reality does provide a non-circular grounding for why standard arithmetic is the privileged context, making '4' not merely conventional but empirically anchored."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Skeptic, challenging the Poet:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"If 2+2=4 is merely system-relative, then so is the beauty you invoke to defend it. Your certainty is self-undermining."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Poet, responding to the Skeptic:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"A poet who says 'all roses are red within this garden' need not pretend to stand outside all gardens to say so with conviction."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Engineer, opening statement:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"2+2 equals 4, a fundamental arithmetic identity that holds across all standard number systems and is foundational to integer arithmetic in every computing architecture."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Mathematician, opening statement:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"2+2=4 is a provable theorem in Peano arithmetic, following directly from the axioms of successor and addition."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Skeptic, final vote (100% confidence):&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"2+2=4 is a fundamental arithmetic fact, universally true in standard integer arithmetic."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://klymentiev.com/assets/rein-transcript.txt" rel="noopener noreferrer"&gt;Full transcript: 89 blocks, all specialist outputs&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;Under the hood, Rein scans the YAML, builds a dependency graph, and executes blocks in parallel wherever dependencies allow. State lives in SQLite. Each block writes output to a JSON file. Downstream blocks read upstream outputs automatically via template injection:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;review_math&lt;/span&gt;
  &lt;span class="na"&gt;specialist&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;philosopher&lt;/span&gt;
  &lt;span class="na"&gt;depends_on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;opening_mathematician&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
  &lt;span class="na"&gt;prompt&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Review&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;this&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;position:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;opening_mathematician.json&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;{{ opening_mathematician.json }}&lt;/code&gt; expands to the full content of the mathematician's output file. Data flows through the file system. No message passing, no shared state, no race conditions.&lt;/p&gt;

&lt;p&gt;The execution engine handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Parallel execution&lt;/strong&gt; with a configurable semaphore (&lt;code&gt;max_parallel: 8&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conditional branching&lt;/strong&gt; (&lt;code&gt;next: if/else/goto&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Correction loops&lt;/strong&gt; with &lt;code&gt;max_runs&lt;/code&gt; safety valves&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom logic&lt;/strong&gt; at four points per block: pre-hook, post-hook, validate, and full custom replacement&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recovery&lt;/strong&gt;: if block 45 of 97 fails, fix it and rerun -- blocks 1-44 are skipped&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Three layers, all text files:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Specialists (Markdown)  -&amp;gt;  what each agent does
Teams (YAML)            -&amp;gt;  groups + shared tone
Workflows (YAML)        -&amp;gt;  execution flow
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A specialist is 10 lines of Markdown defining a persona. A team groups specialists and enforces style ("respond in JSON, 1-2 sentences max"). A workflow defines the dependency graph.&lt;/p&gt;

&lt;p&gt;Rein is not an agent framework. There's no memory management, no role-playing abstractions, no conversation loops. It's a workflow runner: you describe what happens in what order, and it executes it. If you want LangGraph's stateful graphs or CrewAI's autonomous agents, those solve different problems. Rein solves "I have 97 steps with dependencies and I need them to run correctly."&lt;/p&gt;

&lt;p&gt;It works with any LLM: Claude, GPT, Ollama (local, free), OpenRouter. Set &lt;code&gt;provider: anthropic&lt;/code&gt; in YAML and an API key in the environment. The deliberation ran on Claude Sonnet -- 97 API calls total. You can mix models within a single workflow: cheap model for initial opinions, expensive one for synthesis.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I learned
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Specialist prompts matter more than architecture.&lt;/strong&gt; I rewrote the "critic" specialist seven times. The first version produced vague praise ("good work, minor issues"). The second was too harsh -- it rejected everything. Versions three through six oscillated between the two. The seventh finally worked: I gave it a scoring rubric with explicit thresholds. The lesson applies everywhere: a badly defined specialist produces garbage regardless of how sophisticated the workflow is.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Skeptic was the best investment.&lt;/strong&gt; Adding a specialist whose job is to disagree forced every other agent to sharpen their arguments. Without the Skeptic, the deliberation would have been eight agents agreeing politely. With the Skeptic, it became an actual discussion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;YAML is the right call.&lt;/strong&gt; I tried Python DSLs, JSON, even a custom language. YAML is boring. Everyone knows it, it diffs well in git, and you can read a 500-line workflow without documentation. Boring tools win.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Physical grounding broke the deadlock.&lt;/strong&gt; The philosophical arguments went in circles until the Physicist pointed at actual stones. In multi-agent systems, you need at least one specialist who anchors abstract reasoning to concrete evidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Child was surprisingly effective.&lt;/strong&gt; "It's 4, everybody knows that" is not a sophisticated argument. But it kept cutting through philosophical hedging and reminding everyone that context matters. Sometimes the simplest perspective is the most powerful.&lt;/p&gt;




&lt;h2&gt;
  
  
  Want to try it?
&lt;/h2&gt;

&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%2Ffk64twdvuxbv9jwirncd.gif" 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%2Ffk64twdvuxbv9jwirncd.gif" alt="Rein orchestrator executing a multi-agent deliberation workflow" width="800" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you've ever copy-pasted a 3000-token prompt trying to make one model do five things at once, this is the workflow engine you wanted. Three text files: a specialist, a team, a workflow. That's the entire mental model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/dklymentiev/rein-orchestrator" rel="noopener noreferrer"&gt;github.com/dklymentiev/rein-orchestrator&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;git+https://github.com/dklymentiev/rein-orchestrator
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;sk-...

&lt;span class="nb"&gt;cd &lt;/span&gt;examples/01-hello-world
rein &lt;span class="nt"&gt;--agents-dir&lt;/span&gt; ./agents workflow.yaml &lt;span class="nt"&gt;--no-ui&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# workflow.yaml -- three specialists, two dependencies&lt;/span&gt;
&lt;span class="na"&gt;provider&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;anthropic&lt;/span&gt;
&lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;claude-sonnet-4-20250514&lt;/span&gt;
&lt;span class="na"&gt;team&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;content-team&lt;/span&gt;

&lt;span class="na"&gt;blocks&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;research&lt;/span&gt;
    &lt;span class="na"&gt;specialist&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;researcher&lt;/span&gt;
    &lt;span class="na"&gt;prompt&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Analyze:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;task.input.topic&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;write&lt;/span&gt;
    &lt;span class="na"&gt;specialist&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;writer&lt;/span&gt;
    &lt;span class="na"&gt;depends_on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;research&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
    &lt;span class="na"&gt;prompt&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Write&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;based&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;on:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;research.json&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;review&lt;/span&gt;
    &lt;span class="na"&gt;specialist&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;critic&lt;/span&gt;
    &lt;span class="na"&gt;depends_on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;write&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
    &lt;span class="na"&gt;prompt&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Review:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;write.json&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ten progressive examples in the repo, from hello-world to multi-phase deliberation. Works with Claude, GPT, Ollama (local/free), OpenRouter (100+ models). Also runs as an MCP server:&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 rein &lt;span class="nt"&gt;--&lt;/span&gt; rein-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open source. MIT license. Questions and contributions welcome on GitHub.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://klymentiev.com/blog/rein-multi-agent-orchestrator" rel="noopener noreferrer"&gt;klymentiev.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>python</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How LLM Can Fix Your Posture</title>
      <dc:creator>Dmytro Klymentiev</dc:creator>
      <pubDate>Wed, 04 Mar 2026 02:10:59 +0000</pubDate>
      <link>https://dev.to/klymentiev/how-llm-can-fix-your-posture-2agk</link>
      <guid>https://dev.to/klymentiev/how-llm-can-fix-your-posture-2agk</guid>
      <description>&lt;p&gt;I stopped typing three months ago. Not completely, but for most of my work, I just talk.&lt;/p&gt;

&lt;p&gt;The setup: I speak into my phone, the text appears on my computer wherever the cursor is. No copy-paste, no switching windows. I say a sentence, it gets typed. I press Enter.&lt;/p&gt;

&lt;p&gt;This is how I write this article right now.&lt;/p&gt;




&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;I'm a system engineer running a home server with dozens of services, AI agents, dashboards. I spend 5-7 hours a day at my workstation after my full-time job. Most of that time goes to typing: commands, prompts, messages, notes.&lt;/p&gt;

&lt;p&gt;My hands get tired. My back hurts from hunching over the keyboard. And the worst part: typing is the bottleneck between thinking and doing.&lt;/p&gt;

&lt;p&gt;I wanted to give instructions the way I'd talk to a colleague. By speaking.&lt;/p&gt;




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

&lt;p&gt;The solution turned out to be embarrassingly simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Android app&lt;/strong&gt; sends recognized text over WiFi to my workstation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workstation service&lt;/strong&gt; receives the text and types it into the active cursor position&lt;/li&gt;
&lt;li&gt;That's it. No cloud. No server processing. No Whisper.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The key insight: &lt;strong&gt;Android's built-in speech recognition is better than anything I tried.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I experimented with Whisper (multiple model sizes), Faster Whisper, Vosk, and several other libraries. They all had problems. Whisper small was too slow on CPU, took 3-4 seconds per utterance. Whisper medium ate 4GB of RAM and was still slower than real-time. Faster Whisper improved speed but accuracy with mixed Russian/English was poor. Vosk worked offline but the models were huge and recognition quality was inconsistent.&lt;/p&gt;

&lt;p&gt;Android's native speech-to-text just works. It's fast, it's accurate, it runs on the phone's hardware, and it handles language switching naturally. Google has spent billions optimizing on-device recognition. I can't compete with that on a single server.&lt;/p&gt;




&lt;h2&gt;
  
  
  The workflow
&lt;/h2&gt;

&lt;p&gt;My phone sits on the desk next to me. When I want to "type" something:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the app (or it's already open)&lt;/li&gt;
&lt;li&gt;Speak naturally, text appears in real-time on my phone screen&lt;/li&gt;
&lt;li&gt;The text gets transmitted over WiFi to my workstation&lt;/li&gt;
&lt;li&gt;It's inserted wherever my cursor is: terminal, browser, IDE, chat&lt;/li&gt;
&lt;li&gt;I hit Enter (on the phone or keyboard)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Language switching:&lt;/strong&gt; Android auto-detects language from phonemes. I use three languages daily -- English, Russian, Ukrainian -- and it switches between them naturally.&lt;/p&gt;




&lt;h2&gt;
  
  
  What changed
&lt;/h2&gt;

&lt;p&gt;My productivity increased dramatically. Tasks that involved writing prompts, commit messages, or documentation took about 3x less time. The bottleneck shifted from typing to thinking, which is where it should be.&lt;/p&gt;

&lt;p&gt;The physical change was even more dramatic. I have a motorized standing desk. Before voice input, I rarely used the standing position because typing while standing is uncomfortable. Your wrists are at a weird angle, the keyboard feels too low or too high.&lt;/p&gt;

&lt;p&gt;Now I work standing half the day. Just talking.&lt;/p&gt;

&lt;p&gt;The irony is that as a system engineer, my posture improved not from ergonomics advice but from building a voice tool.&lt;/p&gt;




&lt;h2&gt;
  
  
  Technical details
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Android app:&lt;/strong&gt; Kotlin, uses Android's &lt;code&gt;SpeechRecognizer&lt;/code&gt; API. Connects to the workstation via WebSocket over the local network. Sends recognized text as plain string messages. The app stays in foreground with a persistent notification so Android doesn't kill the WebSocket connection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workstation service:&lt;/strong&gt; Lightweight Python process, about 80 lines of code. Receives WebSocket messages, uses &lt;code&gt;xdotool&lt;/code&gt; (Linux) to type the text at the current cursor position. Simulates keyboard input at the OS level, so it works with any application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Network:&lt;/strong&gt; Pure local WiFi. Phone and workstation on the same network. Latency under 50ms. No internet required. Total round-trip from speech end to text appearing on screen is about 200ms.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I use it for daily
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Talking to Claude.&lt;/strong&gt; About 60% of all voice input. I dictate prompts, describe bugs, give instructions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Writing notes and worklogs.&lt;/strong&gt; I used to skip writing them because it felt tedious. Now I just say what I did.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Git commit messages.&lt;/strong&gt; My commits got longer and more descriptive since I stopped typing them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Slack and Telegram messages.&lt;/strong&gt; Faster than thumb-typing on phone.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentation.&lt;/strong&gt; Like this article.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What doesn't work great
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Code.&lt;/strong&gt; I don't dictate code. Variable names, brackets, indentation. Voice is terrible for this. But honestly, I haven't written code manually in three months either -- Claude Code writes it for me. I dictate the intent, the model writes the code. The keyboard limitation stopped mattering.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Noisy environments.&lt;/strong&gt; Works great in my home office. Drops accuracy significantly with background noise.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technical terms.&lt;/strong&gt; When I say "xdotool" or "kubectl", Android has no idea what I mean. I keep a dictionary of corrections for terms I use often, but for these I just type.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why local-only matters
&lt;/h2&gt;

&lt;p&gt;No API keys or prompts leaving my network. No subscription. No account dependency. The entire system lives on my server -- I own the data, the latency, the uptime.&lt;/p&gt;




&lt;h2&gt;
  
  
  Was it worth building?
&lt;/h2&gt;

&lt;p&gt;It took a weekend to build the first working version. Three months later, I use it every single day.&lt;/p&gt;

&lt;p&gt;Total cost: one weekend of coding, zero ongoing costs. The phone I already had. The WiFi network I already had. Android's speech recognition is free.&lt;/p&gt;

&lt;p&gt;Sometimes the most impactful tool isn't the most complex one. It's the one that removes friction from what you already do hundreds of times a day.&lt;/p&gt;

&lt;p&gt;I type less. I think more. I stand up.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://klymentiev.com/blog/how-llm-can-fix-your-posture" rel="noopener noreferrer"&gt;klymentiev.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>opensource</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
