memory governor for unified-memory AI boxes

Run many models on one box safely.

The model orchestrator for unified-memory AI boxes. KUDA holds the line — admission control decides what fits, and a memory watchdog kills before the box wedges.

kuda status
dgx-spark · gb10 · 120 GB unified
qwen3.6-35b-a3b
nemotron-asr
chatterbox-turbo
0── budget 96 GB75/120 GB used
running
3 models
admitted
75 / 96 GB
headroom
21 GB
watchdog
1 Hz · armed
the problem

One pool. No swap. No mercy.

Boxes like the DGX Spark (GB10), DGX Station (GB300), and RTX workstations share one memory pool between CPU and GPU — with almost no swap to fall back on.

Over-commit that pool and it doesn't fail gracefully. The whole machine thrashes and wedges — SSH and ping included — long before the OOM killer gets a turn. You lose the box, not just the job.

And the standard tools won't save you. vLLM, diffusers and friends will happily reserve past 100% of the shared pool and take the machine down with them.

without KUDA — over-commit
llm
image
asr
over

reserved 128 / 120 GB → page thrash → load 400+ → box unreachable

the governor · kuda's kernel

Nothing runs that doesn't fit.

KUDA holds the line with two mechanisms working together.

01

Admission control

A model only starts if its declared footprint fits a hard budget — given everything already running, plus a safety margin. Ask for more than the box has, and KUDA refuses before a single byte is reserved.

declared footprint ≤ budget − in-use − margin
02

Watchdog

A 1 Hz thread watches MemAvailable. If it dips toward the floor, KUDA kills the most-recently-started model — before the thrash begins. A backstop for a wrong estimate, so a bad guess costs one process, not the machine.

1 Hz · MemAvailable · kill newest

Nothing runs that doesn't fit. KUDA holds the line.

scenes

One box, the utilization of several.

A scene is a named, shareable bundle of models brought up together. A single unified-memory box can't hold every model at once — so scenes let you time-multiplex it.

kuda scene activate studio
admitted · 17 GB headroom

A live voice assistant. Ears, brain, voice, and a music generator — up together, holding a conversation.

nemotron-asr
qwen3.6-35b-a3b
chatterbox-turbo
ace-step-1.5
0── budget 96 GB79/120 GB used
nemotron-asr
ears · ASR · 5 GB
qwen3.6-35b-a3b
brain · MoE · 66 GB
chatterbox-turbo
voice · TTS · 4 GB
ace-step-1.5
music · 4 GB

Scheduled scenes

Run the live assistant by day, then switch to an overnight image farm at 3am. One box, the utilization of several — no hands on deck.

09:00 → studio
03:00 → darkroom (image farm)

Stable model ids, never paths

Scenes reference stable model ids — never weight file paths. Upgrading or requantizing a model never breaks a shared scene. Publish it once; it keeps working.

✓ id: brain → qwen3.6-35b-a3b
✗ /weights/qwen3.6-35b-a3b-nvfp4.safetensors
local-first control

Your models, your box, your control.

KUDA serves its own web dashboard straight from the daemon on your Spark — reachable over your LAN or Tailscale. No cloud, no database, nothing leaves your hardware.

  • Dashboard served by the daemon itself
  • Reachable on LAN or over Tailscale
  • No cloud round-trip, no accounts, no telemetry
http://your-spark:7878local
brain
ears
voice
scene
studio
uptime
14d 6h
kills
0
served from the daemon · no external calls
how it compares

Orthogonal, not competing.

exo

runs one model across many boxes.

kuda

runs many models on one box — safely.

they're complementary — you can run KUDA on each node of an exo cluster.

install · quickstart

One static binary. No runtime deps.

Built in Rust. Ships as a single static binary. Works on Linux — DGX Spark (GB10), DGX Station (GB300), and RTX.

spark:~/kuda
# from source (single static binary, no runtime deps)
$ cargo install --path .
$ kuda status # memory, budget, running models, headroom
$ kuda scene ls # available scenes + footprints
$ kuda scene activate darkroom # stop what's not in it, start what is
$ kuda watchdog # the memory guard that holds the line
DGX Spark · GB10DGX Station · GB300RTX workstations
scenes hub · coming soon

Pull a scene. Skip the setup.

Browse and pull community scenes. A live assistant, a photo lab, a research rig — brought up with one command.

$kuda pull studio
coming soon
studio
live voice assistant
35 GB
darkroom
image generation lab
35 GB
scholar
long-context RAG rig
48 GB

gallery → kuda.karti.ai/scenes

roadmap · future

From one box to a cluster.

Pair multiple Sparks

Bind 2 / 4 / 8 Sparks into a single cluster — pool their capacity, hold the line across all of them.

Burst to bigger systems

Scale up to larger Grace-Blackwell systems (GB200 / GB300) when a workload needs more compute than one box can give.

roadmap — not shipped yet

Install it the minute you open your Spark.

The model orchestrator for unified-memory AI boxes. KUDA holds the line.

KUDA

KUDA is named after its author, Karti. It runs on NVIDIA hardware but is an independent open-source project, not affiliated with or endorsed by NVIDIA.

more
karti.aiBuilt by Karti
MIT licensed · © 2026 KartiKUDA holds the line.