Installation
Install PMetal from prebuilt binaries, crates.io, or build from source.
Requirements
Section titled “Requirements”- 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
Installing Build Dependencies
Section titled “Installing Build Dependencies”# 1. Install Xcode Command Line Toolsxcode-select --install
# 2. Accept the Xcode license (if Xcode is installed)sudo xcodebuild -license accept
# 3. Install the Metal shader compiler toolchainxcodebuild -downloadComponent MetalToolchain
# 4. Install CMake (required for MLX native build)brew install cmake
# 5. Restart your terminal after installationNote: If you installed Xcode but
metalis not found, try:sudo xcode-select -s /Applications/Xcode.app/Contents/DeveloperAfter installing Xcode and Metal, a restart may be required.
Prebuilt Binaries
Section titled “Prebuilt Binaries”Signed binaries are available on the Releases page:
curl -fsSL https://github.com/Epistates/pmetal/releases/latest/download/pmetal-aarch64-apple-darwin.tar.gz | tar xzsudo mv pmetal /usr/local/bin/pmetal --versionInstall from crates.io
Section titled “Install from crates.io”# Default features (CLI + TUI + trainer + LoRA + merge + ANE + distributed)cargo install pmetal
# Add optional HTTP serving and MCP toolscargo install pmetal --features "serve,mcp"
# All library feature groupscargo install pmetal --features full
# Library feature groups plus optional serving and MCPcargo install pmetal --features "full,serve,mcp"See Feature Flags for details on what each feature enables.
Build from Source
Section titled “Build from Source”git clone https://github.com/epistates/pmetal.git && cd pmetal
# Release build with default featurescargo build --release
# Build without ANEcargo build --release --no-default-features --features dashboard
# Run tests (single-threaded for Metal compatibility)just testThe compiled binary will be at target/release/pmetal.
GUI Installation
Section titled “GUI Installation”The desktop GUI is a Tauri + Svelte application:
cd crates/pmetal-guibun installbun tauri buildThe built application bundle will be in target/release/bundle/.
For development:
cd crates/pmetal-guibun installbun tauri devPython SDK
Section titled “Python SDK”The Python SDK is built with maturin and PyO3:
cd crates/pmetal-pypip install maturinmaturin develop --releaseThen in Python:
import pmetalprint(pmetal.__version__)Verify Installation
Section titled “Verify Installation”# Check versionpmetal --version
# Show device info (GPU, ANE, bandwidth)pmetal info
# Check memory capacitypmetal memory
# Search for a modelpmetal search "qwen 0.6b" --detailed