Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CURA

CURA is an interactive GPU development environment manager, written in Rust. It manages versioned CUDA environments on Linux and WSL and configures Apple's system-native Metal toolchain on macOS.

CUDA environments are installed side by side, can be switched per project, and have every downloaded component verified. On macOS, CURA detects the Metal GPU and runtime supplied by the operating system, checks Xcode, and installs Apple's separately downloadable Metal compiler toolchain when needed.

$ cura install cuda-12
┌─ CURA · Installation plan ─────────────────────────────
│ CUDA       12.9.2
│ Scope      User
│ Profile    Toolkit · runtime, nvcc, headers, and developer tools
│ Payload    27 components · 3.4 GiB download
│ Driver     compatible / no change
└─────────────────────────────────────────────────────────

Running cura opens the full-screen dashboard. The same workflows remain available as regular subcommands for scripts and CI.

Features

  • Resolve aliases such as cuda-12 and pin the exact newest published patch release.
  • Compare Runtime, Toolkit, and Full profiles in an interactive installer.
  • Install without sudo under the XDG data directory, with SHA-256 verification and atomic activation.
  • Optionally install through apt, dnf, or zypper using NVIDIA's official repositories.
  • Detect incompatible drivers and review upgrades before sudo; never install a driver inside WSL.
  • Select CUDA globally or through a project-local .cura-version file.
  • Run commands in an environment without changing the parent shell.
  • Diagnose the platform, GPU driver, installed environments, selection, and shell hook.
  • Detect the Metal GPU and runtime version on macOS.
  • Inspect Xcode and install the Apple Metal compiler toolchain with a reviewed plan.

Install CURA

Install CURA with one command. The installer detects Linux, WSL, or macOS, installs the current stable Rust toolchain and Cargo with rustup when needed, then builds and installs the CLI:

curl --proto '=https' --tlsv1.2 -fsSL 'https://github.com/mindify-ai/cura-cli/blob/main/install.sh?raw=1' | sh

To build from a local checkout with an existing current stable Rust toolchain:

cargo install --path .

CUDA is supported on native Linux and WSL. Metal is supported on macOS and uses the runtime included with the operating system plus Apple's Xcode toolchain.

Usage

# Interactive wizard; choose the payload after seeing its size.
cura install cuda-12

# Deterministic CI installation.
cura install cuda-12.9.2 --profile toolkit --yes --no-interactive

# Privileged native package installation.
cura install cuda-12 --profile toolkit --system

cura list
cura list --available
cura use cuda-12                  # writes .cura-version
cura use cuda-12 --global
cura run --cuda cuda-12 -- nvcc --version
cura doctor
cura remove cuda-12

# macOS: inspect and configure Metal development support.
cura metal status
cura install metal
# Equivalent explicit form:
cura metal install

Enable automatic environment updates when changing directories:

# zsh
eval "$(cura shell init zsh)"

# bash
eval "$(cura shell init bash)"

# fish
cura shell init fish | source

Use cura shell init zsh --write (or bash/fish) to append the hook after reviewing it.

Data and security

CURA follows XDG paths for configuration, data, cache, and state. Set CURA_HOME to keep all four beneath one directory. CUDA user installs are downloaded directly from NVIDIA's redistributable catalog, checked against the manifest SHA-256, safely extracted into a staging directory, and atomically activated. Partial downloads remain reusable; partial environments never become selectable.

Metal is system-managed and is not represented as a versioned CURA environment. CURA uses system_profiler, xcode-select, and xcrun for read-only detection. When approved, cura metal install runs xcodebuild -downloadComponent MetalToolchain; it does not modify the macOS GPU driver or install third-party packages.

System and driver operations display a plan before invoking sudo. In non-interactive contexts, payload selection and destructive confirmation must be explicit.

Development

cargo fmt --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-targets

The Astro documentation site lives in docs/:

cd docs
npm install
npm run dev

About

CURA is an interactive GPU development environment manager, written in Rust. It manages versioned CUDA environments on Linux and WSL and configures Apple's system-native Metal toolchain on macOS.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages