Skip to content
View scanwarp's full-sized avatar

Block or report scanwarp

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
scanwarp/README.md

ScanWarp

Your AI writes your code. ScanWarp keeps it running.

Open-source monitoring for AI-built apps. Like Datadog, but your AI coding tool can read the diagnosis and fix the issue directly — no DevOps knowledge required.

License: MIT

The Flywheel

       ┌─────────────────────────────┐
       │                             │
       ▼                             │
    Build ──→ Monitor ──→ Diagnose ──→ Fix
  1. Build — You ship with Cursor, Claude Code, or any AI coding tool
  2. Monitor — ScanWarp watches health, traces, payments, CI, and provider outages
  3. Diagnose — Claude AI explains what broke and generates a fix prompt
  4. Fix — Your AI tool reads the fix via MCP and applies it. ScanWarp verifies it landed.

The loop runs continuously. Every fix is monitored. Every new issue is diagnosed.

Get Started

npx scanwarp dev       # full flywheel locally while you build
npx scanwarp init      # same flywheel in production

Auto-detects your framework (Next.js, Remix, SvelteKit, Astro, Vue, Nuxt), hosting (Vercel, Railway, Render), and services (Stripe, Supabase, GitHub). Works with Cursor and Claude Code out of the box via MCP.

Deploy

Get a hosted ScanWarp server, then run npx scanwarp init --server <url> to connect your app.

Deploy on Railway Deploy to Render

Or self-host:

npx scanwarp server                              # SQLite, zero deps
docker compose up -d                             # Docker + Postgres

How It Works

Monitor

Source What it captures
Health checks HTTP monitoring every 60s, response time tracking
Vercel Production errors via log drain
Stripe Payment failures, expired checkouts, subscription cancellations
GitHub Failed CI workflows, Dependabot alerts, code scanning alerts
Supabase Database health, connection pool utilization
OpenTelemetry Request traces — HTTP, databases, Redis — zero config
Provider status Vercel, Stripe, Supabase, GitHub, Cloudflare, Railway, AWS, Resend

During development, scanwarp dev also detects N+1 queries, slow queries, schema drift, and re-analyzes routes on file save.

Diagnose

When ScanWarp detects an anomaly — a new error type, a traffic spike, a slow trace — Claude AI analyzes the full context and produces:

  • Root cause in plain English — no jargon, no raw stack traces
  • Bottleneck ID from OpenTelemetry traces — the exact span that failed or is slow
  • Provider awareness — "Vercel is down, this isn't your code"
  • Fix prompt for AI coding tools — specific files, specific changes, how to test

Fix

Your AI coding tool connects to ScanWarp via MCP:

MCP Tool What it provides
get_app_status Overall health: monitors, incidents, providers
get_incidents Open incidents with AI diagnosis
get_fix_prompt Ready-to-execute fix prompt
get_trace_detail Full request waterfall with span-level detail
get_recent_traces Latest OpenTelemetry traces
get_incident_detail Root cause, timeline, and fix
get_events Recent events with filtering
resolve_incident Mark incident resolved — close the loop

Your AI tool sees what broke and how to fix it — without you leaving your editor. Discord and Slack notifications keep the team in the loop.

Dashboard

Built-in web UI with retro pixel-art design:

Page What it shows
Overview Health summary, recent errors, event timeline
Stack Integration status for every connected service
Health Uptime monitors with response time graphs
Activity Real-time event stream (SSE-powered)
Issues AI-diagnosed incidents with fix prompts
Traces OpenTelemetry waterfall with bottleneck highlighting
Map Interactive service dependency graph
Alerts Alert rules management and firing history
Logs Structured log search (ClickHouse-powered)
Settings Notification channels, API keys, project config
Status Public status page with uptime bars and incident timeline

Notifications

Get alerted when things break — with the AI diagnosis included.

Channel Setup
Discord Paste your webhook URL in Settings
Slack Paste your webhook URL in Settings
Email Set RESEND_API_KEY and add recipient emails

Smart delivery: critical incidents fire immediately, warnings are delayed 5 minutes (cancelled if auto-resolved), info-level events are batched into 15-minute digests.

Security

  • Security headers — CSP, X-Frame-Options, HSTS, XSS protection, Permissions-Policy
  • Rate limiting — 120 req/min per IP with X-RateLimit-* headers
  • Input validation — Zod schemas on every API endpoint
  • Webhook verification — HMAC-SHA256 for Stripe and GitHub
  • CORS — Configurable origin whitelist via CORS_ORIGIN env var
  • Auth — JWT via Supabase (cloud mode) or no-auth (self-hosted)

Reference

CLI:

Command Description
scanwarp dev Run the full monitoring flywheel locally
scanwarp init Connect a production app to your ScanWarp server
scanwarp server Self-host the server with SQLite
scanwarp status Check monitor health and active incidents
scanwarp logs Stream events (--follow, --type, --source)
scanwarp connect Interactive integration connector
scanwarp deploy-check Pre/post-deploy health validation
scanwarp incidents View and manage incidents

Packages:

Package Description
packages/cli CLI tool (9 commands)
packages/core AI diagnoser, event correlator, shared types
packages/instrument Zero-config OpenTelemetry auto-instrumentation
packages/browser Browser error monitoring SDK
packages/mcp MCP server for Cursor and Claude Code
apps/server Fastify server: API, dashboard, monitoring engine

Environment variables:

Variable Description
ANTHROPIC_API_KEY Enables AI diagnosis
DATABASE_TYPE sqlite (default) or postgres
PORT Server port (default 3000)
STRIPE_WEBHOOK_SECRET Stripe webhook verification
GITHUB_WEBHOOK_SECRET GitHub webhook verification
SUPABASE_PROJECT_REF Supabase project reference
SUPABASE_URL Enables cloud mode (auth + billing)
RESEND_API_KEY Email notifications via Resend
CORS_ORIGIN Allowed origins (comma-separated, unset = allow all)
CLICKHOUSE_URL Optional analytics backend
SCANWARP_SERVER Server URL for instrumentation
SCANWARP_PROJECT_ID Project identifier

Docker:

# Self-hosted with SQLite (zero external deps)
docker compose -f docker-compose.selfhost.yml up -d

# Production with Postgres
docker compose up -d

Development:

pnpm install
pnpm build
pnpm test            # 60+ tests (DB integration + HTTP API)
pnpm dev             # Watch mode

Docs

Community

License

MIT

Pinned Loading

  1. scanwarp scanwarp Public

    Your AI writes your code. ScanWarp keeps it running. One command. Zero config.

    TypeScript 2