Skip to main content

What is Yeet?

Yeet is a JavaScript runtime for Linux Ops. It uses a daemon (yeetd) that exposes kernel-level system state as a typed live graph — CPU, memory, processes, network, Docker, GPU, sensors — and runs small JavaScript programs against it inside V8 isolates. Scripts subscribe to the graph in real time, and load and react to eBPF programs through a typed yeet.bpf module. Write 30 lines of JS, attach to the kernel, get a live stream of events you can act on.

The JS surface is intentionally narrow: ES modules, a curated set of globals (yeet.graph, yeet.bpf, tty, style, timers), no Node stdlib, no rebuild loop. The script you write this afternoon is the tool you run — and with the source resolver, the tool you ship by URL.

What you do with yeet

  • Build your own ops tools — performance, security, compliance, incident response: all small JS files run under daemon supervision
  • Monitor and set alerts — watch a threshold, fire a Slack message, page on-call, open a ticket
  • Query your system's real-time data — one-shot GraphQL against the live graph, or subscribe and react as it changes
  • Customize existing scripts — start from a working script, change three lines, ship your version
  • Observe the kernel — trace a syscall, watch a connection, audit a file open

What scripts can see

The system graph surfaces:

  • Processes — every PID: command line, CPU time, resident memory, disk I/O, scheduler run delay, and process state
  • CPU — per-core utilization (user, system, iowait, steal, etc.), clock frequencies, and core metadata
  • Memory — full /proc/meminfo: total, free, available, buffers, cached, swap, slab, hugepages, vmalloc
  • Network — per-interface metadata and live rx/tx counters from /proc/net/dev
  • Kernel — context switches, boot time, load averages, running and blocked process counts
  • Docker — container list, network membership, Compose metadata, live per-container stats, and streaming logs
  • Nvidia GPUs — power draw, temperature, fan speed, utilization, and per-process GPU memory via NVML
  • Hardware sensors — temperatures, fan speeds, and voltage readings from any hwmon device under /sys/class/hwmon

Run yeet graph dump for the full SDL, or yeet graph query '<gql>' to probe any field from the shell.

How scripts work

A script subscribes to one or more graph fields and does something with the data — render a terminal UI, write structured output, fire an alert. The daemon handles polling and streaming; the script just reacts.

const ticket = yeet.graph.subscribe(
`subscription {
network_interface_stats(interval_ms: 1000) {
name recv_bytes sent_bytes
}
}`,
(data) => console.log(data)
);

Scripts terminate when there's nothing left pending, or when you call yeet.exit(). Press Ctrl+C to stop at any time.

Linux only

Yeet requires a Linux filesystem and the BPF filesystem for full functionality. macOS and Windows users can run it in a container — see Running with Docker.