DOS Kernel - trust substrate for agent fleets (stdio via PyPI)

by anthony-chaudhary

16 stars
176 downloads
Not rated
GitHub Website

About

DOS is a small open-source kernel that doesn't believe your AI agents: it verifies what actually shipped from git evidence, arbitrates file collisions between parallel agents, and refuses with structured reasons.

Details

Author
anthony-chaudhary
GitHub stars
16
Downloads
176
Categories
Developer Tools, Other, Automation, AI

- Verifies agent claims against git history, never the agent's narration.
- Detects silent collisions between agents racing on the same files.
- Flags spinning runs and saves compute by quitting doomed tasks.
- Works on any plain git repo with zero configuration.
- One runtime dependency: PyYAML (MIT license).
- Integrates via MCP, runtime hooks, CI, and fleet frameworks.

Install with pip install dos-kernel, then run dos init --hooks auto to wire into your existing agent runtime (e.g., Claude Code, Cursor) or dos quickstart for a throwaway demo. Use dos verify <plan> <phase> to check a claim against git commits: SHIPPED (exit 0) or NOT_SHIPPED (exit 1). The verdict can gate further actions in CI, MCP hosts, or fleet frameworks.

<!-- GENERATED FILE — do not edit README.md directly.
The source of truth is docs/readme/ (one file per section, assembled
in filename order). Edit the part, then run:
python scripts/build_readme.py
tests/test_readme_assembly.py pins this file to the parts. -->

DOS — the Dispatch Operating System

> ### Catch your AI agents when they lie about what they shipped.

PyPI
Python versions
CI
verified by DOS
commit-claims
License: MIT

> 📊 See it run on real repos: the scoreboard
> scores 15 popular AI-built repos (roborev, open-interpreter, crewAI, autogen, …)
> — how much agents wrote, which ones, and whether each commit's claim is backed
> by its own diff. Score yours: dos commit-audit --sweep --workspace . BASE..HEAD.

<p align="center">
A terminal recording of the caught lie. The agent reports: Done! Shipped the login endpoint (AUTH1) and the password reset (AUTH2). git log shows one commit — AUTH1: ship the login endpoint. dos verify AUTH AUTH1 answers SHIPPED (exit 0); dos verify AUTH AUTH2 answers NOT_SHIPPED via none (exit 1) — caught. The exit code is the verdict: gate the agent's done on it and a false claim cannot land.
<br>
<em>The whole pitch in one recording: the agent claims two features shipped; git backs one.
<code>dos verify</code> answers from the commits, the lie exits <code>1</code>, and a gate on that
exit code refuses the false "done". Every line is the real CLI's verbatim output —
<a href="https://github.com/anthony-chaudhary/dos-kernel/blob/master/scripts/build_caught_lie_cast.py"><code>scripts/build_caught_lie_cast.py</code></a> re-records it whenever the output changes.</em>
</p>

<p align="center">
Two agent fleets side by side. Left, no referee: agents all report 'done!', every report is believed, and silent corruption (lies, collisions, spin) piles up into a codebase that 'sorta works' and can't be changed. Right, DOS adjudicates: dos verify reads git and the run branches to SHIPPED (exit 0, land it) or NOT_SHIPPED (exit 1, re-dispatch — caught), and that verdict steers the next step.
<br>
<em>Run a fleet of agents on one repo. The left loop just feels like progress; the right one you can steer.
The only difference is a verdict DOS reads from the real world — here, git — never the agent's word.</em>
</p>

An AI agent will tell you it finished. DOS checks the real world instead of
taking its word — and the nearest piece of the real world is your git history.
An agent says it shipped the login endpoint; did it? Run one command,
dos verify, and it answers from the artifacts the work left behind, not from
what the agent typed: a commit backs the claim → SHIPPED, exit 0; nothing
landed → NOT_SHIPPED, exit 1. The agent's story never enters into it. (Git
is just the first witness DOS reads; the file tree, the clock, a CI status, a
test environment's own state are others — anything the agent didn't author.)

dos verify AUTH AUTH1   # → SHIPPED      AUTH AUTH1 e62f74d   (exit 0)
dos verify AUTH AUTH2   # → NOT_SHIPPED  AUTH AUTH2           (exit 1)

That's the smallest version. It scales up, too: point a dozen agents at one
repo — in CI, in a fleet, racing on the same files — and DOS also tells you
which ones are stepping on each other, which one is spinning in circles, and
which claim of "done" is real. Every answer comes from the artifacts (git, the
file tree, the clock), never the narration. It works on a plain git repo with
zero config and gets smarter the more you tell it, and the only thing you ever
install is one small Python package.

> ⚡ Just add it — two commands, zero decisions. From the repo where your
> agent works:
>
>

> pip install dos-kernel
> dos init --hooks auto # finds the agent runtime(s) you already use, wires in the checks
>

>
> From then on: your agent can't tell you "done" unless the work actually
> landed, two agents can't silently overwrite each other's files, and a run
> that stalls gets flagged instead of quietly spinning. Nothing about your
> workflow changes, and you don't need to learn any of the vocabulary below to
> be covered. It prints the one config file it wrote; deleting the dos hook
> entries there undoes it. (No runtime detected? It says so and lists the
> names to pick from — it never guesses.)

<sub>v0.29.0 · 5,600+ tests · CI: Python 3.11–3.13 on Linux + a Windows 3.13
smoke run · the only runtime dependency is PyYAML · MIT.</sub>

> 🧭 Where to go next: the why & evidence (plain-words story, the 20-lines-of-bash answer, what's proven),
> wire it into your stack (MCP · hooks · install), the
> syscall + CLI reference, or, reading this as an AI agent?, AGENTS.md — build/test/check in three lines. The full map is the router just below.

> 🔤 Five words the rest of this page leans on. A plan is a named goal
> (AUTH); a phase is one shippable step of it (AUTH1); a lane is the
> slice of the file tree one agent may touch; the oracle is the part of DOS
> that reads the evidence and rules; a stamp is the mark a shipped phase
> leaves in a commit subject (AUTH1: …) — the thing the oracle greps for.
> That's the whole vocabulary.

<a id="who-this-is-for"></a>
<a id="the-plain-words-version"></a>

In plain words

A coding agent does work, then tells you how it went. Usually the story is true;
sometimes it's the cheerful "all work completed!" from a worker that shipped
nothing. With one agent you catch that yourself by re-reading its output — a real
tax you already pay. Run twenty at once and that tax stops being payable: nobody
reads everything, each worker grades its own homework, and the unchecked problems
pile up quietly until the codebase sorta works and nobody can safely change it.
DOS is the referee that never reads the story — it reads what happened (the
commit, the file, the clock) and hands you a verdict no narration can move. It
costs about an afternoon, has one runtime dependency, and stays in its lane: it
tells you what happened, never whether the code is good — quality stays with
your tests and reviews. (The full plain-words version.)

Measured, not asserted

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.