The on-call bot that asks before it fixes.

Bleep watches the containers on your Docker hosts. When one breaks, it finds out why and proposes a fix. Nothing changes until you say yes, and nothing counts as fixed until Bleep has checked.

The replay is a real incident from Bleep's tests, shortened. Bleep waits for your yes, as it does on a real host.

Host demo

Watching

  • shop-proxyhealthy
  • shop-webhealthy
  • shop-dbhealthy
  • shop-workerhealthy

All four containers are fine. I check again every 15 seconds.

    One incident, start to end

    The same five steps every time. You are in the middle of them.

    1. 1

      Notices

      It reads each host's Docker events over SSH every 15 seconds and checks your URLs from outside. A failure that holds opens an incident.

    2. 2

      Investigates

      It reads logs, events and the host the way you would, with read-only tools, and names the cause.

    3. 3

      Asks

      It proposes a plan of named steps, like start shop-db, and waits. You say yes or no on the dashboard or in Telegram.

    4. 4

      Fixes

      Only the steps you approved run, and only from an allowlist of Docker actions.

    5. 5

      Checks

      It calls nothing fixed until the containers are healthy and the URLs answer again. Then it writes a short report.

    What Bleep never does

    These rules live in the code, and the tests prove them.

    • Changes a host without your yes

      Every write waits for an explicit approval of that plan. Nothing is approved automatically.

    • Runs a shell it was not given

      Commands come from an allowlist. There is no generic shell with write access.

    • Takes orders from a log line

      Tool output is capped, redacted and marked as untrusted, so text in a log cannot steer it.

    • Shows its keys to the model

      SSH keys and tokens never reach the model, and never sit in the database.

    • Touches itself

      Bleep's own containers never open an incident and are never the target of a fix.

    • Says fixed without checking

      A fix counts only once the service is healthy and its URL answers.

    Measured, not promised

    Every number comes from a dated report in the repository.

    • 23 of 27

      root causes right on the demo shop's faults, three runs each with a hosted model, in about a minute and for $0.0028 a run.

      Read the report
    • 20 of 20

      prompt-injection attacks through logs, replies, docs, commits and memory failed to steer Bleep or leak a secret.

      Read the report
    • 7 of 8

      faults right with a local 20B model served by LM Studio, at $0 a run.

      Read the report

    Watch one real run

    65 seconds of a real incident on the demo shop, from the broken container to the report.

    Built with

    • Python
    • FastAPI
    • LangGraph
    • SQLite
    • Next.js 16
    • Docker over SSH
    • Telegram
    • Hosted or local models