ov-layers/skills/jupyter-ml/SKILL.md
Full CUDA ML stack + JupyterLab with real-time collaboration and CRDT MCP server on port 8888. Use when working with GPU-accelerated Jupyter notebooks, ML training with collaboration, or the jupyter-ml layer.
npx skillsauth add overthinkos/overthink-plugins jupyter-mlInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Property | Value |
|----------|-------|
| Dependencies | cuda, supervisord |
| Sub-layers | llama-cpp, unsloth, jupyter-mcp |
| Ports | 8888 |
| Service | jupyter-ml (supervisord) |
| Volume | workspace at ~/workspace |
| Install files | layer.yml, pixi.toml, tasks: |
This is a Tier 2 "environment owner" layer that:
layers: [llama-cpp, unsloth, jupyter-mcp]jupyter-mcp sub-layer (not directly in tasks:)Build order: pixi environment → llama-cpp (binaries) → unsloth (vllm wheel + unsloth pip + patch) → jupyter-mcp (MCP extension)
conda-forge: JupyterLab >= 4.4.0, jupyter-resource-usage, jupyterlab-git, jupyterlab-lsp, jupyterlab-spellchecker, tensorboard, wandb, matplotlib, seaborn, pandas, numpy, scikit-learn, scipy, polars, pyarrow, dask, duckdb, altair, papermill, marimo, mkdocs, black, pytest
PyPI (ML Core): PyTorch >= 2.10.0 (CUDA 13.0), xformers, transformers >= 5.0.0rc1, accelerate, einops, kornia, spandrel, torchsde
PyPI (vLLM Runtime): blake3, flashinfer-python, numba, ray, xgrammar, and 25+ more runtime deps
PyPI (Fine-tuning): peft, trl, bitsandbytes, deepspeed, liger-kernel
PyPI (LangChain): langchain, langchain-core, langchain-openai, langchain-community, langchain-classic, langchain-anthropic, langchain-huggingface, langchain-ollama, chromadb, faiss-cpu
PyPI (Evaluation): evidently (with llm extras), evaluate, sacrebleu, rouge-score, nltk, bertviz
PyPI (APIs): openai, anthropic, gradio, ollama (client)
PyPI (Collaboration): jupyter-collaboration >= 4.1.0
RPM: git, gcc, gcc-c++
| Variable | Value | Purpose |
|----------|-------|---------|
| NVIDIA_PYTHON_PROJECT | ~/.pixi | NVIDIA driver → pixi env mapping |
| LD_LIBRARY_PATH | /usr/lib64:$HOME/llama.cpp | CUDA libs + llama.cpp shared libs |
| LLAMA_CPP_PATH | ~/llama.cpp | (from llama-cpp sub-layer) |
| UNSLOTH_SKIP_LLAMA_CPP_INSTALL | 1 | (from unsloth sub-layer) |
| HF_HOME | ~/.cache/huggingface | (from unsloth sub-layer) |
Same CRDT MCP server as /ov-layers:jupyter — 13 tools for programmatic notebook access (list, get, create, update, insert, delete, execute cells, watch changes, collaboration awareness). See /ov-layers:jupyter for full tool reference.
Endpoint: http://localhost:8888/mcp (Streamable HTTP, MCP spec 2025-11-25)
| | jupyter | jupyter-ml | |---|---|---| | Base dep | supervisord | cuda, supervisord | | GPU | No | CUDA 13.0 | | Platforms | amd64 + arm64 | amd64 only | | MCP | CRDT (13 tools) | CRDT (13 tools) | | ML stack | No | Full (PyTorch, vLLM 0.19, unsloth) | | Volume | workspace | workspace |
/ov-images:jupyter-ml/ov-images:jupyter-ml-notebook/ov-layers:jupyter — Lightweight variant (no CUDA, multi-arch)/ov-layers:llama-cpp — Sub-layer: llama.cpp binaries/ov-layers:unsloth — Sub-layer: vLLM wheel + fine-tuning + vLLM patch/ov-layers:jupyter-mcp — Sub-layer: CRDT MCP extension/ov-layers:notebook-templates — Starter notebooks (data layer, used alongside this layer in images)Use when the user asks about:
jupyter-ml layer/ov:layer — layer authoring reference (layer.yml schema, task verbs, service declarations)/ov:test — declarative testing (tests: block, ov image test, ov test)tools
Use when authoring or modifying a charly PLUGIN — a candy with a `plugin:` block that contributes Providers (verbs/kinds/deploy-targets/steps/builders/commands), its own CUE schema, builtin (compiled-in) or external (out-of-tree git repo). Covers the unified Provider model, the per-plugin CUE-schema contract (single source → Go params for dev + schema-over-Describe RPC for runtime), the SDK, and the loader.
tools
The CUE data-validation / configuration CLI (cue), pinned to v0.16.1. Use when working with the cue candy, installing the cue binary into a box or onto a target:local dev host, or running the offline schema-vendoring pipeline that feeds charly's egress validation.
tools
CUE EGRESS validation — validating (and, where it adds value, generating) the config files charly WRITES to a system BEFORE the bytes hit disk. MUST be invoked before working on charly/egress.go, the vendored schemas under candy/plugin-egress/egress-schemas/vendor/, the ValidateEgress / registerVendoredEgressKind path, the offline `task cue:vendor` pipeline, or adding an egress schema for any written artifact (cloud-init, k8s manifests, traefik routes, runtime config, install ledger, systemd/quadlet units, ssh_config, libvirt XML).
tools
Kubernetes cluster-probe declarative check verb — the `kube:` check verb (nodes, pods, ingress, storage class, addon health, apply/delete, and arbitrary resource GETs) served out-of-process by the candy/plugin-kube plugin (vendored client-go; no external kubectl required).