Skip to content
aniketshukla1Public

About

Monitoring tells you something is wrong. root tells you why. Live health, logs, alerts, config reading and an assistant across 31 kinds of infrastructure. Desktop or server.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

162 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

root

Monitoring tells you something is wrong. root tells you why.

Live health, metric history, one log stream, alerts and an assistant that can actually investigate,
across 31 kinds of infrastructure, from one window. Open source. Desktop or server.

Website · What it does · Films · Run it · 31 kinds · How it fits together · Status · Reference

CI status Website status Version License Last commit

31 kinds of infrastructure More than 830 tests Runs on macOS and Linux Desktop app or server The assistant runs on Anthropic, OpenAI-compatible endpoints, Ollama or nothing at all MCP server

Rust Tauri 2 React 19 TypeScript Tailwind 4 PostgreSQL Docker

root: an incident on the Overview, its root cause analysis, then a config finding that says writes will start failing in about 3 hours

31

kinds of infrastructure, polled read-only

4

places it reads config and logs: this machine, a container, SSH, a pod

830+

tests in CI on Linux and macOS, with a real TimescaleDB on Linux

0

models required. Add Anthropic, any OpenAI-compatible endpoint or Ollama if you want the assistant

2

ways to run one engine: the desktop app, or a server with a browser client

2

containers to deploy it: root-server and Postgres. No broker, no cache, no sidecar

7

days of history an alert rule replays against before you save it

0

actions the assistant takes without your approval

Monitoring is half of it

Watching tells you a thing is wrong. Reading the configuration that governs it tells you why, and which number to change.

A Redis at 1.8 GB of a 2 GB maxmemory with maxmemory-policy noeviction is not a memory graph to keep an eye on. It is a decision that starts refusing writes in about three hours, and neither the metric nor the config file says so alone. root reads both, and says:

Writes will start failing in about 3 hours. Memory is at 1.8 GB of a 2.0 GB ceiling and rising. maxmemory-policy is noeviction, so when it arrives Redis does not evict anything: it returns OOM on every write and keeps serving reads.

redis-cli CONFIG SET maxmemory-policy allkeys-lru   # cache semantics: evict rather than refuse

What it does

One incident, not a list of alertsAlerts group by onset time, declared dependencies and observed changes, with no model involved. You see what failed first, what changed and how far it spread.
It reads your configYou declare the paths: on this machine, inside a Docker container, over SSH or inside a Kubernetes pod. Secrets are redacted in the reader, and findings come from rules that always fire on the same input.
An estate graphEvery connection, container, outside service, team and file as one graph you can walk. Every link says how root knows it: declared, reported, observed or inferred.
Grafana dashboards, importedPaste an export and its PromQL panels run. Explore PromQL, LogQL and traces. Alert rules replay the last week before you save them.
An assistant with real access and deliberate limitsRead-only by default. With actions allowed, every call stops for approval. No shell tool and no arbitrary SQL. Bring Anthropic, any OpenAI-compatible endpoint, or Ollama, where nothing leaves the machine.
It keeps scoreA Scorecard of which findings were right, which were noise and which problems it missed.

The films

Each one is the real app, filmed with its built-in demo data. Click through to watch with sound.

Watch the launch film
The launch film · 0:25
The whole idea, from the splash to the end card.
Watch From first alert to root cause
From first alert to root cause · 0:34
Alerts, how it spread, the analysis, the assistant, the record.
Watch Monitoring is half of it
Monitoring is half of it · 0:32
A finding, the fix, the evidence, redaction, where files live.
Watch What is this connected to?
What is this connected to? · 0:24
The service map and the estate graph.
Watch Bring your Grafana dashboards
Bring your Grafana dashboards · 0:28
Import, Explore, a trace waterfall, a rule replayed.
Watch Select it. Ask about it.
Select it. Ask about it. · 0:18
The answer sits on the chart window or log lines you asked about.

Run it

Look at the interface in a browser, with demo data and no Rust. It needs Node 22.

git clone https://github.com/aniketshukla1/root
cd root
npm install
npm run dev
# then open http://localhost:1420/?estate=incident

The desktop app. Nothing to configure and nobody to sign in to. It reads a config file you own, holds credentials in the OS keychain and binds loopback only. It needs Node 22, a Rust toolchain and the Tauri 2 prerequisites, plus CMake for the bundled Kafka client and, on Linux, curl's headers (libcurl4-openssl-dev).

npm install
npm run tauri dev

Nothing to connect yet? Start the live demo from the first-run screen: a simulated shop of thirteen connections, where every twelve minutes something goes wrong.

The server. Collectors run somewhere that stays up, history goes to Postgres, and the client is a browser on any device, with accounts, roles and single sign-on. It refuses to start without a token. See deploy/README.md.

cd deploy
cp .env.example .env   # put real values in it
docker compose up -d
open http://localhost:7777

31 kinds of infrastructure

Containers and orchestrationDocker, Podman, Kubernetes
Hosts and storageThis computer, Linux host, SSH server, NFS exports
Web and endpointsHTTP endpoint, Nginx, Apache httpd, Apache Tomcat, HAProxy, Traefik
DatabasesPostgreSQL, MySQL, MongoDB, ClickHouse
Caching and searchRedis, Memcached, Elasticsearch
Messaging and coordinationKafka, RabbitMQ, NATS, ZooKeeper, Consul, etcd
CI, observability and cloudJenkins, Prometheus, Gigapipe, OpenTelemetry, AWS

Adding a kind is a backend-only change: the frontend knows about no service type in particular. How to add one.

How it fits together

flowchart LR
  estate["Your estate<br/>31 kinds of system"] -->|polled, read-only| engine
  files["Declared config and log files<br/>local, container, SSH, pod"] -->|redacted in the reader| engine
  otlp["Apps, over OTLP"] --> engine
  subgraph engine["The engine (Rust)"]
    direction TB
    rules["Alerts, incidents, config rules, forecasts"]
    knows["Estate graph, history, logs, traces"]
  end
  engine --> desktop["Desktop app<br/>Tauri + React"]
  engine --> server["Server<br/>browser client, Postgres"]
  engine --> mcp["MCP server"]
  engine <-->|fixed tools| ai["Assistant<br/>your model, or none"]
Loading

The desktop app and the server run the same engine. Everything works with no model configured; the assistant adds to it.

Status

Version 0.1, built from source: there are no signed installers yet. Every push to main runs Clippy with warnings as errors, the backend suites on Linux and macOS, on Linux against a real TimescaleDB (list), the frontend checks and bundle budget, and a build of the server image. Suites for services CI does not run, such as Redis, Kafka and Kubernetes, skip there and run when one is up. Reading files inside a container, inside a pod and from a journal over SSH have tests but have not yet been exercised against a live engine or cluster, so reports are welcome.

More

License

MIT

About

Monitoring tells you something is wrong. root tells you why. Live health, logs, alerts, config reading and an assistant across 31 kinds of infrastructure. Desktop or server.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages