Monitor anything in real time
$git clone https://github.com/homanp/infinite-monitorInstalls into the current project.
Install infinite-monitor by running `git clone https://github.com/homanp/infinite-monitor`, then use it for the current task and follow its documentation at https://github.com/homanp/infinite-monitor.
| 1 | # Infinite Monitor |
| 2 | |
| 3 | [](https://github.com/homanp/infinite-monitor) |
| 4 | [](https://opensource.org/licenses/MIT) |
| 5 | [](https://github.com/homanp/infinite-monitor/actions/workflows/ci.yml) |
| 6 | |
| 7 | An AI-powered dashboard builder. Describe the widget you want in plain English and an AI agent writes, builds, and deploys it in real time. |
| 8 | |
| 9 | Each widget is a full React app — with its own dependencies, API calls, charts, maps, and interactive UI — running in an isolated iframe. Drag, resize, and organize them on an infinite canvas for any domain: cybersecurity, OSINT, trading, prediction markets, or anything you can describe. |
| 10 | |
| 11 | <p align="center"> |
| 12 | <img src="assets/demo.gif" alt="Infinite Monitor" width="100%"> |
| 13 | </p> |
| 14 | |
| 15 | ## How it works |
| 16 | |
| 17 | 1. Click **Add Widget** and describe what you want |
| 18 | 2. An AI agent writes the React code, installs dependencies, and builds it in a secure sandbox |
| 19 | 3. The widget renders live in an iframe on your dashboard |
| 20 | 4. Iterate by chatting — the agent rewrites and rebuilds in seconds |
| 21 | |
| 22 | ## Quick start |
| 23 | |
| 24 | ### Prerequisites |
| 25 | |
| 26 | - [Node.js](https://nodejs.org/) 22+ (needed for Secure Exec’s `isolated-vm` native addon) |
| 27 | - An API key from any [supported provider](#supported-providers) (Anthropic, OpenAI, Google, xAI, Mistral, and more) |
| 28 | |
| 29 | ### Setup |
| 30 | |
| 31 | ```bash |
| 32 | git clone https://github.com/homanp/infinite-monitor.git |
| 33 | cd infinite-monitor |
| 34 | ``` |
| 35 | |
| 36 | Create `.env.local` with at least one provider key: |
| 37 | |
| 38 | ```bash |
| 39 | # Pick any provider — or add multiple |
| 40 | ANTHROPIC_API_KEY=sk-ant-... |
| 41 | # OPENAI_API_KEY=sk-... |
| 42 | # GOOGLE_GENERATIVE_AI_API_KEY=... |
| 43 | ``` |
| 44 | |
| 45 | See [`.env.example`](.env.example) for the full list of supported environment variables. |
| 46 | |
| 47 | Install and start: |
| 48 | |
| 49 | ```bash |
| 50 | npm install |
| 51 | npm run dev |
| 52 | ``` |
| 53 | |
| 54 | Open [http://localhost:3000](http://localhost:3000). |
| 55 | |
| 56 | ## Desktop app |
| 57 | |
| 58 | If you want to run Infinite Monitor as an installable desktop app instead of |
| 59 | starting the web app from source, there is a community-maintained Electron |
| 60 | distribution for macOS, Windows, and Linux: |
| 61 | |
| 62 | - Desktop repo: [mehdiraized/infinite-monitor-desktop](https://github.com/mehdiraized/infinite-monitor-desktop) |
| 63 | - Latest releases: [Download desktop builds](https://github.com/mehdiraized/infinite-monitor-desktop/releases/latest) |
| 64 | |
| 65 | The desktop project tracks this repository as its upstream source and adds |
| 66 | desktop-specific packaging and integrations in a separate repository. |
| 67 | |
| 68 | ## Architecture |
| 69 | |
| 70 | ``` |
| 71 | ┌─────────────────────────────────────────────────────────┐ |
| 72 | │ Next.js App │ |
| 73 | │ ┌──────────────────────┐ ┌─────────────────────────┐ │ |
| 74 | │ │ Infinite Canvas │ │ Chat Sidebar │ │ |
| 75 | │ │ (pan / zoom / grid) │ │ (AI conversation) │ │ |
| 76 | │ │ │ │ │ │ |
| 77 | │ │ ┌──────┐ ┌──────┐ │ │ User: "build a chart" │ │ |
| 78 | │ │ │iframe│ │iframe│ │ │ Agent: writes code... │ │ |
| 79 | │ │ │ w1 │ │ w2 │ │ │ Agent: building... │ │ |
| 80 | │ │ └──────┘ └──────┘ │ │ ✓ Widget ready │ │ |
| 81 | │ └──────────────────────┘ └─────────────────────────┘ │ |
| 82 | └──────────────────┬──────────────────────────────────────┘ |
| 83 | │ |
| 84 | ┌─────────────┼─────────────────┐ |
| 85 | │ │ │ |
| 86 | ▼ ▼ ▼ |
| 87 | ┌─────────┐ ┌──────────┐ ┌─────────────────┐ |
| 88 | │ SQLite │ │ Secure │ │ AI Providers │ |
| 89 | │ (state) │ │ Exec │ │ (BYOK) │ |
| 90 | │ │ │ (V8) │ │ │ |
| 91 | │ widgets │ │ vite │ │ Anthropic │ |
| 92 | │ layouts │ │ serve │ │ OpenAI / Google │ |
| 93 | │ files │ │ dist/ │ │ xAI / Mistral… │ |
| 94 | └─────────┘ └──────────┘ └─────────────────┘ |
| 95 | ``` |
| 96 | |
| 97 | **Client** — Next.js 16 + React 19. Zustand store persisted to localStorage. Widgets rendered as iframes on an infinite canvas with pan, zoom, minimap, and grid-snapped place |