Self-hosted · BYO engine · open source

The on-call engineer that
runs on your own box.

VigilAI reads the logs you already have, finds the root cause, cites the evidence, and opens a validated fix PR — only as far as you allow. Your infra, your engine, your autonomy. No account, no agents in your code, nothing leaves the box except to the engine you pick.

npx skills add guptaprakhariitr/vigil --all

Paste into Claude Code or Cursor — it clones the repo, reads the docs, and sets VigilAI up for you.

vigil up · payments
WARN payments stripe client retry 1/3 · timeout after 2000ms
ERROR payments UnhandledRejection: cannot read 'id' of undefined at charge.ts:9
ERROR gateway 502 upstream POST /api/charge · tenant=acme,globex (×214)
SEV-2  214 errors → 1 incident  →  Cause: deploy a3f9c1 made charge() read session.customer.id; session is undefined when Stripe times out (conf 0.94).  →  Patch validated · 3 tests pass · branch vigil/fix-…

Tiered cognition

Coverage never cut by budget

Cheap work stays cheap. The deterministic core runs hot at zero tokens; the engine is one constrained, cited hop — only when a real incident is novel.

Tier 0

Deterministic core

Parse, template-mine, correlate and detect on every line — sub-millisecond, no model, fully on box.

Tier 1

Local triage policy

A per-project mute / watch / escalate table the engine authors once and refines from feedback. Runs hot, zero tokens, auditable.

Tier 2

Your frontier engine

One grounded call on a novel escalation → a cited root cause + a validated patch. Claude · Cursor · API · local.

Why it's different

A deterministic core the model can't fake

Evidence is assembled by code, not narrated by a prompt. The engine proposes; the engine validates.

Model only proposes

The deterministic engine assembles cited evidence and validates patches. The model suggests — it never decides.

Cited or it abstains

Every claim links back to the log cluster, stack frame, or diff it came from. Thin evidence → it abstains, with a reason.

Patches that pass tests

Fixes are applied in a throwaway git worktree off your deployed SHA, tested, and secret-scanned — never your working copy.

Token economy

Thousands of log lines and hundreds of recurrences collapse to one incident and a couple of engine calls. Healthy services cost nothing.

Self-correcting

Accept/reject teaches the policy; eval-gated calibration sharpens it on a schedule and can never weaken detection recall.

Do no harm

Read-only data plane, resource-capped, sandboxed validation. Its credential ceiling is a scoped git token — it never deploys.

Quickstart

Watching in three commands

A project is one system; add its containers as sources. Pick an engine, set the autonomy, let it run.

# register your system and its containers as sources
vigil project add myapp ./logs/web.log --repo .
vigil project add-source myapp ./logs/worker.log
# draft the triage policy, then watch — your engine, notify-only to start
vigil warm ./logs/web.log --project myapp
vigil up --project myapp --engine claude-cli --autonomy notify

Put your on-call on autopilot

Self-hosted · BYO engine · Apache-2.0 · no code changes, no account.

Get started