<?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: Davron Yuldashev</title>
    <description>The latest articles on DEV Community by Davron Yuldashev (@davron_yuldashev_0a91802f).</description>
    <link>https://dev.to/davron_yuldashev_0a91802f</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%2F3823452%2F5396bf1b-c0bf-4cf4-ad48-4a933efd3e8a.jpg</url>
      <title>DEV Community: Davron Yuldashev</title>
      <link>https://dev.to/davron_yuldashev_0a91802f</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/davron_yuldashev_0a91802f"/>
    <language>en</language>
    <item>
      <title>Four agents, 77 projects, 90 minutes: the multi-agent Claude Code pattern I run in production</title>
      <dc:creator>Davron Yuldashev</dc:creator>
      <pubDate>Fri, 29 May 2026 12:03:02 +0000</pubDate>
      <link>https://dev.to/davron_yuldashev_0a91802f/four-agents-77-projects-90-minutes-the-multi-agent-claude-code-pattern-i-run-in-production-9pc</link>
      <guid>https://dev.to/davron_yuldashev_0a91802f/four-agents-77-projects-90-minutes-the-multi-agent-claude-code-pattern-i-run-in-production-9pc</guid>
      <description>&lt;p&gt;Last Tuesday I sat down to audit every dev project I'd written over the past few years. 77 of them. Old courier-logistics monorepos, abandoned starters, a clinical reasoning engine, half a dozen Telegram bots, a SaaS framework I keep reusing, two startups, a Rust process manager. Different stacks, different ages, different employers, different states of git hygiene.&lt;/p&gt;

&lt;p&gt;I gave the job to four Claude Code agents working in parallel. They were done in about 90 minutes.&lt;/p&gt;

&lt;p&gt;Below is the pattern they used, and why a version of it now runs inside a 2,200-commit production codebase at my day job.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why one agent isn't enough
&lt;/h2&gt;

&lt;p&gt;Single-agent Claude Code is fine until you hit one of three walls.&lt;/p&gt;

&lt;p&gt;The context window starts choking on a big codebase. The work is wider than it is deep, and serial reading wastes wall-clock. You want the orchestrator to keep judgment, not get buried in file diffs.&lt;/p&gt;

&lt;p&gt;A swarm fixes all three. Each agent gets a slice. The lead keeps the map.&lt;/p&gt;

&lt;p&gt;The hard part isn't spawning agents. Spawning is one tool call. The hard part is making sure four of them don't trip over each other.&lt;/p&gt;

&lt;h2&gt;
  
  
  The pattern
&lt;/h2&gt;

&lt;p&gt;Claude Code ships with two primitives that, combined, give you a clean swarm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;TeamCreate&lt;/code&gt; + named teammates.&lt;/strong&gt; Each agent has a stable name (&lt;code&gt;analyst1&lt;/code&gt;, &lt;code&gt;designer&lt;/code&gt;, &lt;code&gt;metrics&lt;/code&gt;) and joins a team with a shared task list.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;SendMessage&lt;/code&gt; to coordinate.&lt;/strong&gt; The lead addresses any teammate by name. Teammates idle between turns and wake when messaged.&lt;/p&gt;

&lt;p&gt;Wire those to a &lt;code&gt;TaskList&lt;/code&gt; and you have a coordination plane. Each task carries an &lt;code&gt;owner&lt;/code&gt; field. Setting &lt;code&gt;owner = analyst3&lt;/code&gt; is your atomic lock. Until that field changes, the task belongs to that agent.&lt;/p&gt;

&lt;p&gt;For the audit I made 77 tasks, one per project. I spawned four &lt;code&gt;analyst&lt;/code&gt; teammates with the same prompt template: read the project at code level (not commit messages), parse Claude Code session transcripts if any exist, write a per-project dossier. Then let them loose.&lt;/p&gt;

&lt;h2&gt;
  
  
  The race condition I shipped on day one
&lt;/h2&gt;

&lt;p&gt;First attempt: each teammate, on idle, runs &lt;code&gt;TaskList&lt;/code&gt;, finds the lowest-ID task with no owner, claims it, does it, marks it complete, repeats.&lt;/p&gt;

&lt;p&gt;That worked for the first ten minutes. Then two analysts grabbed the same task within the same second. The &lt;code&gt;TaskUpdate&lt;/code&gt; that set the owner went through twice. Both did the work. The second one overwrote the first dossier with a slightly different version of the same content.&lt;/p&gt;

&lt;p&gt;Classic optimistic-concurrency mistake. The fix is boring and reliable: stop racing for low-ID tasks. The lead pre-assigns owners on the entire remaining range before spinning the swarm back up.&lt;/p&gt;

&lt;p&gt;I partitioned the remaining work into four contiguous blocks (&lt;code&gt;#33–43&lt;/code&gt;, &lt;code&gt;#46–56&lt;/code&gt;, &lt;code&gt;#57–67&lt;/code&gt;, &lt;code&gt;#68–77&lt;/code&gt;) and set every owner in advance. Now when any agent reads the list, every task is already claimed by someone. Nothing left to race for. Each agent processes its own block in ID order and reports back when the block is empty.&lt;/p&gt;

&lt;p&gt;Zero collisions for the rest of the run.&lt;/p&gt;

&lt;h2&gt;
  
  
  What came out
&lt;/h2&gt;

&lt;p&gt;Sixty dossier files. Twenty-two tagged &lt;code&gt;showcase&lt;/code&gt;, thirty-eight &lt;code&gt;supporting&lt;/code&gt;, seventeen &lt;code&gt;skip&lt;/code&gt;. The skips were honest: client work where my commit share was under 10%, abandoned scaffolds, empty stubs. Bad data is worse than no data when the goal is a personal-brand audit.&lt;/p&gt;

&lt;p&gt;The interesting findings weren't in the headline projects. They were in the cross-cuts. My boilerplate had quietly become the foundation under four products. The same codebase showed up in five different clients. On one healthcare CRM my commits totalled 962 out of 2,208 (top contributor), even though the surface-level metadata I'd been relying on said only about 700. Manual git history is lossy. A swarm with shared output catches the drift.&lt;/p&gt;

&lt;h2&gt;
  
  
  The production version
&lt;/h2&gt;

&lt;p&gt;This isn't a hobby pattern. The same multi-agent Claude Code workflow runs in our healthcare CRM at the day job, on a 2,200-commit codebase. The &lt;code&gt;CLAUDE.md&lt;/code&gt; there defines four custom subagents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;django-backend-specialist&lt;/code&gt; — owns models, views, URLs.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;advertiser-frontend-developer&lt;/code&gt; — owns the advertiser dashboard.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;patient-frontend-specialist&lt;/code&gt; — owns the patient portal.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;linting-specialist&lt;/code&gt; — runs last, owns the diff.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There's an explicit inter-agent contract. When the backend changes a view, it reports the new endpoint, the URL, the response shape. The frontends know to ask for that data before they start. Linting runs at the end of the chain, not the middle. The orchestrator (me) holds the architecture. The agents hold the file diffs.&lt;/p&gt;

&lt;p&gt;On one of the products I ship with this pattern, an internal-tools rebuild, about 29% of the commits are AI-authored under my direction. The other 71% are mine. The split is visible in &lt;code&gt;git shortlog&lt;/code&gt;. Nothing to hide, nothing to inflate.&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest part
&lt;/h2&gt;

&lt;p&gt;This doesn't replace senior engineering judgment. The orchestrator still has to know what good looks like. When an analyst returns a weak dossier, you have to recognize it and ask for a redo. Two agents disagreeing? You resolve it.&lt;/p&gt;

&lt;p&gt;What it does give you is leverage. One engineer with a swarm covers staff-level surface area. The bottleneck shifts from typing speed to judgment quality, which is the right bottleneck to have.&lt;/p&gt;

&lt;p&gt;If you want to see what the swarm actually produced, the 60 dossiers live at &lt;a href="https://davr.dev/projects" rel="noopener noreferrer"&gt;davr.dev/projects&lt;/a&gt;. Each one is a code-level audit, not marketing copy.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claudecode</category>
      <category>productivity</category>
      <category>devtools</category>
    </item>
    <item>
      <title>I Built 6 Free Browser-Based Tools — 50+ Utilities, No Signup, No Tracking</title>
      <dc:creator>Davron Yuldashev</dc:creator>
      <pubDate>Tue, 07 Apr 2026 05:00:06 +0000</pubDate>
      <link>https://dev.to/davron_yuldashev_0a91802f/i-built-6-free-browser-based-tools-50-utilities-no-signup-no-tracking-5bc2</link>
      <guid>https://dev.to/davron_yuldashev_0a91802f/i-built-6-free-browser-based-tools-50-utilities-no-signup-no-tracking-5bc2</guid>
      <description>&lt;p&gt;&lt;em&gt;All tools are free. Processing happens in your browser or on a private server. No accounts, no ads, no tracking.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Over the past 6 weeks I built a portfolio of free online utility tools at &lt;strong&gt;&lt;a href="https://davrapps.dev" rel="noopener noreferrer"&gt;davrapps.dev&lt;/a&gt;&lt;/strong&gt;. Here's what shipped and how it's built.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Apps
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🛠️ &lt;a href="https://devtools.davrapps.dev" rel="noopener noreferrer"&gt;DevTools&lt;/a&gt; — 28 Developer Utilities
&lt;/h3&gt;

&lt;p&gt;Every tool runs &lt;strong&gt;100% client-side&lt;/strong&gt; — nothing is sent to any server. Check the Network tab if you don't believe me.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Text &amp;amp; Data&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JSON Formatter &amp;amp; Validator&lt;/li&gt;
&lt;li&gt;YAML ↔ JSON Converter&lt;/li&gt;
&lt;li&gt;TOML ↔ JSON Converter&lt;/li&gt;
&lt;li&gt;Diff Checker — compare two texts side-by-side&lt;/li&gt;
&lt;li&gt;Text Statistics — word count, reading time, character frequency&lt;/li&gt;
&lt;li&gt;String Case Converter — camelCase, snake_case, SCREAMING_SNAKE, kebab-case&lt;/li&gt;
&lt;li&gt;Lorem Ipsum Generator&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Encoding &amp;amp; Crypto&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Base64 Encode/Decode&lt;/li&gt;
&lt;li&gt;URL Encoder/Decoder&lt;/li&gt;
&lt;li&gt;HTML Entity Encoder/Decoder&lt;/li&gt;
&lt;li&gt;Hash Generator — MD5, SHA-1, SHA-256, SHA-512 (Web Crypto API)&lt;/li&gt;
&lt;li&gt;JWT Decoder — inspect header + payload without a secret&lt;/li&gt;
&lt;li&gt;Password Generator — cryptographically secure&lt;/li&gt;
&lt;li&gt;Image to Base64&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Dev Helpers&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Regex Tester — real-time matching with group highlighting&lt;/li&gt;
&lt;li&gt;UUID Generator — bulk v4 UUIDs&lt;/li&gt;
&lt;li&gt;Unix Timestamp Converter — epoch ↔ human-readable with timezone&lt;/li&gt;
&lt;li&gt;Number Base Converter — binary, octal, decimal, hex&lt;/li&gt;
&lt;li&gt;Cron Expression Parser — plain English explanations&lt;/li&gt;
&lt;li&gt;SQL Formatter&lt;/li&gt;
&lt;li&gt;CSS Minifier&lt;/li&gt;
&lt;li&gt;Markdown Preview&lt;/li&gt;
&lt;li&gt;Color Converter — HEX ↔ RGB ↔ HSL&lt;/li&gt;
&lt;li&gt;CSS Gradient Generator — linear/radial/conic, CSS + Tailwind output&lt;/li&gt;
&lt;li&gt;Tailwind CSS Color Explorer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://devtools.davrapps.dev" rel="noopener noreferrer"&gt;devtools.davrapps.dev&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🖼️ &lt;a href="https://imgtools.davrapps.dev" rel="noopener noreferrer"&gt;ImgTools&lt;/a&gt; — 7 Image Utilities
&lt;/h3&gt;

&lt;p&gt;Server-side processing with Sharp/libvips on a private VPS — files are never stored.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compress — MozJPEG, up to 80% size reduction&lt;/li&gt;
&lt;li&gt;Resize — custom dimensions + social media presets&lt;/li&gt;
&lt;li&gt;Crop &amp;amp; Rotate&lt;/li&gt;
&lt;li&gt;Format Convert — JPEG, PNG, WebP, AVIF, GIF, TIFF&lt;/li&gt;
&lt;li&gt;Watermark — text or image&lt;/li&gt;
&lt;li&gt;Background Removal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://imgtools.davrapps.dev" rel="noopener noreferrer"&gt;imgtools.davrapps.dev&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  📄 &lt;a href="https://pdfkit.davrapps.dev" rel="noopener noreferrer"&gt;PDFKit&lt;/a&gt; — 9 PDF Tools
&lt;/h3&gt;

&lt;p&gt;No file size limits. No watermarks on output. No account needed.&lt;/p&gt;

&lt;p&gt;Merge, Split, Compress, Rotate, PDF ↔ Image, Password Protect, Watermark, Add Page Numbers.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://pdfkit.davrapps.dev" rel="noopener noreferrer"&gt;pdfkit.davrapps.dev&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🔲 &lt;a href="https://qrkit.davrapps.dev" rel="noopener noreferrer"&gt;QRKit&lt;/a&gt; — 8 QR Code Tools
&lt;/h3&gt;

&lt;p&gt;Generate (with logo + custom colors), Scan (file or camera), WiFi QR, vCard QR, Batch Generator, Decode, Color Picker.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://qrkit.davrapps.dev" rel="noopener noreferrer"&gt;qrkit.davrapps.dev&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  📸 &lt;a href="https://picefy.davrapps.dev" rel="noopener noreferrer"&gt;Picefy&lt;/a&gt; — Screenshot Beautifier
&lt;/h3&gt;

&lt;p&gt;Turn plain screenshots into polished visuals: gradient backgrounds, rounded corners, drop shadow, device frames. Export as PNG.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://picefy.davrapps.dev" rel="noopener noreferrer"&gt;picefy.davrapps.dev&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  📦 &lt;a href="https://shipkit.davrapps.dev" rel="noopener noreferrer"&gt;ShipKit&lt;/a&gt; — Next.js + Bun SaaS Boilerplate ($49)
&lt;/h3&gt;

&lt;p&gt;Full-stack starter: Next.js 16, Bun, Elysia.js, Better Auth, Polar.sh payments, PostgreSQL + Drizzle ORM, shadcn/ui, i18n, dark mode.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://shipkit.davrapps.dev" rel="noopener noreferrer"&gt;shipkit.davrapps.dev&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Monetization
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;App&lt;/th&gt;
&lt;th&gt;Free limit&lt;/th&gt;
&lt;th&gt;Pro&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DevTools&lt;/td&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ImgTools&lt;/td&gt;
&lt;td&gt;5 ops/day&lt;/td&gt;
&lt;td&gt;$3/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PDFKit&lt;/td&gt;
&lt;td&gt;5 ops/day&lt;/td&gt;
&lt;td&gt;$5/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QRKit&lt;/td&gt;
&lt;td&gt;5 ops/day&lt;/td&gt;
&lt;td&gt;Coming soon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Picefy&lt;/td&gt;
&lt;td&gt;5 exports/day&lt;/td&gt;
&lt;td&gt;$5/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ShipKit&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;$49 one-time&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Payments via &lt;strong&gt;Polar.sh&lt;/strong&gt; (Stripe under the hood, but with a much better OSS-friendly DX).&lt;/p&gt;




&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;p&gt;All apps share the same foundation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js 16&lt;/strong&gt; (App Router, SSG for all tool pages)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bun&lt;/strong&gt; runtime + package manager&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Elysia.js&lt;/strong&gt; API layer (Bun-native, ~3x faster than Express in benchmarks)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Better Auth&lt;/strong&gt; — email/password + OAuth, sessions in PostgreSQL&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;shadcn/ui&lt;/strong&gt; + &lt;strong&gt;Tailwind CSS&lt;/strong&gt; — every app has dark/light mode&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PostgreSQL&lt;/strong&gt; + &lt;strong&gt;Drizzle ORM&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;i18n&lt;/strong&gt; via next-intl (EN/RU/UZ)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Deployed on a &lt;strong&gt;Hetzner CAX21 ARM&lt;/strong&gt; (~$8/mo total for all 6 apps). Each app is a systemd service behind nginx, its own port pair.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Decisions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Client-side by default.&lt;/strong&gt; For anything that doesn't need a server (formatters, converters, hash generators), everything stays in the browser. Zero upload risk, zero server cost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SEO-first architecture.&lt;/strong&gt; Each tool has its own URL, unique meta tags, FAQ with JSON-LD structured data. &lt;code&gt;devtools.davrapps.dev/en/json-formatter&lt;/code&gt; and &lt;code&gt;devtools.davrapps.dev/en/uuid-generator&lt;/code&gt; each target different search queries rather than competing as a single page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One server, many apps.&lt;/strong&gt; Rather than pay per-app VPS costs, everything runs on one ARM machine. Total infra cost for 6 apps + 14 services: ~$8/mo.&lt;/p&gt;




&lt;h2&gt;
  
  
  Current Status
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;6 apps live, 50+ total tools&lt;/li&gt;
&lt;li&gt;MRR: $5 (early days)&lt;/li&gt;
&lt;li&gt;Backlinks: 2 merged awesome-list PRs, 7 more open&lt;/li&gt;
&lt;li&gt;Starting to appear in Brave/Bing — Google indexation in progress&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;What tools do you wish existed? Drop a comment — I might build it next.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I built a process manager with built-in crash detection and AI auto-fix (PM2 alternative)</title>
      <dc:creator>Davron Yuldashev</dc:creator>
      <pubDate>Sat, 14 Mar 2026 10:42:06 +0000</pubDate>
      <link>https://dev.to/davron_yuldashev_0a91802f/i-built-a-process-manager-with-built-in-crash-detection-and-ai-auto-fix-pm2-alternative-ol4</link>
      <guid>https://dev.to/davron_yuldashev_0a91802f/i-built-a-process-manager-with-built-in-crash-detection-and-ai-auto-fix-pm2-alternative-ol4</guid>
      <description>&lt;p&gt;You deploy a service, it crashes at 3 AM. You get a Sentry alert, SSH in, dig through logs, try to figure out what happened. Or you pay $26/month for Sentry plus integrate the SDK into every project.&lt;/p&gt;

&lt;p&gt;I wanted crash detection and recovery built directly into the process manager — no extra services, no SDK, no dashboards. So I built &lt;a href="https://github.com/Dave93/velos" rel="noopener noreferrer"&gt;Velos&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When a process crashes or throws an unhandled error, Velos detects it, runs AI analysis on the logs and stack trace, and sends a Telegram message with two buttons: &lt;strong&gt;Fix&lt;/strong&gt; and &lt;strong&gt;Ignore&lt;/strong&gt;. Tap Fix — an agent reads the logs, inspects the code, diffs recent changes, proposes a fix, and reports back. All without waking up your laptop.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the crash flow works
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Process crashes (or stderr matches panic/traceback/FATAL pattern)
  → Velos daemon detects it
  → AI analysis runs (Anthropic or any OpenAI-compatible API)
  → Telegram notification with [Fix] [Ignore] buttons
  → You tap Fix
  → Agentic loop starts: reads files, inspects git diff, runs commands
  → Result sent back to Telegram
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nothing happens without your approval. The agent has tools to read/edit files, run commands, and inspect git history — but it only acts when you tap Fix.&lt;/p&gt;

&lt;p&gt;This also works for runtime errors &lt;em&gt;before&lt;/em&gt; a crash. Velos watches stderr for panic/traceback/FATAL/ERROR patterns and fires an alert without waiting for the process to die. Closer to what Sentry does — but zero SDK, zero extra service.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Zig for the daemon?
&lt;/h2&gt;

&lt;p&gt;Process management is fundamentally a systems problem: fork/exec, Unix sockets, signal handling, CPU/RAM monitoring via syscalls. Zig gives full control with zero runtime overhead — no hidden allocations, no GC, comptime metaprogramming for tight control over the binary.&lt;/p&gt;

&lt;p&gt;The result: &lt;strong&gt;~3 MB RAM idle&lt;/strong&gt;, ~65 KB per managed process. PM2 sits at ~60 MB baseline because of V8.&lt;/p&gt;

&lt;p&gt;Architecture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Zig daemon (fork/exec, IPC, monitoring)
    ↓  C ABI FFI
Rust shell (CLI, REST API, MCP server, log engine, AI)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Zig core compiles to a static library (&lt;code&gt;libvelos_core.a&lt;/code&gt;), linked into the Rust binary via C ABI FFI. Single binary, zero runtime dependencies.&lt;/p&gt;

&lt;p&gt;IPC uses a binary protocol — 7-byte header (magic &lt;code&gt;0xVE10&lt;/code&gt;) + MessagePack payload over a Unix socket.&lt;/p&gt;

&lt;h2&gt;
  
  
  Smart Log Engine
&lt;/h2&gt;

&lt;p&gt;Pattern clustering, error rate tracking, anomaly detection — runs fully local, zero LLM cost.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;velos logs myapp &lt;span class="nt"&gt;--summary&lt;/span&gt;
&lt;span class="c"&gt;# → "47 errors in last 10m, 3 patterns detected:&lt;/span&gt;
&lt;span class="c"&gt;#    [1] DB connection timeout (×31)&lt;/span&gt;
&lt;span class="c"&gt;#    [2] Rate limit exceeded (×12)&lt;/span&gt;
&lt;span class="c"&gt;#    [3] File not found (×4)"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of scrolling through thousands of raw log lines, you get a digest.&lt;/p&gt;

&lt;h2&gt;
  
  
  MCP server (for local AI workflows)
&lt;/h2&gt;

&lt;p&gt;Velos also ships with a native MCP server — 13 tools for Claude Desktop or Claude Code to manage your local processes directly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"velos"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"velos"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"start"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tools include: &lt;code&gt;start_process&lt;/code&gt;, &lt;code&gt;stop_process&lt;/code&gt;, &lt;code&gt;restart_process&lt;/code&gt;, &lt;code&gt;get_logs&lt;/code&gt;, &lt;code&gt;health_check&lt;/code&gt;, &lt;code&gt;get_metrics&lt;/code&gt;, &lt;code&gt;search_logs&lt;/code&gt;, &lt;code&gt;analyze_crash&lt;/code&gt;, and more. Useful for local dev environments where your AI agent is already running on the same machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://releases.velospm.dev/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or Homebrew:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;Dave93/tap/velos
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Current state
&lt;/h2&gt;

&lt;p&gt;Velos is at v0.1.14, production-ready on macOS and Linux. Windows support is on the roadmap.&lt;/p&gt;

&lt;p&gt;What's coming next:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;XDG Base Directory compliance (tracking: &lt;a href="https://github.com/Dave93/velos/issues/10" rel="noopener noreferrer"&gt;#10&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Plugin system&lt;/li&gt;
&lt;li&gt;Web dashboard&lt;/li&gt;
&lt;li&gt;Benchmark suite vs PM2/supervisord/systemd&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/Dave93/velos" rel="noopener noreferrer"&gt;Dave93/velos&lt;/a&gt;&lt;br&gt;
Docs: &lt;a href="https://velospm.dev" rel="noopener noreferrer"&gt;velospm.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy to answer questions about the crash detection system, the Zig/Rust architecture, or the design decisions. What would you have done differently?&lt;/p&gt;

</description>
      <category>rust</category>
      <category>zig</category>
      <category>devops</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
