RUST + METAL / BUILT FOR APPLE SILICON

Local models.
Native execution.

Run AI models on your Mac. Generate text, score decisions and prepare models with one open-source engine.

Built from source today. Installer packages aren't available yet.

STARK / 001RUST · METAL
Stark's angular black cat with gold eyes and STARK wordmark
NATIVE INFERENCEAPPLE SILICON
7.36%

higher generation throughput
than MLX-LM in our comparison

Qwen3.5-2B · 4-bitM5 Max · one request at a time
Source build availableRust + Metal on your MacSee the setup steps

01 / BENCHMARKS

More tokens.
Less waiting.

7.36% higher generation throughput overall in our Qwen3.5-2B comparison with MLX-LM. Stark led all six workloads.

APPLE M5 MAX / 40 GPU CORES128 GiB MEMORYQWEN3.5-2B / 4-BITONE REQUEST AT A TIME
StarkMLX-LM
Qwen3.5-2B generation speed on Apple M5 Max. Bar lengths compare engines within each workload.
WorkloadStark tokens / secondMLX-LM tokens / secondAdvantage
Fibonacci module358.2321.5+11.40%
GPU explanation358.7322.1+11.34%
Copy editing330.4305.3+8.23%
Medium context315.0296.7+6.13%
Long context238.8230.6+3.53%
Long output344.2331.6+3.83%

Higher is better. These measure complete generation requests on the same model and Mac, with model loading excluded. Performance varies by model and hardware.

How we benchmarked

Four of six planned pairs passed the frozen host guards. Two pairs were excluded for external CPU activity and system pageouts. Whole-campaign timing_accepted remains false. These are preliminary local results; quality equivalence and broader production performance remain unqualified.

Rates include prefill, generation, IPC/readout and cleanup. Loading and warmup are excluded. Values are geometric means of within-load medians; each table cell covers 20 requests across four accepted loads. The overall gain gives equal weight to the 24 paired workload/load ratios. Gains use unrounded paired results and can differ from ratios of rounded rates. Bars compare engines within each workload.

Token hashes matched across engines on 6/10 fixtures; decoded text matched on 5/10. Both engines passed only sorting among four strict sanity checks. Arithmetic, prime and Python failed exact-reply checks; the retained receipts cannot distinguish semantic failures from formatting failures.

This measured direct workers at concurrency one. HTTP serving, concurrent requests, time to first token, power and other models or Macs were not measured here. Per-process GPU activity was unavailable; nominal thermal state does not prove equal clock frequencies.

The pinned comparison used Stark 045d0ca6, MLX-LM 72be8c955, MLX/MLX-Metal 0.32.4, context 8192, greedy sampling and fresh request state. Pair-level leads ranged from 6.09% to 7.95%; these are observed ranges, not confidence intervals.

Full benchmark report

02 / GET STARTED

Build it on
your Mac.

Stark currently requires a source build. You'll need Apple's Metal tools, Rust and uv. An installer isn't available yet.

Open the setup guide
  1. 01

    Install the build tools.

    Use an Apple silicon Mac with Xcode's Metal tools, Rust 1.98.1 and uv for the converter.

  2. 02

    Convert a supported model.

    Choose a supported checkpoint and prepare it with Stark's converter. The documentation lists model compatibility and tested configurations.

    Supported models
  3. 03

    Connect Stark to your app.

    Build the generation or scoring worker, then connect it to your application using the documented interface.

    Generation guide Scoring guide

03 / THE ENGINE

Run models.
Build your app.

The building blocks for assistants, local workflows and AI features on your Mac.

01

Generate locally.

Generate text on your Mac and connect it to your application. You control the chat experience and tools.

02

Score decisions directly.

Get candidate scores and probabilities for applications that make structured decisions.

03

Prepare your models.

Convert supported Hugging Face and MLX checkpoints for Stark. Check model compatibility before getting started.

BUILD COMMANDS
cargo +1.98.1 build --release --locked \
  -p stark-generate

./target/release/stark-generate \
  --model-path /path/to/converted-model
Run from the repository folder

BUILT IN THE OPEN

Inspect the work.