Article summary — original

Meta Releases Muse Glimmer: Open-Source 30B Multimodal Model for Local and Agentic Workflows Meta has released Muse Glimmer, an Apache 2.0-licensed 30B dense multimodal model distilled from Muse. Designed for local agentic tasks, coding, and document analysis, the model pairs a 2B vision encoder with a 28B text decoder and offers day-0 support across transformers, llama.cpp, and vLLM. Muse Glimmer is a dense 30B parameter model comprising a 2B Perception Encoder and a 28B text decoder under an Apache 2.0 license. The text decoder features hybrid sliding-window/full attention with Gated Grouped-Query Attention, while the vision encoder processes images and audio-free video up to 96 frames. The model achieves 76.0 on SWE-Bench Verified, 94.7 on AIME 2026, 75.5 on MCP Atlas, and 74 on MMMU Pro. Fine-tuning ranges from a single 80 GB H100 for LoRA SFT to 8x 80 GB H100s for full SFT, with full-finetune GRPO generally exceeding 8 GPUs. Muse Glimmer supports automated local GGUF conversion, managed vLLM endpoint deployment, and self-optimization on single-H100 serving stacks. Model Architecture and Vision Processing Muse Glimmer combines a 2B ViT-style Perception Encoder with a 28B text decoder. The text decoder consists of 52 total layers organized into 13 cycles of three 2,048-token sliding-window layers using RoPE followed by one full-attention layer using NoPE to capture both relative distance and global context. It employs Gated Grouped-Query Attention with a 16:1 query-to-key-value head ratio to lower KV-cache usage by 16x, alongside Q-K RMS normalization. The 50-layer Perception Encoder handles both images and videos without audio, patchifying inputs into 2 frames by 3 channels by 14x14 patches and applying 2D RoPE. Neighboring spatial tokens are merged 4x via pixel shuffle before entering the shared embedding space. Video inputs sample up to 96 frames at 2 frames per second with timestamped placeholders. Benchmark Evaluations In agentic tasks, Muse Glimmer-30B High Reasoning scored 75.5 on MCP Atlas, 74.6 on DeepSearch QA, 47.6 on WildClawBench, 953 on GDPval-AA, and 65.9 on OSWorld-Verified. On agentic coding benchmarks, it recorded 76.0 on SWE-Bench Verified, 51.2 on SWE-Bench Pro, and 51.7 on TerminalBench 2.1. In general reasoning and STEM evaluations, it scored 94.7 on AIME 2026, 83.5 on GPQA Diamond, and 22.0 on Humanity's Last Exam (Text + No Tools). Multimodal results include 78.8 on Charxiv Reasoning, 75.8 on OmniDocBench v1.5, and 74 on MMMU Pro. Safety benchmarks registered a 26.4 violation rate on CI Memories and a 28.4 attack success rate on Siren AgentDojo. Hardware and Fine-Tuning Specifications Serving and evaluating Muse Glimmer in BF16 requires a single 80 GB H100 GPU. Fine-tuning via TRL requires one 80 GB H100 with microbatch 1 and gradient checkpointing for LoRA SFT, while Full SFT requires eight 80 GB H100 GPUs utilizing FSDP or ZeRO-3. For GRPO reinforcement learning, LoRA GRPO can run slowly on a single 80 GB H100 or across eight H100s partitioned into four rollout and four training nodes; full-finetune GRPO is noted as typically requiring more than eight GPUs. Serving, Local Deployment, and Speculative Decoding Muse Glimmer operates across NVIDIA, AMD, and Intel GPUs, with inference support in vLLM, transformers, and llama.cpp. In llama.cpp, calibrated quantizations such as Q4_K_M are available alongside DFlash speculative decoding, which proposes up to 15 tokens per step. When configured with Hugging Face MCP and AGENTS.md, the model can inspect local system resources, search for or quantize compatible GGUFs via convert_hf_to_gguf.py and llama-quantize, and launch an OpenAI-compatible llama-server. Automated Endpoints and Agentic Workflows Muse Glimmer can deploy itself to Hugging Face Inference Endpoints using vLLM on minimal suitable accelerators with scale-to-zero capabilities, preserving rollback settings and validating API endpoints. It can integrate with the Claw agent using stored secrets. Furthermore, the model can execute an automated self-optimization protocol on a single-H100 serving stack to systematically maximize valid token throughput, stopping after six consecutive regressions. It also functions as a research agent inside Gradio Spaces via read-only Hugging Face MCP connections to Hub repositories, datasets, and papers.

Article summary — zh

Meta开源30B多模态智能体模型Muse Glimmer Meta推出了采用Apache 2.0协议开源的30B密集型多模态模型Muse Glimmer。该模型专为本地智能体、代码和文档分析等场景打造,首日适配主流推理框架,并支持自主部署与吞吐优化流程。 模型由2B视觉感知编码器和28B文本解码器组成,采用Apache 2.0开源并支持DFlash投机解码。 解码器采用滑动窗口与全注意力结合的混合注意力机制,配合GQA使KV缓存显存占用减少16倍。 覆盖多项通用推理、代码、多模态及智能体基准测试,支持NVIDIA、AMD和Intel GPU推理与TRL微调。 能够结合模型上下文协议(MCP)自主检索GGUF权重部署本地服务、构建HF端点并实施吞吐自优化。 混合注意力与编码架构 Muse Glimmer包含2B参数的ViT视觉编码器和28B参数的文本解码器。文本解码器共52层,以3层滑动窗口注意力与1层全注意力为周期重复13次,结合RoPE与NoPE分别维持相对距离和全局上下文,并通过GQA共享键值头以缩减16倍KV显存。视觉编码器支持图像及最高96帧的无音频视频输入,经2x2像素重排降低4倍视觉标记后映射至文本空间。 基准测试成绩与硬件需求 在智能体与多模态基准测试中,Muse Glimmer在SWE-Bench Verified取得76.0分,AIME 2026取得94.7分,OmniDocBench v1.5取得75.8分。硬件适配方面,推理与LoRA SFT单张80GB H100显存即可运行,全量SFT微调则需8张80GB H100,并获得transformers、llama.cpp、vLLM以及HF推理端点的全面支持。 自主本地与云端部署流程 通过集成Hugging Face MCP与AGENTS.md配置,该模型可检测运行环境并自动查找或转换Q4_K_M格式的GGUF文件,拉起兼容OpenAI格式的llama-server本地服务。在云端场景下,模型可自行验证鉴权、检查仓库与配置,在最小可用加速器上部署托管的vLLM推理端点并完成接口健康检查。 吞吐自优化与研究智能体机制 在单张H100服务栈中,Muse Glimmer能够执行严格的自优化协议:在固定采样与提示词等参数的前提下逐项测试可逆改动,保留提升、回滚衰减,连续6次回退或预算耗尽即止。此外,模型还能在Gradio Space中充当研究智能体,通过MCP只读访问Hub模型、数据集和论文等资源。

Saved original article

Great news from the OGs of open source LLMs! Muse Glimmer, released today, is Meta’s new multimodal model, especially designed for local agentic use cases. Distilled from Muse to 30B parameters, and released under the Apache 2.0 license , it’s ideal deploying locally for privacy, reducing costs, or just hacking around. It’s intended for privacy-aware applications such as coding, document analysis, personal assistants, Claw- or Hermes-like setups. To celebrate, we are shipping with Meta day-0 support in transformers , llama.cpp , vLLM , Inference Endpoints, and other libraries. We built a few cool things and explain our findings in this blog. Check out the demos below for inspiration. You can find Muse Glimmer on the Hugging Face Hub . Benchmarks Benchmark results Scores are reported as published. Bold indicates the best result among the compared models; ↓ indicates lower is better. Category Benchmark Muse Glimmer-30B High Reasoning Gemma4-31B Thinking Mode Qwen3.6-27B Thinking Mode General Agentic MCP Atlas 75.5 54.2 62.5 General Agentic DeepSearch QA 74.6 61.7 71.1 General Agentic τ³-Banking 23.5 15.1 16.7 General Agentic WildClawBench 47.6 37.6 43.2 General Agentic GDPval-AA 953 811 1141 General Agentic GAIA2 43.3 36.4 40.0 General Agentic SkillsBench (With Skills) 44.3 32.4 46.6 General Agentic OSWorld-Verified 65.9 58.5 75.6 Agentic Coding SWE-Bench Pro 51.2 36.9 50.2 Agentic Coding SWE-Bench Verified 76.0 66.6 77.2 Agentic Coding TerminalBench 2.1 51.7 43.4 60.7 Agentic Coding SciCode 43.6 43.4 39.8 Multimodal Charxiv Reasoning 78.8 77.7 78.4 Multimodal ScreenSpot Pro 75.4 75.9 76.1 Multimodal OmniDocBench v1.5 75.8 72.5 77.8 Multimodal MMMU Pro 74 73 75 Safety CI Memories Violation (↓): 26.4 Coverage: 64.8 Violation (↓): 12.1 Coverage: 53.0 Violation (↓): 53.4 Coverage: 66.9 Safety Siren AgentDojo Attack Success Rate (↓): 28.4 Utility: 94.2 Attack Success Rate (↓): 25.6 Utility: 90.8 Attack Success Rate (↓): 40.3 Utility: 92.7 General Capabilities and Reasoning IFBench 77.0 76.0 70.8 General Capabilities and Reasoning AIME 2026 94.7 89.2 94.1 General Capabilities and Reasoning GPQA Diamond 83.5 85.7 84.2 General Capabilities and Reasoning Humanity’s Last Exam (Text + No Tools) 22.0 23.6 23.1 General Capabilities and Reasoning AA-LCR 80.0 68.3 73.3 General Capabilities and Reasoning Beam 128K 65.1 58.2 63.0 Architecture Muse Glimmer is a dense 30B parameter model consisting of: 2B ViT-style encoder for vision (Perception Encoder) 28B parameter text decoder In addition to the main VLM, there’s also a speculative decoding drafter implemented on DFlash. Usage of this module is optional, and it can provide much faster generation in exchange for some memory cost. We found this drafter to be particularly well suited to structured content generation such as coding. Text Decoder The language model uses the following architecture components: Hybrid attention: Alternating between three sliding window layers (of 2,048 tokens) using rotary position embedding, followed by a fourth layer that uses full attention and NoPE (no positional embedding). The pattern is therefore (SWA, SWA, SWA, Full), repeated 13 times to a total of 52 layers. This allows the model to retain relative order and distance information with RoPE and preserve information globally with NoPE. Gated Grouped-Query Attention: Each key-value head is shared by 16 query heads, which reduces KV-cache memory by 16x and makes generation faster and cheaper. Q-K normalization with extra query scaling: Before computing attention, Muse Glimmer applies RMS normalization to every query and key head to keep attention logits stable. After this, queries are multiplied by a scale factor to set the target logit scale after normalization. The extra query scaling behaves like an inverse temperature at the softmax level. Perception Encoder Muse Glimmer uses one image encoder to handle both images and videos. Unlike the relatively small vision encoders used in other VLMs, this is a sizable 2B ViT-like model designed after the Perception Encoder architecture. Perception Encoder was previously introduced by Meta as a backbone for various downstream spatial and multimodal tasks . The encoder patchifies images to a shape of 2 frames x 3 channels x 14 x 14, and passes them through a linear layer for projection. An interpolated absolute position embedding from a learned position table is then added to these embeddings. These are then sent to the vision tower which consist of 50 layers and GELU MLPs. Similar to the language model, the attention pattern consists of three window attention layers followed by one full attention layer. Inside the attention layers, 2D RoPE is applied to the queries and keys. After transformer, pixel shuffle concatenates 2x2 groups of neighboring spatial tokens which reduces the number of image tokens 4x without discarding their channels. The merged features are then projected to the shared embedding space of the text decoder. Videos go through the same encoder frame by frame, where each frame is converted into patches (of shape [batch, temporal groups, grid height, grid width, 2 frames, 3 channels, 14, 14]). The processor targets 2 frames per second and caps the clip at 96 frames sampled evenly across video. The processor creates timestamped video placeholders, interleaving text with frame e.g. “Time: 0.0s <|video|> x N” in which the final video embeddings are replaced before the final projection layer. Transformers Upgrade transformers to the latest version to be able to use Muse Glimmer. pip install --upgrade transformers accelerate Muse Glimmer comes with day-0 support in transformers, both for the main model and the speculative decoding drafter. You can use AutoModelForMultimodalLM and AutoProcessor classes to load the model and the processor. from transformers import AutoProcessor, AutoModelForMultimodalLM MODEL_ID = "meta-models/Muse-Glimmer-30B" # Load model processor = AutoProcessor.from_pretrained(MODEL_ID) model = AutoModelForMultimodalLM.from_pretrained( MODEL_ID, dtype= "auto" , device_map= "auto" ) The same snippet runs unchanged on NVIDIA (CUDA), AMD (ROCm) and Intel (XPU) GPUs, device_map="auto" places the model on whichever accelerator is available. Text-only Inference After loading the model, you can do text-only inference with it as follows. from transformers import AutoProcessor, AutoModelForMultimodalLM MODEL_ID = "meta-models/Muse-Glimmer-30B" # Load model processor = AutoProcessor.from_pretrained(MODEL_ID) model = AutoModelForMultimodalLM.from_pretrained( MODEL_ID, dtype= "auto" , device_map= "auto" ) # Prompt messages = [ { "role" : "user" , "content" : "Write a short joke about saving RAM." }, ] # Process input inputs = processor.apply_chat_template( messages, tokenize= True , return_dict= True , return_tensors= "pt" , add_generation_prompt= True , reasoning_strength= "low" ).to(model.device) input_len = inputs[ "input_ids" ].shape[- 1 ] # Generate output outputs = model.generate(**inputs) response = processor.decode(outputs[ 0 ][input_len:], skip_special_tokens= False ) print (response) Prompting the model with images and text We would need torchvision to be able to use images and text. pip install torchvision Muse Glimmer accepts images as input, as demonstrated here: from transformers import AutoProcessor, AutoModelForMultimodalLM MODEL_ID = "meta-models/Muse-Glimmer-30B" # Load model processor = AutoProcessor.from_pretrained(MODEL_ID) model = AutoModelForMultimodalLM.from_pretrained( MODEL_ID, dtype= "auto" , device_map= "auto" ) # Images + Text messages = [ { "role" : "user" , "content" : [ { "type" : "image" , "image" : "https://huggingface.co/datasets/merve/vl-test-suite/resolve/main/SF.png" }, { "type" : "text" , "text" : "What is shown in this image?" } ] } ] inputs = processor.apply_chat_template( messages, tokenize= True , return_dict= True , return_tensors= "pt" , add_generation_prompt= True , reasoning_strength= "low" ).to(model.device) input_len = inputs[ "input_ids" ].shape[- 1 ] # Generate output outputs = model.generate(**inputs) response = processor.decode(outputs[ 0 ][input_len:], skip_special_tokens= False ) print (response) Video Inference To work with videos we recommend installing torchcodec into the environment. pip install torchcodec Muse Glimmer can answer complex questions about videos without audio . You can do video inference as follows, here’s an example from VideoMME2, which is the most popular video question answering benchmark. from transformers import AutoProcessor, AutoModelForMultimodalLM MODEL_ID = "meta-models/Muse-Glimmer-30B" # Load model processor = AutoProcessor.from_pretrained(MODEL_ID) model = AutoModelForMultimodalLM.from_pretrained( MODEL_ID, dtype= "auto" , device_map= "auto" ) # Videos + Text messages = [ { "role" : "user" , "content" : [ { "type" : "video" , "video" : "https://huggingface.co/datasets/merve/vl-test-suite/resolve/main/IMG_8137.mp4" }, { "type" : "text" , "text" : "Describe what happens in this video." }, ], }, ] inputs = processor.apply_chat_template( messages, tokenize= True , return_dict= True , return_tensors= "pt" , add_generation_prompt= True , reasoning_strength= "low" , processor_kwargs={ "num_frames" : 96 }, ).to(model.device) input_len = inputs[ "input_ids" ].shape[- 1 ] outputs = model.generate(**inputs) response = processor.decode( outputs[ 0 , input_len:], skip_special_tokens= False , ) print (response) Multimodal tool calling Muse Glimmer can do multimodal tool calling, here’s how you can do it. In the example below, we ask the model to call the weather tool based on the city in the image. import json import re from transformers import AutoProcessor, AutoModelForMultimodalLM MODEL_ID = "meta-models/Muse-Glimmer-30B" # Load model processor = AutoProcessor.from_pretrained(MODEL_ID) model = AutoModelForMultimodalLM.from_pretrained( MODEL_ID, dtype= "auto" , device_map= "auto" ) tools = [ { "type" : "function" , "function" : { "name" : "weather.get" , "description" : "Get the current weather for a city." , "parameters" : { "type" : "object" , "properties" : { "city" : { "type" : "string" }, }, "required" : [ "city" ], }, }, } ] messages = [ { "role" : "user" , "content" : [ { "type" : "image" , "image" : "https://huggingface.co/datasets/merve/vl-test-suite/resolve/main/SF.png" }, { "type" : "text" , "text" : "I'm going to the city in this picture. What clothes should I wear?" }, ], }, ] inputs = processor.apply_chat_template( messages, tools=tools, tokenize= True , return_dict= True , return_tensors= "pt" , add_generation_prompt= True , reasoning_strength= "low" ).to(model.device) input_len = inputs[ "input_ids" ].shape[- 1 ] outputs = model.generate(**inputs) response = processor.decode(outputs[ 0 ][input_len:], skip_special_tokens= False ) print (response) Object Detection You can use Muse Glimmer to do open ended object detection in images as follows. from transformers import AutoProcessor, AutoModelForMultimodalLM MODEL_ID = "meta-models/Muse-Glimmer-30B" # Load model processor = AutoProcessor.from_pretrained(MODEL_ID) model = AutoModelForMultimodalLM.from_pretrained( MODEL_ID, dtype= "auto" , device_map= "auto" ) messages = [{ "role" : "user" , "content" : [ { "type" : "image" , "image" : "https://huggingface.co/datasets/merve/vl-test-suite/resolve/main/SF.png" }, { "type" : "text" , "text" : ( "Detect the bridge. Return only the detection in the model's " "native object-detection format, with no explanation." ), }, ], }] inputs = processor.apply_chat_template( messages, tokenize= True , return_dict= True , return_tensors= "pt" , add_generation_prompt= True , reasoning_strength= "low" , ).to(model.device) input_len = inputs[ "input_ids" ].shape[- 1 ] outputs = model.generate(**inputs, max_new_tokens= 128 ) response = processor.decode(outputs[ 0 ][input_len:], skip_special_tokens= False ) detections = json.loads(response.removesuffix( "<|eot|>" )) print (detections) Here is an end to end script to perform object detection GitHub Gist Llama.cpp Muse Glimmer comes with day-0 llama.cpp support. Meta has distributed calibrated quants in this repo , and Unsloth is releasing optimized quants as well. DFlash speculative decoding is supported as well. You can use a pre-built llama binary to start a llama server or a CLI. To install llama.cpp, run: curl -LsSf https://llama.app/install.sh | sh Then you can start the server as follows. llama serve -hf meta-models/Muse-Glimmer-30B-GGUF Once the server has started, you can head to localhost:8080 to chat with the built-in WebUI. You can also query the server as follows. curl http://localhost:8080/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Write a limerick about python exceptions"} ] }' You can also use llama server with coding agents like Pi. Speculative Decoding DFlash uses a lightweight block-diffusion drafter model to provide same output with extra speed-ups in decoding phase. Transformers and llama.cpp ship support for DFlash drafter of Muse Glimmer day-0. Below you can see how speculative decoding can speed-up generation in realistic setups. The video shows llama.cpp webui with DFlash on the left and regular generation on the right. Speculative Decoding with transformers You can load the drafter and model as follows, and infer like how you would with base model with an additional parameter (shown in the upcoming snippets). import torch from transformers import AutoProcessor, MuseGlimmerAssistantModel, MuseGlimmerForConditionalGeneration model_id = "meta-models/Muse-Glimmer-30B" assistant_model_id = "meta-models/Muse-Glimmer-30B-assistant" target = MuseGlimmerForConditionalGeneration.from_pretrained(model_id, dtype=torch.bfloat16, device_map= "auto" ) assistant = MuseGlimmerAssistantModel.from_pretrained(assistant_model_id, dtype=torch.bfloat16, device_map= "auto" ) processor = AutoProcessor.from_pretrained(model_id) messages = [ { "role" : "user" , "content" : [ { "type" : "image" , "url" : "https://huggingface.co/datasets/merve/vl-test-suite/resolve/main/SF.png" }, { "type" : "text" , "text" : "What is shown in this image?" } ] } ] inputs = processor.apply_chat_template( messages, tokenize= True , return_dict= True , return_tensors= "pt" , add_generation_prompt= True , reasoning_strength= "low" ).to(target.device) input_len = inputs[ "input_ids" ].shape[- 1 ] outputs = target.generate( **inputs, assistant_model=assistant, speculation_type= "dflash" , do_sample= True ) response = processor.decode(outputs[ 0 ][input_len:], skip_special_tokens= False ) print (response) Speculative Decoding with llama.cpp You can start llama server using following command. --spec-draft-n-max argument controls how many future tokens DFlash proposes during each speculative-decoding step. Muse Glimmer’s DFlash model was trained with a block size of 16, one anchor token plus 15 proposed tokens, so any value above 15 will be clamped to 15. llama serve -hf meta-models/Muse-Glimmer-30B-GGUF --spec-type draft-dflash --spec-draft-n-max 15 You can also use llama cli with speculative decoding drafter as follows. llama cli -hf meta-models/Muse-Glimmer-30B-GGUF --spec-type draft-dflash Inference Endpoints For a managed, autoscaling deployment, open the Muse Glimmer 30B Inference Endpoints preset . The model is already selected: choose the organization, cloud provider, region, compatible GPU instance, authentication, and autoscaling settings, then review the hourly price and click Create Endpoint . Once its status is Running , you can test it in the Playground and copy the endpoint URL and model name from the Overview. The deployed model exposes an OpenAI-compatible Chat Completions API. Keep your Hugging Face token in an environment variable, set HF_ENDPOINT_URL to the URL shown in the Overview without /v1 , and set HF_ENDPOINT_MODEL to the endpoint's model name. export HF_TOKEN= "hf_..." export HF_ENDPOINT_URL= "https://<endpoint-id>.<region>.<cloud>.endpoints.huggingface.cloud" export HF_ENDPOINT_MODEL= "<endpoint-model-name>" pip install --upgrade openai import os from openai import OpenAI client = OpenAI( base_url= f" {os.environ[ 'HF_ENDPOINT_URL' ].rstrip( '/' )} /v1/" , api_key=os.environ[ "HF_TOKEN" ], ) response = client.chat.completions.create( model=os.environ[ "HF_ENDPOINT_MODEL" ], messages=[ { "role" : "system" , "content" : "You are a helpful assistant." }, { "role" : "user" , "content" : "Write a limerick about Python exceptions." }, ], max_tokens= 256 , ) print (response.choices[ 0 ].message.content) See the Inference Endpoints documentation for configuration, autoscaling, security, logs, and monitoring. Support for Muse Glimmer vLLM with transformers backend For this release, we ship support for vLLM with transformers backend. # tensor parallel serving across 4 GPUs vllm serve meta-models/Muse-Glimmer-30B --model-impl transformers --tensor-parallel-size 4 # infer curl -s http://127.0.0.1:8000/v1/chat/completions \ -H 'Content-Type: application/json' \ -d '{ "model": "meta-models/Muse-Glimmer-30B", "messages": [ {"role": "user", "content": "Explain tensor parallelism briefly."} ], "temperature": 0.0, "max_tokens": 256 }' Fine-tuning with TRL You can use TRL to fine-tune Muse Glimmer using various methods from SFT to Async GRPO. We have run two experiments on bf16 with Hopper-class GPUs with 80GB VRAM each. Workload Practical minimum Inference / eval, BF16 1×80 GB H100 LoRA SFT, BF16 1×80 GB H100, microbatch 1 + checkpointing Full SFT, BF16 8×80 GB H100 with FSDP/ZeRO-3 LoRA GRPO, Transformers rollouts 1×80 GB H100, but slow/tight LoRA GRPO, separate vLLM rollout server 8×H100: 4 rollout + 4 training Full-finetune GRPO 8 GPUs is usually insufficient As part of this release, we ship an example to fine-tune Muse Glimmer on small split of MolmoWeb dataset . This shows how to make model generate structured outputs and how to fine-tune on images. We also experimented with running the model on OpenCode with AsyncGRPO example . Model shows strong coding capabilities, so we encourage you to try training with coding environments in OpenEnv and TRL. Demos Here are some fun ways to try out Muse Glimmer. In our opinion, the coolest thing about this model is that it is a local scale personal assistant that can code. That means you can make it do things like, quantize itself, find quantized weights on the Hub, deploy itself to inference endpoints, and even optimize itself for specific hardware! Let’s go team local 🚀 Connect OpenClaw to Muse Glimmer Assume the Inference Endpoint exposes an OpenAI-compatible /v1 API. Set HF_TOKEN in the OpenClaw gateway environment, then add this to ~/.openclaw/openclaw.json : OpenClaw configuration { models: { mode: "merge", providers: { muse: { baseUrl: "https://YOUR-ENDPOINT.endpoints.huggingface.cloud/v1", apiKey: { source: "env", provider: "default", id: "HF_TOKEN" }, api: "openai-completions", authHeader: true, models: [{ id: "meta-models/Muse-Glimmer-30B", name: "Muse Glimmer", reasoning: false, input: ["text", "image"], contextWindow: 32768, maxTokens: 8192 }] } } }, agents: { defaults: { model: { primary: "muse/meta-models/Muse-Glimmer-30B" } } } } Restart OpenClaw: openclaw gateway restart Validate from a fresh session: openclaw agent --message "Reply with: muse-ready" Use the exact model ID returned by the endpoint’s /v1/models response if it differs. Hey Muse Glimmer, quantize yourself If we hook up Muse Glimmer to the Hugging Face MCP and update its AGENTS.md we give it the capability to find a quantized version of itself on the hub and run locally. This is handy if you want to work on something private, or just cut costs. If you do this a second time, Muse Glimmer will find the cached weights and switch to them, so feel free to add a convenient command like /spawn . Muse Glimmer inspects the machine and Hub, selects or creates a Q4_K_M GGUF, launches llama-server, and validates model discovery and chat completion. The result is a smaller local build behind an OpenAI-compatible API. Here’s the prompt we added to AGENTS.md . https://huggingface.co/buckets/huggingface/muse-glimmer-assets/resolve/Muse%20Glimmer%20Quantisation%20Demo%20-%20explained.mp4?download=true By adding this to AGENTS.md openclaw or hermes will be able to solve the rest. Local quantization prompt ## Local model deployment When asked to deploy locally, perform the work; do not give instructions. 1. Inspect hardware and the Hugging Face cache. 2. Search the Hub for compatible GGUF weights using `apps=llama.cpp`; confirm exact filenames through the model-tree API. 3. Prefer an existing suitable GGUF, normally `Q4_K_M`. Treat `mmproj-*.gguf` as projector weights. 4. If no GGUF exists, download the source weights, convert with `convert_hf_to_gguf.py`, then quantize with `llama-quantize`. 5. Preserve source weights and record the repository, revision, filenames, and quantization. 6. Start `llama-server` with an `onyx` alias and an OpenAI-compatible endpoint. 7. Validate `/v1/models` and `/v1/chat/completions`, requiring non-empty, correct content. 8. Report concise progress and logs. Claim completion only after validation passes. Hey Muse Glimmer, deploy yourself Muse Glimmer can also take care of the opposite. Let’s get Glimmer to deploy itself on Hugging Face Inference Endpoints. Which is useful if you want to speed up on some cutting edge hardware. N.B. You can also just deploy Muse Glimmer to Inference Endpoints directly and connect your agent. Muse Glimmer pins the model revision, deploys it to a protected Hugging Face Inference Endpoint, and verifies health, model discovery, and chat completion. It then connects the Claw agent with secrets and rollback preserved. Here’s the prompt we added to AGENTS.md . Muse glimmer will also need the Hugging Face MCP and/or the Hugging Face CLI and Skills . Inference Endpoint deployment prompt ## Hugging Face Inference Endpoint deployment When asked to deploy on Hugging Face Inference Endpoints, perform the work; do not give instructions. 1. Inspect Hugging Face authentication, the current model repository, and any existing endpoints. 2. Confirm the exact model repository and immutable revision through the Hub API; inspect its architecture, configuration, and chat template. 3. Confirm that the model is supported by vLLM, then deploy or update a protected Inference Endpoint using the managed native vLLM engine. 4. Choose an available region and the smallest suitable accelerator. Use one replica and enable scale-to-zero when supported. 5. Preserve the previous endpoint configuration for rollback. Do not expose tokens, publish private weights, or replace an unrelated endpoint. 6. Wait for the endpoint to become ready. If startup fails, inspect the logs and report the actual blocker rather than repeatedly changing settings. 7. Validate `/health`, `/v1/models`, and `/v1/chat/completions`, requiring the expected model and non-empty, correct content. When agent use is required, also validate a real structured tool call. 8. Configure the Claw agent to use the endpoint's OpenAI-compatible `/v1` URL, storing credentials as secrets and retaining the previous provider as rollback. Test the connection in a fresh session. 9. Report concise progress and finish with the repository, revision, engine, hardware, endpoint URL, scaling state, and validation results. Claim completion only after every required check passes. Hey Muse Glimmer, optimize yourself Finally, let’s get Muse Glimmer to do some light RSI. We can instruct our agent to optimize its own inference engine for specific hardware, in this case a Nvidia H100. To do this, the agent will need to use another inference engine, like Inference Endpoints above. Muse Glimmer benchmarks its own single-H100 serving stack, testing one reversible change at a time while holding the workload fixed. It keeps only correctness-passing gains and finishes with the fastest reproducible configuration. Here’s the prompt we added to AGENTS.md . Muse glimmer need the Hugging Face MCP and the Hugging Face CLI and Skills . Self-optimization prompt You are Muse Glimmer acting as an autonomous inference-optimization engineer for your own serving stack. Goal: maximize valid single-H100 aggregate completion throughput in tokens/second. Protocol: 1. Establish a correctness-passing baseline. 2. Test one reversible optimization at a time. 3. Keep the prompt, concurrency, sampling, request count, warm-up, and decode length fixed. 4. Reject results that fail correctness or prefix checks. 5. Record every experiment chronologically with its configuration, raw throughput, correctness, and delta. 6. Keep improvements and revert regressions. 7. Stop after six consecutive regressions or when the experiment budget is exhausted. 8. Report the best valid configuration and exact reproduction command. Create a minimal scientific animation of the results: - white background; - raw tokens/second—never normalize; - one point revealed per experiment; - connect every point chronologically; - begin with the lowest valid result; - stop at the best result; - export as a GIF. Never fabricate, interpolate, or count correctness-failing measurements. https://huggingface.co/buckets/huggingface/muse-glimmer-assets/resolve/onyx-optimization-progress.gif?download=true Hey Muse Glimmer, research the Hub Try Muse Glimmer as a Hugging Face research agent. The Gradio Space sends each model request to a private Hugging Face Inference Endpoint through its OpenAI-compatible API. It also connects to the official Hugging Face MCP server, giving the agent read-only tools to search and inspect Hub repositories, models, datasets, Spaces, documentation, and papers. Wrapping Up We are happy to welcome Muse Glimmer to the Hugging Face Hub. Try Muse Glimmer with your local coding setups today!