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.
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.
reserved 128 / 120 GB → page thrash → load 400+ → box unreachable
Nothing runs that doesn't fit.
KUDA holds the line with two mechanisms working together.
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.
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.
Nothing runs that doesn't fit. KUDA holds the line.
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.
A live voice assistant. Ears, brain, voice, and a music generator — up together, holding a conversation.
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.
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.
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
Orthogonal, not competing.
runs one model across many boxes.
runs many models on one box — safely.
they're complementary — you can run KUDA on each node of an exo cluster.
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.
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.
gallery → kuda.karti.ai/scenes
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.