SparkD: The missing dashboard for spark-vllm-docker

Fellow GB10 owners — built this for myself after burning a weekend on SSH sessions, hand-edited YAMLs, and tail -f across tmux panes just to get one vLLM serve running. Open-sourced so the next person doesn’t lose the same weekend I did.

sparkd is a localhost dashboard that wraps eugr/spark-vllm-docker and turns the “I have a Spark, now what?” workflow into a few clicks. The headline idea: let AI do the part that actually makes the Spark feel intimidating — reading model cards, sizing recipes for your hardware, and splitting work across nodes correctly on the first try.

🤖 What the AI co-pilot actually does for you

  • Reads the Hugging Face model card automatically — architecture, parameter count, context length, dtype. You don’t paste anything.

  • Sees your hardware — per-node GPU model, VRAM, network interface, plus the total cluster topology if you’ve grouped boxes.

  • Writes a tuned vLLM recipe — correct --tensor-parallel-size, --pipeline-parallel-size, --gpu-memory-utilization, --max-model-len, --distributed-executor-backend=ray, and NCCL_SOCKET_IFNAME pinned to your IB iface.

  • Optimizes existing recipes for throughput, latency, or whatever goal you give it — with a side-by-side diff and rationale for each change.

  • Suggests fixes when launches fail — hand it the error log, get a proposed mods/ patch.

  • Bring your own provider — Anthropic, OpenAI, Gemini, Mistral, Groq, OpenRouter, Together, or a local vLLM endpoint. Keys live in your OS keyring.

🛠️ What the dashboard does around it

  • One-click launches on a single box or a multi-Spark cluster (tag boxes with the same cluster=<name> and they group automatically).

  • Multi-node “just works” — sparkd hands off to upstream launch-cluster.sh, which scps the launch script to workers, starts Ray, and runs vLLM across the cluster. No new orchestration code — just no more keyboard-yoga.

  • Smart recipe filtering — pick a target, the recipe dropdown narrows itself to ones whose tp×pp matches your node count. Toggle the chip row to override.

  • Live log streaming, pause / inspect / restart / stop without leaving the dashboard.

  • Recipe versioning with side-by-side diff and one-click revert. Every save is a new version.

  • Full Hugging Face browser baked in — filter by task / library, sort by downloads / likes / recent, drop your HF token for gated repos.

  • Mods support — sync from upstream or author your own.

  • No cloud. No telemetry. No account. Runs on your laptop, talks to your Sparks over SSH, stores everything in ~/.sparkd/.

If it saved me a weekend, I figured it might save someone else one too. MIT licensed. Feedback, issues, PRs all welcome:

👉 https://github.com/mchenetz/sparkd

This looks very cool! Can’t wait to give it a try after work..

This looks very useful, I will give it a try. I have been working on something similar, making it easy to run recipe’s, create recipe’s, and fix/optimize using claude or codex. I also included a section for chat and a canvas section, I can prompt the model to create a game and show it on canvas right there in the UI. I had the same idea make it user friendly, I can also run the llama benchy and get the results right on my app. It’s far from perfect but hoping to get it there.

Let me know how you like it. I am looking to make it truly useful for the community.

You solution looks interesting too. I will have to take a look at it. I love how the community is coming together to make things better for all. I have a few plans for the future.

  1. Integrate with monitoring tools on the Spark Boxes in order to create a full optimization loop that can kind of live optimize.
  2. integrate with some of the kernel tuning tools
  3. create a more dynamic dashboard of training cycles and changes

Let me know if you have any feedback.

Mike