How to Run Muse Glimmer Locally

Meta released Muse Glimmer this morning: a 30B dense, Apache 2.0, image-capable agent model built for one purpose, running always-on agents on a single consumer GPU or a Mac. It is Meta's first open-weight release since the Llama era ended, it ships with its own speculative-decoding drafter and official 4-bit builds, and the whole design is an exercise in fitting a competent agent into 24GB. This guide has the exact numbers: every GGUF size, the VRAM envelope math with an interactive packer, day-one commands for llama.cpp, Ollama, and Apple Silicon, the chat template and reasoning-strength levels, agent wiring, fine-tuning, and the benchmark table including the rows it loses.

dense ~29.6B incl. vision ctx 131,072 license Apache 2.0 modality text + image in, text out format BF16 · GGUF · ExecuTorch

What it is

Muse Glimmer is a 30-billion-parameter dense model from Meta Superintelligence Labs, trained by logit distillation from the closed Muse Spark frontier family, mid-trained on long-context agent traces, and post-trained with SFT, on-policy distillation, and RL across reasoning, coding, and agentic domains. Meta's framing is specific: not a chat model, an agent model, optimized for "always-on local agent workflows," tool use, failure recovery, and multi-step tasks, with a frozen ~1.8B perception encoder so it can read screenshots, charts, and documents. Knowledge cutoff is January 4, 2026.

The release matters beyond the weights. Meta went closed in April 2026 when Muse Spark 1.0 ended the Llama open-weight era; Glimmer reverses that, and Meta says open weights for Muse Spark 1.2 itself follow in the coming weeks. The launch was coordinated, per Meta's technical blog: llama.cpp support merged day-zero with official GGUF quants from Meta, transformers 5.15.0 shipped with the architecture, vLLM and SGLang have support landing, Unsloth published dynamic quants and a fine-tuning path, and AMD published same-morning enablement for Ryzen AI Max and Radeon.

The architecture, briefly

The config is worth thirty seconds because every number below feeds the memory math, and if you have read the transformer internals guide, every row will look familiar:

ComponentValueWhy it matters here
Layers / hidden52 / 6,656dense; SwiGLU MLP at 19,968 wide
Attention heads32 query, 2 KV (GQA 16:1)an unusually aggressive KV share; tiny cache
Attention pattern3 sliding-window (2,048) : 1 full, ×13three quarters of the layers cap their cache
PositionsRoPE θ=500k on local layers, none on global layersthe NoPE-on-global recipe
Context131,072config value; no rope-scaling entry
Vocab202,048200k BPE + 2,048 special tokens
Vision~1.8B ViT-G/14, frozen, windowed 3:1separate weights; separate file in GGUF land
DrafterDFlash, 5 layers, ~2.5B, 16-token blocksships as its own repo and GGUF
Stabilityfinal logit softcap 20.0the Gemma-2-style cap, still alive in 2026

The design reads like a checklist for one goal: minimize everything that competes with weights for VRAM. GQA at 16:1 and the sliding-window layers exist so the KV cache stays negligible, which is what lets a 30B model, a vision encoder, and a speculative drafter share one consumer GPU.

The 24GB envelope

Four things must fit in memory at once: the quantized weights, the KV cache, the vision encoder (only if you want images), and the DFlash drafter (only if you want the speedup). The KV arithmetic is the surprise. The 13 full-attention layers cost 2 × 13 × 2 KV heads × 128 dims × 2 bytes = 13,312 bytes per token, about 1.74GB at the full 131,072-token context. The 39 sliding layers are capped at their 2,048-token window: a fixed 82MB no matter how long the context grows. Total KV at maximum context: under 2GB. That is why the envelope works. Pack it yourself:

Fig. 1 · the envelope packerreal file sizes + config math

Pick a quant, a context length, and a machine. Weights are exact published file sizes; KV cache is computed from the config; the line is your memory.

context = 32,768 tokens
weightsKV cachevisiondrafterruntime ~1.2GB
0

Weight sizes from the official meta-models GGUF repo and unsloth/Muse-Glimmer-30B-GGUF. KV bytes/token = 2·13·2·128·2 on full layers + a fixed 2,048-token window on 39 sliding layers. Runtime overhead is an estimate; Macs share the budget with the OS, so treat unified memory as ~75% usable.

MachineRealistic setupExpect
16GB GPU (4080) or 18GB RAMUD-Q2_K_XL or UD-IQ3, text-only, modest contextit runs; quality tax at 2-bit
24GB GPU (3090/4090)official K-Quant-17GB + vision + drafterthe target platform
32GB GPU (5090)K-Quant-Dynamic (0.2% degradation) + everything233 tok/s measured
Mac 32GB unifiedUD-Q4_K_XL via LM Studio or ExecuTorch build~38 tok/s on M4 Max w/ drafter
Mac 48GB+ / 40GB+ GPUUD-Q6/Q8 tiers, full contextheadroom for quality

Pick a quant

Meta did something unusual: it shipped its own quants, named K-Quant, in two calibrated tiers, and published the quality cost of each. K-Quant-Dynamic costs 0.2% average accuracy across their 15-benchmark suite and targets 32GB; K-Quant-17GB costs 1.0% and targets 24GB. Unsloth's dynamic UD family extends the range in both directions. Exact file sizes:

QuantFileSourceUse when
UD-Q2_K_XL12.44GBunsloth16-18GB machines; the floor
UD-Q3_K_XL13.36GBunsloth20GB-ish budgets
K-Quant-17GB16.76GBMeta, official24GB GPUs; 1.0% stated degradation
UD-Q4_K_XL15.88GBunslothUnsloth's recommended default
K-Quant-Dynamic19.65GBMeta, official32GB GPUs; 0.2% stated degradation
UD-Q6_K_XL26.27GBunsloth40GB budgets, Mac 48GB
UD-Q8_K_XL32.30GBunslothnear lossless; 48GB+
BF1655.73GBbothfull precision; 64GB VRAM target

Two companion files matter regardless of tier: mmproj-kquant.gguf (1.40GB) is the quantized perception encoder, required for any image input, and dflash-kquant.gguf (1.63GB) is the drafter. The main GGUF alone is a text-only model.

Run with llama.cpp

Support merged on release day and Meta ships official GGUFs, so the fastest path is pulling straight from Hugging Face. Meta's card recommends temperature 1.0, top-p 0.95, top-k 64, and Unsloth's commands match:

./llama.cpp/llama-cli \
  -hf unsloth/Muse-Glimmer-30B-GGUF:UD-Q4_K_XL \
  --jinja \
  --temp 1.0 --top-p 0.95 --top-k 64 \
  -ngl 99 -c 32768

Swap the repo for the official quant with -hf meta-models/Muse-Glimmer-30B-GGUF and the file of your tier. For image input, download and load the projector alongside:

hf download unsloth/Muse-Glimmer-30B-GGUF \
  --include "*UD-Q4_K_XL*" --include "*mmproj*"

./llama.cpp/llama-server \
  -hf unsloth/Muse-Glimmer-30B-GGUF:UD-Q4_K_XL \
  --mmproj mmproj-Muse-Glimmer-30B-BF16.gguf \
  --jinja -ngl 99 -c 32768 \
  --host 127.0.0.1 --port 8080

--jinja matters more than usual here: the chat template is elaborate (next section) and hand-formatting it will silently break tool calls. For the drafter speedup, the repo ships dflash-kquant.gguf; llama.cpp's speculative flags (--model-draft) are the intended slot, but DFlash is a block-diffusion drafter rather than a plain small LM, so verify current llama.cpp support in the PR discussion before assuming the full 3.1x applies outside Meta's own harness.

Ollama and LM Studio

Ollama added support in 0.32.7 the same morning, with a day-one wrinkle: the first manifest push blocked downloads (issue #17645). Once resolved on their registry:

ollama run muse-glimmer

Until then, Ollama runs any local GGUF via a Modelfile pointing at the downloaded file. LM Studio is on Meta's day-zero partner list; search for "Muse Glimmer" in the model browser, take a 4-bit tier for 32GB Macs, and load the vision variant if you want screenshots understood.

On a Mac

Two paths. The general one is GGUF via LM Studio or llama.cpp with Metal, exactly as above; count unified memory at about three quarters usable. The interesting one is Meta's own: the ExecuTorch-PTE repo ships 16 prebuilt variants, every combination of the two K-Quants, text or text+image, with or without the DFlash drafter, for Metal and for CUDA. These are the builds behind Meta's Mac numbers: 23.7 tok/s plain and 37.8 with the drafter on an M4 Max, 50.2 on an M5 Max. MLX conversions are on the partner list as "coming days" and will likely become the standard Mac path; check the mlx-community search before assuming.

vLLM and SGLang

Both are in the day-zero wave with support landing rather than landed: vLLM's model PR plus a recipes entry, SGLang's native support PR with a cookbook that installs from the branch until a release includes it. On a 24GB card there is little reason to prefer them for single-user use; they matter when you serve Glimmer to a team or want paged KV and continuous batching under an agent fleet. Unsloth also publishes an NVFP4 build for Blackwell GPUs claiming 1.45x over BF16, but it is flagged work-in-progress and non-functional at time of writing; treat it as a preview.

The agent part

This is the model's identity, and it shows up in the chat template. Three things you should know before wiring it into anything:

The template is its own format. Roles are framed as <|start|>role<|message|>...<|eot|>, the assistant writes to channels (to=self for reasoning, to=user for the reply, to=<tool> for calls), and tool calls are emitted as structured XML blocks (<atem:function_calls> with named invokes and parameters) rather than JSON strings; the template errors if tool arguments arrive as JSON text instead of a dict. If you use --jinja in llama.cpp or a serving engine that applies the bundled template, all of this is handled; if you are assembling prompts by hand, read chat_template.jinja in the repo first.

Reasoning strength is a system-prompt dial. The template auto-injects Reasoning strength: high by default; the levels are low, medium, high, and xhigh. Set it explicitly for agent workloads: low for quick tool dispatch, high or xhigh when the task needs planning. This replaces the think/no-think toggles you may know from other model families.

Scaffolds are expected, not optional. Meta's benchmarks run the model inside agent scaffolds, and the card names OpenClaw and Hermes Agent as tested pairings. Practically: serve an OpenAI-compatible endpoint and point your agent at it,

./llama.cpp/llama-server -hf unsloth/Muse-Glimmer-30B-GGUF:UD-Q4_K_XL \
  --jinja -ngl 99 -c 32768 --port 8080

# then, in your agent's config:
#   base_url: http://127.0.0.1:8080/v1
#   model: anything   (llama-server ignores the name)

and give it real tools. The launch demo is the honest picture of intended use: discover a Home Assistant instance on the network, query its APIs, write a dashboard, deploy a local server to verify. Multi-step, tool-heavy, self-checking.

Speed and the DFlash drafter

Muse Glimmer ships with its own speculative decoder, and it is the most technically interesting part of the release. DFlash is a ~2.5B block-diffusion drafter: instead of drafting tokens one by one, it proposes a block of 16 tokens in a single forward pass, reading hidden features tapped from five of the target model's layers, and the main model verifies the block in parallel. Accepted tokens are free speed; rejected ones are corrected by the main model, so output quality is mathematically unchanged, the same guarantee as any speculative decoding (mechanics in the vLLM guide's draft-and-verify figure).

HardwareWithout drafterWith drafterSpeedup
RTX 509074.9 tok/s233.4 tok/s3.1x
M5 Max26.6 tok/s50.2 tok/s1.8x
M4 Max23.7 tok/s37.8 tok/s1.5x

Meta's measurements: K-Quant-17GB weights, quantized drafter, batch 1, greedy decode; Mac via ExecuTorch, RTX via llama.cpp.

The catch to watch: those are batch-one greedy numbers in Meta's own harness, and one early skeptic on X put it well, "I'd still time a full tool loop before calling it always-on." Agentic use interleaves prefill, tool waits, and decode; expect real end-to-end sessions to feel slower than the headline number, and measure your own loop.

Benchmarks, honestly

Meta's card compares against Gemma4-31B and Qwen3.6-27B, both in thinking modes, across 24 rows; the numbers are Meta's own, one day old, unreplicated. Glimmer posts the best score on 12 of 24, beats Gemma on 19, and beats Qwen on 14. The pattern is legible: it is strongest exactly where it was aimed, and ordinary elsewhere. Selected rows, wins and losses:

BenchmarkGlimmerGemma4-31BQwen3.6-27B
MCP Atlas (agentic tool use)75.554.262.5
τ3-Banking (multi-turn agent)23.515.116.7
DeepSearch QA74.661.771.1
SWE-Bench Pro51.236.950.2
SWE-Bench Verified76.066.677.2
TerminalBench 2.151.743.460.7
OSWorld-Verified (computer use)65.958.575.6
AIME 2026 (math)94.789.294.1
GPQA Diamond83.585.784.2
Long context (AA-LCR)80.068.373.3

Read it plainly: for tool-driven agent work and long-context retrieval, the claimed lead is large. For terminal-heavy coding and computer use, Qwen3.6-27B still looks stronger on Meta's own table, which is about as credible as a vendor loss gets. Every number is day-one and vendor-reported; independent replications will land within the week and are worth waiting for before you rebase a product on it.

Fine-tune with Unsloth

Unsloth published day-one support (their kernels route Glimmer's sliding-window layers through a banded attention path). Their training page recommends LoRA or QLoRA: r=16, alpha=16, dropout 0 as the base recipe (r=32 for harder agentic behaviors), learning rate 2e-4, one to three epochs, BF16, starting at max_seq_length 4096 with packing, and QLoRA with load_in_4bit for consumer GPUs. Keep the perception encoder frozen, which is also how Meta shipped it. The obvious fine-tune targets for an agent model: your own tool schemas, your team's workflows, and domain documents the 2026-01-04 cutoff misses.

Rough edges, day one

FAQ

Is this Llama 5?

No. The Llama line ended with Llama 4; Muse is the Meta Superintelligence Labs family. Glimmer is the small open sibling, distilled from the closed Muse Spark frontier models, and Meta has said open Muse Spark 1.2 weights follow within weeks.

What does it replace in a local stack?

The 24-32GB agent slot currently held by Qwen3.6-27B and Gemma4-31B. If your workload is tool-calling agents, MCP servers, or long-context retrieval, the claimed numbers favor switching; if it is terminal coding or computer use, they favor staying.

Can it see my screen?

It reads images, screenshots, charts, and documents through its perception encoder (load the mmproj file). It is not a computer-use model out of the box, and its OSWorld score trails Qwen's; pair it with an agent scaffold that provides the click-and-type machinery.

Why is the KV cache so small?

Two KV heads against 32 query heads (16:1 grouped-query attention) plus sliding windows on three quarters of the layers. Under 2GB at full 131K context, computed from the config in the envelope figure above. The design goal was fitting agents into 24GB, and the cache is where they found the room. The mechanics behind those words are in the transformer guide.

Where do I start if I have 16GB?

UD-Q2_K_XL (12.44GB), text-only, context at 8-16K, drafter off. It fits and runs; expect the 2-bit quality tax. The model's stated floor is around 18GB of combined memory for comfortable use.

rg
Rohit Ghumare

CNCF Ambassador and Google Developer Expert. I build agent infrastructure and write about the fundamentals underneath the AI stack. All sizes and scores here are from the official model card, config, and repos, fetched on release day and cited inline; day-one facts move fast, so verify against the card before buying hardware.

Related: Inside the Transformer · Inside the vLLM Engine · All guides · X