OPEN-SOURCE SOFTWARE MAINTENANCE

Good software
stays up.

Your next incident deserves a coworker.
One that finds the bug, writes the fix, and brings the evidence.

Uptime Harness connects error reports to an AI repair loop: reproduce, repair, test, open a pull request, and verify the deployed result. Every step stays on one ticket.

MIT licensedSelf-hostableYour repos. Your infrastructure.
UPTIME CONTROL ROOMTHE WORKFLOW
⌁
FROM INCIDENT TO EVIDENCE

An error is a starting point.

  1. 01
    Catch the signal

    Sentry sends the error and its stack trace.

    ↘
  2. 02
    Find a fix that holds

    Codex works in isolation. Tests keep it honest.

    ↘
  3. 03
    Ship with receipts

    A pull request, a verified release, a clear timeline.

    ↗
Repaired means verified. A merge alone isn’t enough.
↻
A better next attempt.

Use failed checks and trace findings to guide the retry.

RUN IT YOURSELF

Your machine. The whole repair stack.

Docker runs the dashboard, Service Desk and repair controller. Bring your own MongoDB Atlas, OpenAI, GitHub and Sentry accounts.

01 / GET THE CODE

Keep both repos side by side.

Install Git, Docker with Compose v2, and Make. Docker supplies the application runtimes.

Terminal
git clone https://github.com/aemal/uptime-harness.git
git clone https://github.com/aemal/uptime-harness-service-desk-demo.git
cd uptime-harness
cp .env.example .env.local

For your own repairs, fork the Service Desk and clone your fork as the sibling folder.

02 / CONNECT YOUR ACCOUNTS

Fill in .env.local.

Add your Atlas connection, OpenAI key, GitHub token and Sentry DSN. Generate the two local secrets below.

Generate secrets
# Paste into OWNER_TOKEN
openssl rand -hex 24
# Paste into SETTINGS_ENCRYPTION_KEY
openssl rand -hex 32

Set REPAIR_REPOSITORY to your fork and choose a CODEX_MODEL available to your account. Keep the environment file private.

03 / START THE STACK

One command brings it up.

Then create the Atlas indexes and telemetry collection, and check the repair worker's configuration.

From uptime-harness/
make up
make setup-atlas
make doctor

Unlock with OWNER_TOKEN. Atlas stays cloud-hosted; a healthy container does not prove provider connectivity.

Finish the end-to-end setup
  1. Atlas: create a database user, allow this machine's network path, and wait for Search indexes to become ready. The two applications use separate databases on your cluster.
  2. GitHub: enable Actions on your Service Desk fork. Give the controller a token with repository write, PR and check access. Review Project settings and opt into automatic merging for your demo repository.
  3. Sentry: set SENTRY_DSN before starting. With Cloudflare's CLI installed, run cloudflared tunnel --url http://127.0.0.1:3028 in another terminal. Save its HTTPS URL in Project settings, configure https://YOUR-TUNNEL/api/webhooks/sentry on a Sentry internal integration, save the signing secret in Uptime, and add the integration to an issue-alert rule. Keep the tunnel running.
  4. Deployment: local containers do not redeploy on a GitHub merge. Pull your demo fork and rebuild service-desk after a repair. For automatic deployment and verification, connect the fork to Vercel and set DEMO_PRODUCTION_URL to your production URL. Leave it blank until that deployment is configured.
  5. Optional features: add Raindrop tracing, an ElevenLabs agent, Twilio phone calling, and Voyage embeddings using the repository guides. Run make up again after environment changes. The demo reset button is currently restricted to the maintainer's demo repo; forks need an explicit allowlist change.

The trusted repair controller mounts the Docker socket to launch isolated workers. Run it on a machine you control.

Full setup, credentials and deployment guide ↗
BUILT WITH TOOLS YOU ALREADY KNOW
MongoDB AtlasOpenAI CodexSentryGitHubRaindropElevenLabs
THE REPAIR LOOP

Less chasing.
More getting it fixed.

The harness owns the handoffs. You get a durable repair board, clear evidence, and control over what ships.

Uptime Harness: from Sentry incident to verified deployment Sentry sends a signed webhook to Uptime Harness. The controller gives Codex an isolated Docker workspace and protected tests. Passing checks gate a GitHub pull request and Vercel deployment verification. Raindrop records repair traces and supplies signals for retry guidance. Samantha uses ElevenLabs to discuss the ticket evidence in web calls, with optional Twilio phone calls. MongoDB Atlas holds durable state, search, change streams, GridFS evidence and time-series telemetry. Vector Search with Voyage AI is an optional repair-memory integration. ONE INCIDENT. ONE TRACEABLE REPAIR. 01 / DETECTSentryError + stack traceSigned webhook 02 / ORCHESTRATEUptime HarnessKanban · leases · checkpointsOne ticket holds the full timeline 03 / REPAIROpenAI CodexReproduce → fix → protected testsIsolated Docker workspace 04 / SHIPGitHub → VercelPR · CI · gated auto-mergeVerify the exact deployed commit Live ticket contextTraces ↔ retry guidance VOICE / ELEVENLABSTalk to SamanthaA coworker with the latest evidenceWeb calls · optional Twilio phone Durable state+ repair evidence OBSERVE / IMPROVERaindropTrace commands and test outcomesUse failure signals on the next attempt THE RULE FOR DONEA passing test.A verified release.Evidence on the ticket. MongoDB AtlasTHE MEMORY & EVIDENCE LAYER DatabaseTickets · comments · checkpoints Atlas SearchFind incidents and repair history Change streamsPush board updates · polling fallback GridFSBaseline, candidate and deployment logs Time-series collectionsRepair stages and attempt telemetry Vector Search + Voyage AIOptional · retrieve similar verified repairs

Protected checks stay outside the agent’s editable workspace.Swipe the diagram to explore →

Implementation notes

Atlas database, Search, GridFS and time-series telemetry were exercised in the live repair. Change streams power live updates with a polling fallback. Vector Search and Voyage AI are implemented as optional repair memory and were not exercised in that run. Atlas Agent Engine is a future integration. Raindrop diagnostics can guide a failed attempt’s retry; the recorded live repair passed on its first attempt.

Read the verification record ↗
01 / DETECT

Turn an alert into work.

A signed Sentry webhook creates a Kanban ticket with the issue, error details, and source links. MongoDB keeps the history.

02 / REPAIR

Give the agent a boundary.

Codex reproduces the failure and works in an isolated checkout. Protected regression checks sit outside the code it can change.

03 / VERIFY

Close the loop.

Passing checks gate the pull request. Optional auto-merge is followed by a deployment check before the incident is marked resolved.

↻

Learn from the failed attempt.

Raindrop traces and test failures inform the next repair attempt. Verified repair memory helps later investigations; the tests stay protected.

◉

Ask Samantha what’s happening.

The ElevenLabs incident coworker can explain the latest evidence in a web call. Optional Twilio calling keeps the person on duty in the loop.

ONE MINUTE. THE WHOLE LOOP.

See a broken workflow
get its second chance.

Watch an AI service desk hit a real tool error, follow the repair through GitHub, then retry the same request after deployment.

More builds on AgentGeeks ↗
The one-minute demo is coming soon.In the meantime, explore the live examples below.Open the examples ↗
SMALL APPS. REAL REPAIR STORIES.

Try the examples.

A growing collection of repair targets. Separate from the harness, so each fix has its own pull request and deployment.

✦AGENTIC WORKFLOW

AI Service Desk

Describe an IT issue. An AI coworker assesses the impact, recommends next steps, and calls a tool to create a support ticket.

The repair story: a valid draft with missing optional diagnostic notes breaks ticket creation. Fix the tool, then retry the saved draft.
Open AI Service Desk ↗
▤THE ORIGINAL EXAMPLE

Contact manager

A simple contact form that started it all. Add a contact, leave optional notes blank, and see the saved result.

The repair story: the original null-notes defect, preserved with its verified fix. Browse the first repair’s pull request in the source repo.
Open contact manager ↗

Use sample information in these shared demo apps. View all examples ↗

YOURS TO BUILD ON

Open source.
From the first line.

Read the code, run the stack, adapt the repair loop to your team. All three repositories are MIT licensed.

⌁

Run the harness on a Docker-capable machine. The repair worker needs a persistent process. The example apps and this landing page can run on Vercel. Bring your own provider accounts and follow the repository setup guides.

Start here ↗
BUILT IN GOOD COMPANY

Thank you for
making this happen.

Built at the Harness Engineering & Model Wrangling Hackathon at SHACK15, San Francisco. Thank you to the sponsors, organizers and everyone who shared their time and ideas.

And to Cerebral Valley: thank you for bringing the builders together. To the mentors, judges and SHACK15 team, thank you for the space, feedback and energy.

The hackathon ↗
ALSO PART OF THE BUILD
OpenAISentryGitHubVercelDockerTwilio phone calls

OpenAI generates the repair and powers the demo’s triage. Sentry reports errors; GitHub hosts code and checks; Vercel deploys the examples; Docker isolates the worker.

SAN FRANCISCO · OCTOBER 11, 2026

A few moments
between the code.

A handful of snapshots from a day of building, exchanging ideas and watching the bay.

Aemal at SHACK15 with participants working behind him
A day at SHACK15
The Bay Bridge seen through the venue windows
A view worth a pause
Aemal among hackathon participants at their laptops
A room full of builders
Aemal talking about the project during a filmed conversation
Sharing the build
People gathered on two levels of the Ferry Building venue
Around the Ferry Building
Aemal Sayer, builder of Uptime Harness
Aemal Sayer
BUILT BY AEMAL SAYER

AI workshops shaped
around your team.

I create AI personas tailored to your team’s roles and workflows, then share the knowledge through a curated, hands-on AI workshop. Your team learns how to use and adapt them independently.

For engineering, product, management, marketing, revenue, growth, outreach, and GTM teams. Each workshop is shaped around your goals, with practical lessons in context engineering, Agent Harnessing, and Harness Engineering.