Instructions to use manjunathshiva/Muse-Glimmer-30B-tq4-g64 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use manjunathshiva/Muse-Glimmer-30B-tq4-g64 with MLX:
# Make sure mlx-vlm is installed # pip install --upgrade mlx-vlm from mlx_vlm import load, generate from mlx_vlm.prompt_utils import apply_chat_template from mlx_vlm.utils import load_config # Load the model model, processor = load("manjunathshiva/Muse-Glimmer-30B-tq4-g64") config = load_config("manjunathshiva/Muse-Glimmer-30B-tq4-g64") # Prepare input image = ["http://images.cocodataset.org/val2017/000000039769.jpg"] prompt = "Describe this image." # Apply chat template formatted_prompt = apply_chat_template( processor, config, prompt, num_images=1 ) # Generate output output = generate(model, processor, formatted_prompt, image) print(output) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use manjunathshiva/Muse-Glimmer-30B-tq4-g64 with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "manjunathshiva/Muse-Glimmer-30B-tq4-g64"
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "manjunathshiva/Muse-Glimmer-30B-tq4-g64" } ] } } }Run Pi
# Start Pi in your project directory: pi
- OpenClaw new
How to use manjunathshiva/Muse-Glimmer-30B-tq4-g64 with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "manjunathshiva/Muse-Glimmer-30B-tq4-g64"
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "manjunathshiva/Muse-Glimmer-30B-tq4-g64" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Hermes Agent
How to use manjunathshiva/Muse-Glimmer-30B-tq4-g64 with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "manjunathshiva/Muse-Glimmer-30B-tq4-g64"
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default manjunathshiva/Muse-Glimmer-30B-tq4-g64
Run Hermes
hermes
Muse-Glimmer-30B-tq4-g64
4-bit TurboQuant build of meta-models/Muse-Glimmer-30B for Apple Silicon / MLX.
14.88 GiB, and it scores better than the affine 4-bit build that is 5 GB larger.
Why this build exists
| build | size | PPL ↓ | decode |
|---|---|---|---|
mlx-community/Muse-Glimmer-30B-4bit |
19.88 GiB | 4.3798 | 26.1 tok/s |
this build (tq4-g64) |
14.88 GiB | 4.3315 | 9.4 tok/s |
tq3-g64 |
12.53 GiB | 5.0454 | 10.9 tok/s |
800-token fixed-passage perplexity, greedy, Apple M4 Max 64 GB, same harness for every row. Lower is better.
Two honest notes on that table:
- Decode is 2.4–2.8× slower than affine 4-bit. TurboQuant decodes a Lloyd-Max codebook and applies an online Hadamard rotation; MLX's affine path is simpler and faster. If you want maximum tokens/sec and have the memory, use the mlx-community build. This build is for when the 5 GB matters.
- The size win is not magic. The affine build leaves
embed_tokensand the entire 50-layer vision tower in bf16 — 3.3B parameters, most of its extra 5 GB. This build quantizes them.
Install
pip install "turboquant-mlx-full[vlm]>=0.21.1"
That is the whole install. [vlm] pulls mlx-vlm >= 0.6.12, the first
release carrying the muse_glimmer model classes
(PR #1838, merged 2026-08-10).
Following older instructions? They pinned
mlx-vlmto a git commit and forcedtransformers==5.15.0. Both are obsolete, and the git pin is now actively wrong: the merged #1838 moved the embedding norm out ofNormedEmbedding, and turboquant-mlx **< 0.21.0 crashes against it** withAttributeError: module '...muse_glimmer.language' has no attribute 'NormedEmbedding'. Use>= 0.21.1and drop every pin.
Sanity-check before downloading 15 GB:
python -c "
import turboquant_mlx; print(turboquant_mlx.__version__)
from mlx_vlm.models import muse_glimmer; print('muse_glimmer OK')"
Usage
python -m turboquant_mlx.generate_vlm \
--model manjunathshiva/Muse-Glimmer-30B-tq4-g64 \
--prompt "Explain what a Hadamard rotation does to a weight distribution." \
--max-tokens 512
# with an image
python -m turboquant_mlx.generate_vlm \
--model manjunathshiva/Muse-Glimmer-30B-tq4-g64 \
--image chart.png --prompt "What does this chart show?" --max-tokens 512
Muse Glimmer emits a reasoning channel before its answer. Pass
--reasoning low|medium|high|xhigh to control how long it deliberates — the
default is high, which spends hundreds of tokens before a short answer and is
most of the wall clock on a slow machine. --no-think asks for the least it
supports (there is no "off" level, so it still thinks briefly). Meta recommends
temperature 1.0, top_p 0.95, top_k 64.
Serve it (OpenAI-compatible)
turboquant-serve-vlm \
--model manjunathshiva/Muse-Glimmer-30B-tq4-g64 \
--reasoning-strength low --port 8080
turboquant-serve wraps mlx_lm.server, which cannot load multimodal
architectures — use turboquant-serve-vlm (0.21.1+), which drives mlx-vlm's
server: OpenAI and Anthropic routes, per-model tool parsers, continuous
batching.
Tool calling works — finish_reason: tool_calls with correct name and
arguments, and tool-result round trips answer correctly. Two Muse-specific
problems are handled for you, and both fail silently if you serve this model
any other way:
- The reasoning channel is kept out of
content. Muse answers in a harmony-style channel format, and the ATEM tool parser only strips that envelope when a tool call was parsed. So tool turns look fine while an ordinary turn hands the caller the model's private deliberation as its reply. Here it goes toreasoning_content, where it belongs. reasoning_effortactually reaches the template. OpenAI clients sendreasoning_effort; this template only readsreasoning_strength, and otherwise deliberates at itshighdefault. Requests are translated, and--reasoning-strengthsets the default for clients that send nothing — which is most agent harnesses. Measured: a tool-result turn cost 54 completion tokens atlowversus 106 athigh, for the same answer.
Agentic coding & vision — measured
OpenCode: 3/3 pass. Task: a repo with a planted off-by-one in
average() and a failing pytest suite; the prompt gives the exact venv command
and asks to run → find → fix → re-run. Every run executed the given command
first try, made the correct minimal edit (sum(values) / len(values)), and left
the test file byte-identical to a fresh reference — a pass here means the bug
was really fixed, not that the tests were edited until they agreed.
| runs | wall clock | requests | tool actions |
|---|---|---|---|
3 at --reasoning-strength low |
547 / 658 / 658 s | 7 | 4 |
1 at medium |
727 s | 8 | 5 |
No run drifted: action counts stayed in a tight band, with none of the
cross-turn perseveration that sinks smaller/harsher quantizations in agent
harnesses. medium passes too but buys nothing measurable — stay on low.
Vision: 4/4, against mlx-community/Muse-Glimmer-30B-4bit as a control at
4/4. OCR of rendered text, counting with distractor shapes, reading which bar of
a chart is tallest, and naming the shape in the top-left — all correct, ~11–13 s
per image.
That control matters: this build quantizes embed_tokens and the entire
50-layer ViT-G/14 vision tower, which the affine 4-bit build leaves in bf16.
Compressing them cost nothing measurable on these cases. Caveat: 4/4 vs 4/4 means
no regression detected, not identical vision quality — these are clean
synthetic images with unambiguous answers, not a vision benchmark.
Fixed in 0.21.1 — use it for agents. On 0.21.0 the model completes the
work but never emits a closing summary, and every run ends at the passing test.
That was a serving bug, not the model: ATEM's tool_call_start is
to=self<|message|>, the same string Muse Glimmer opens every turn with, so
mlx-vlm's streaming content suppressor latched on the first reasoning token and
dropped everything after it. Any client that declares tools saw an empty final
message. Re-verified after the fix: prose after the passing test goes 0 → 6
lines on both builds, with tool calls, action counts and the test-file md5
unchanged.
Full method, per-run numbers and reproduce steps:
docs/RESULTS_MUSE.md.
Will it fit my Mac?
Real turboquant-plan output for this model, on an M4 Max 64 GB:
Model
type muse_glimmer (turboquant 4-bit g64)
weights (exact) 15.97 GB
Machine
Metal working set 55.66 GB ← the real ceiling
system RAM 68.72 GB
Projection at 16,384 tokens of context
weights 15.97 GB
KV cache 0.30 GB (17.9 KB/token, hybrid: 13/52 full-attention, 39 sliding (window 2048))
prefill workspace 6.70 GB (estimate, at --prefill-step-size 2048)
runtime reserve 1.00 GB (buffer cache, activations, fragmentation)
----------------------------------
peak 23.97 GB of 61.85 GB usable 37.88 GB headroom
Verdict: ✅ RESIDENT — fits fully in memory
Check your own machine before downloading 15 GB:
turboquant-plan --model manjunathshiva/Muse-Glimmer-30B-tq4-g64 --ram-gb 32
The KV cache is unusually cheap here — 17.9 KB/token, 0.30 GB at 16K context — because 39 of 52 layers use a 2048-token sliding window. Long context costs far less than the parameter count suggests.
32 GB Macs: comfortable. 24 GB: workable with a smaller
--prefill-step-size. 16 GB: use
tq3-g64
instead — it is measured running resident on a 16 GB Mac mini, this build is
2 GB too large for that.
How it was made
python -m turboquant_mlx.convert_vlm \
--hf-path meta-models/Muse-Glimmer-30B \
--mlx-path ./Muse-Glimmer-30B-tq4-g64 \
--bits 4 --group-size 64 --quantize-extras --extras-bits 4
Data-free: randomized Hadamard rotation to Gaussianize the weights, per-group
RMS scaling, then nearest Lloyd-Max centroid. No calibration set. The
transformer linears are 4-bit polar codebook (4.25 bpw); lm_head, the
embedding and the vision tower are 4-bit affine.
lm_head is deliberately affine, not polar. At 202048 × 6656 = 1.345B
parameters it is 10× the largest MLP matrix, and TurboQuant's dense prefill path
would materialize it — costing ~19 GB of transient peak to save 0.21 GB on disk.
Limitations
- Slower decode than affine 4-bit (9.4 vs 26.1 tok/s). Known and expected.
- Needs mlx-vlm >= 0.6.12 and turboquant-mlx >= 0.21.1; older turboquant-mlx crashes against the merged mlx-vlm.
- Perplexity is a single 800-token passage on one domain — a size/quality sanity check, not a broad evaluation. Meta's published benchmark numbers are for the bf16 model and have not been re-measured here.
- The vision tower is quantized to 4-bit affine and its effect on fine-grained visual tasks (OCR, ScreenSpot-style grounding) has not been measured.
- No agentic/tool-calling validation has been run on this build.
Licence
Apache-2.0, inherited from the base model. LICENSE and Meta's
USAGE_POLICY.md are included in this repo; the usage policy applies to
derivatives.
- Downloads last month
- -
Quantized
Model tree for manjunathshiva/Muse-Glimmer-30B-tq4-g64
Base model
meta-models/Muse-Glimmer-30B