{"id":47678724,"url":"https://github.com/orbita-pos/inariwatch","last_synced_at":"2026-04-02T13:45:04.822Z","repository":{"id":346251919,"uuid":"1183796541","full_name":"orbita-pos/inariwatch","owner":"orbita-pos","description":"Open source AI monitoring that writes the fix while you sleep","archived":false,"fork":false,"pushed_at":"2026-04-01T05:10:10.000Z","size":51286,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-01T05:17:54.915Z","etag":null,"topics":["ai","alerting","devops","incident-management","monitoring","nextjs","open-source","rust","self-hosted","typescript"],"latest_commit_sha":null,"homepage":"https://inariwatch.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/orbita-pos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-17T00:44:01.000Z","updated_at":"2026-04-01T05:10:14.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/orbita-pos/inariwatch","commit_stats":null,"previous_names":["orbita-pos/inariwatch"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/orbita-pos/inariwatch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orbita-pos%2Finariwatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orbita-pos%2Finariwatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orbita-pos%2Finariwatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orbita-pos%2Finariwatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/orbita-pos","download_url":"https://codeload.github.com/orbita-pos/inariwatch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orbita-pos%2Finariwatch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31307199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","alerting","devops","incident-management","monitoring","nextjs","open-source","rust","self-hosted","typescript"],"created_at":"2026-04-02T13:45:04.081Z","updated_at":"2026-04-02T13:45:04.806Z","avatar_url":"https://github.com/orbita-pos.png","language":"TypeScript","readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"web/public/marketing2.png\" alt=\"InariWatch — You Sleep. We Ship.\" width=\"100%\" /\u003e\n\n\u003cbr /\u003e\n\n\u003cimg src=\"web/public/demo.gif\" alt=\"InariWatch demo\" width=\"100%\" /\u003e\n\n\u003cbr /\u003e\n\n# InariWatch\n\n**The monitoring platform that fixes itself.**\n\nAI detects your incidents, analyzes the root cause, and opens a PR with the fix — while you sleep.\n\n\u003cbr /\u003e\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-7C3AED.svg)](LICENSE)\n[![GitHub Stars](https://img.shields.io/github/stars/orbita-pos/inariwatch?style=flat\u0026color=7C3AED)](https://github.com/orbita-pos/inariwatch/stargazers)\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/orbita-pos/inariwatch)\n\n[Live Demo](https://inariwatch.com) · [Docs](https://inariwatch.com/docs) · [Discord](#) · [Twitter/X](#)\n\n\u003c/div\u003e\n\n---\n\n## The problem\n\nEvery monitoring tool wakes you up at 3am. Then you fix it yourself. Then you go back to sleep.\n\nInariWatch breaks that loop. It monitors everything that matters, and when something breaks, it doesn't just notify you — **it fixes it**.\n\n---\n\n## What it does\n\n```\nYour infra breaks at 3am\n        ↓\nInariWatch detects it (uptime, GitHub, Sentry, Vercel, DB...)\n        ↓\nAI analyzes the root cause\n        ↓\nAI opens a PR with the fix\n        ↓\nYou wake up to a green build\n```\n\n---\n\n## Features\n\n### 🔍 Monitor everything\n- **Uptime** — HTTP/HTTPS endpoints with configurable intervals\n- **GitHub** — failing CI, open vulnerabilities, dependency alerts, PR health\n- **Sentry** — new issues, error spike detection, regression alerts\n- **Vercel** — failed deployments, build errors\n- **PostgreSQL** — connection health, query performance\n- **npm** — security audit on your packages\n- **Datadog** — forward any monitor alert\n\n### 🤖 AI that actually works\n- **Root cause analysis** — understands what broke and why\n- **Auto-remediation** — opens a PR with the fix (GitHub Copilot-style, but for incidents)\n- **Post-mortems** — generates a report automatically\n- **Ask Inari** — chat with AI about your alerts and codebase\n\n### 🚨 Smart alerting\n- Incident storm detection — suppresses spam during outages\n- Severity levels (critical / warning / info) with per-channel filters\n- **On-call scheduling** — rotations, time slots, overrides\n- **Multi-level escalation** — Primary → Secondary → All org admins\n- Email digests — one email per 5 minutes, not one per alert\n\n### 📣 Notifications everywhere\n- **Telegram** — with inline ACK/Resolve buttons\n- **Slack** — with Block Kit ACK/Resolve buttons\n- **Email** — with tracking and unsubscribe\n- **Push notifications** — browser push via VAPID\n- **Outgoing webhooks** — POST to any endpoint\n\n### 🌐 Status pages\n- Public status page at `/status/[your-project]`\n- 90-day uptime history per monitor\n- Automatic incident timeline\n\n### 🔒 Security-first\n- AES-256-GCM encryption for all stored secrets (key versioning)\n- Time-bound HMAC signatures on action links (72h expiry)\n- HMAC webhook verification (GitHub, Sentry, Vercel)\n- SSRF protection on all user-provided URLs\n- 2FA support\n\n---\n\n## Self-host in 5 minutes\n\n### Deploy to Vercel (recommended)\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/orbita-pos/inariwatch)\n\n### Docker\n\n```bash\ngit clone https://github.com/orbita-pos/inariwatch\ncd inariwatch/web\ncp .env.example .env.local\n# Edit .env.local with your values\ndocker compose up\n```\n\n### Manual\n\n```bash\ngit clone https://github.com/orbita-pos/inariwatch\ncd inariwatch/web\nnpm install\ncp .env.example .env.local\nnpm run db:push\nnpm run dev\n```\n\n---\n\n## Environment variables\n\n```env\n# Database (Neon, Supabase, or any Postgres)\nDATABASE_URL=postgresql://...\n\n# Auth\nNEXTAUTH_URL=https://your-domain.com\nNEXTAUTH_SECRET=your-secret-here\n\n# Encryption (generate with: openssl rand -hex 32)\nENCRYPTION_KEY=your-32-byte-hex-key\n\n# Email (Resend)\nRESEND_API_KEY=re_...\n\n# Optional: AI providers (BYOK)\nOPENAI_API_KEY=sk-...\nANTHROPIC_API_KEY=sk-ant-...\n\n# Optional: Push notifications\nNEXT_PUBLIC_VAPID_PUBLIC_KEY=...\nVAPID_PRIVATE_KEY=...\n\n# Optional: Cron auth (for Vercel cron jobs)\nCRON_SECRET=your-cron-secret\n```\n\n---\n\n## CLI\n\nInariWatch also ships a local CLI for developers who want monitoring without the cloud:\n\n```bash\nnpm install -g @inariwatch/cli\ninari init\ninari watch\n```\n\nThe CLI is fully open source and works 100% offline. [→ CLI docs](cli/README.md)\n\n---\n\n## Architecture\n\n```\ninariwatch/\n├── cli/          # Local CLI (TypeScript, fully offline)\n└── web/          # Cloud platform (Next.js 15, Drizzle, Neon)\n    ├── app/\n    │   ├── (dashboard)/  # Main app UI\n    │   ├── (marketing)/  # Landing page, docs\n    │   ├── api/\n    │   │   ├── cron/     # Polling jobs (poll, escalate, uptime, digest)\n    │   │   └── webhooks/ # Incoming webhooks (GitHub, Sentry, Vercel, Datadog)\n    │   └── status/       # Public status pages\n    └── lib/\n        ├── notifications/ # Telegram, Slack, Email, Push\n        ├── pollers/       # Per-integration polling logic\n        └── webhooks/      # HMAC verification, shared utils\n```\n\n---\n\n## Roadmap\n\n- [ ] Mobile app (iOS / Android)\n- [ ] More integrations: AWS CloudWatch, GCP, Render, Railway\n- [ ] Runbooks — AI-generated step-by-step resolution guides\n- [ ] Incident channels — dedicated Slack/Teams channel per incident\n- [ ] SLA tracking\n- [ ] Audit log export (CSV/JSON)\n\n---\n\n## Contributing\n\nInariWatch is MIT licensed and we love contributions.\n\n```bash\ngit clone https://github.com/orbita-pos/inariwatch\ncd inariwatch/web\nnpm install\nnpm run dev\n```\n\n**Good first issues:** look for `good first issue` label on GitHub.\n\nFor larger changes, open a discussion first so we can align on approach.\n\n---\n\n## License\n\nMIT — free to use, self-host, modify, and distribute. See [LICENSE](LICENSE).\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\nBuilt with ❤️ and pixel foxes.\n\n**[inariwatch.com](https://inariwatch.com)** · **[Star on GitHub ⭐](https://github.com/orbita-pos/inariwatch)**\n\n\u003c/div\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forbita-pos%2Finariwatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Forbita-pos%2Finariwatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forbita-pos%2Finariwatch/lists"}