Skip to content

Installation

Install PMetal from prebuilt binaries, crates.io, or build from source.

  • macOS on Apple Silicon (M1, M2, M3, M4, M5)
  • Xcode Command Line Tools: xcode-select --install

For building from source:

  • Rust 1.86+: Install via rustup
  • Metal Toolchain: Required for compiling Metal GPU shaders
  • CMake: Required for building MLX native dependencies

For GUI development:

  • bun: brew install oven-sh/bun/bun
Terminal window
# 1. Install Xcode Command Line Tools
xcode-select --install
# 2. Accept the Xcode license (if Xcode is installed)
sudo xcodebuild -license accept
# 3. Install the Metal shader compiler toolchain
xcodebuild -downloadComponent MetalToolchain
# 4. Install CMake (required for MLX native build)
brew install cmake
# 5. Restart your terminal after installation

Note: If you installed Xcode but metal is not found, try: sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

After installing Xcode and Metal, a restart may be required.

Signed binaries are available on the Releases page:

Terminal window
curl -fsSL https://github.com/Epistates/pmetal/releases/latest/download/pmetal-aarch64-apple-darwin.tar.gz | tar xz
sudo mv pmetal /usr/local/bin/
pmetal --version
Terminal window
# Default features (CLI + TUI + trainer + LoRA + merge + ANE + distributed)
cargo install pmetal
# Add optional HTTP serving and MCP tools
cargo install pmetal --features "serve,mcp"
# All library feature groups
cargo install pmetal --features full
# Library feature groups plus optional serving and MCP
cargo install pmetal --features "full,serve,mcp"

See Feature Flags for details on what each feature enables.

Terminal window
git clone https://github.com/epistates/pmetal.git && cd pmetal
# Release build with default features
cargo build --release
# Build without ANE
cargo build --release --no-default-features --features dashboard
# Run tests (single-threaded for Metal compatibility)
just test

The compiled binary will be at target/release/pmetal.

The desktop GUI is a Tauri + Svelte application:

Terminal window
cd crates/pmetal-gui
bun install
bun tauri build

The built application bundle will be in target/release/bundle/.

For development:

Terminal window
cd crates/pmetal-gui
bun install
bun tauri dev

The Python SDK is built with maturin and PyO3:

Terminal window
cd crates/pmetal-py
pip install maturin
maturin develop --release

Then in Python:

import pmetal
print(pmetal.__version__)
Terminal window
# Check version
pmetal --version
# Show device info (GPU, ANE, bandwidth)
pmetal info
# Check memory capacity
pmetal memory
# Search for a model
pmetal search "qwen 0.6b" --detailed