โš ๏ธ REQUIRED โ€” jangtq_runtime.safetensors sidecar must be downloaded

Osaurus uses the native Swift JANGTQ runtime. Every JANGTQ bundle on OsaurusAI ships a small jangtq_runtime.safetensors sidecar (10 KBโ€“165 KB) alongside the weight shards. The Swift loader will refuse to start with the error

Error: Model '<name>' declares JANGTQ (weight_format: "mxtq") but is
       missing required sidecar file 'jangtq_runtime.safetensors'.
       Re-download the full model or obtain the sidecar from the original
       publisher.

if the file is absent.

If your local copy doesn't have it (older download, partial sync, etc):

hf download OsaurusAI/Holo3-35B-A3B-JANGTQ4 jangtq_runtime.safetensors --local-dir <your-dir>

The file holds the deterministic codebooks + Hadamard rotation signs the Swift loader uses to decode *.tq_packed weights. It must match the seed the bundle was quantized with (mxtq_seed=42).

Osaurus AI

Holo3 35B-A3B โ€” JANGTQ4 (MLX)

TurboQuant codebook quantization of H Company's Holo3 GUI-agent VLM โ€” routed experts at 4-bit via Lloyd-Max codebooks + Hadamard rotation, attention / embed / shared-expert / lm_head at 8-bit affine, vision tower preserved. The highest-quality JANGTQ profile for this family.

Website  OsaurusAI  Holo3


Model Details

Property Value
Base model Hcompany/Holo3-35B-A3B (finetune of Qwen/Qwen3.5-35B-A3B)
Parameters (source) 35 B total, ~3 B active per token
Architecture qwen3_5_moe โ€” 40 decoder layers: 30 Gated DeltaNet (linear attn) + 10 full attention, 256 routed experts + 1 always-on shared expert
Quantization format weight_format: mxtq โ€” routed experts via TurboQuant codebook (4-bit), everything else affine 8-bit or fp16 passthrough
Routed-expert storage .tq_packed (uint32) + .tq_norms (fp16) + .tq_bits (uint8); codebook + Hadamard signs re-derived deterministically at load
Package size on disk 19.68 GB across 19 shards
Shipped tensors 1,930 total (1,597 language-model + 333 vision tower + 120 routed-expert TQ triples)
Vocab 248,320
Context (position embeddings) 262,144 native
Vision tower 27-layer ViT (hidden 1152, patch 16), preserved in fp16
Chat format Qwen im_start/im_end with <think> reasoning toggle; Holo3 XML tool-call grammar
Use case GUI / computer-use agent (desktop, web, mobile) โ€” designed for screenshot โ†’ action loops

Quantization details, per tensor category

Category Bits Group / codebook Notes
Routed-expert MLP (mlp.switch_mlp.gate_proj, up_proj, down_proj) 4 (JANGTQ) 2โด Lloyd-Max centroids + Hadamard rotation .tq_packed + .tq_norms + .tq_bits triples
Embedding (embed_tokens), lm_head 8 (affine) group 64 MLX-native QuantizedLinear
Full-attention projections (q_proj, k_proj, v_proj, o_proj) 8 (affine) group 64 Gate-doubled q_proj for attn_output_gate
Linear-attention projections (in_proj_qkv, in_proj_z, in_proj_b, in_proj_a, out_proj) 8 (affine) group 64 Gated DeltaNet
Shared-expert MLP (gate_proj, up_proj, down_proj) 8 (affine) group 64 Always active per token
Router (mlp.gate) fp16 passthrough โ€” Precision-critical
Shared-expert gate (shared_expert_gate) fp16 passthrough โ€” sigmoid scalar gate
Norms (*_layernorm, *_norm), A_log, dt_bias, conv1d fp16 passthrough โ€” Un-quantized
Vision tower (333 tensors) fp16 passthrough โ€” patch_embed.proj axes pre-transposed to MLX layout

JANGTQ ("TurboQuant") stores routed-expert weights as indices into a small Lloyd-Max codebook with a per-row norm, after a randomized Hadamard rotation that concentrates the distribution so quantization error is uniform. At 4-bit, the 16-centroid codebook captures the routed-expert weight distribution tightly enough that this profile is the highest-quality JANGTQ option for qwen3_5_moe โ€” preferred over JANGTQ2 when RAM isn't the bottleneck.


Usage

JANGTQ requires our custom loader โ€” stock mlx_lm.load() can't parse .tq_packed tensors. You need jang-tools (free, public): https://github.com/jjang-ai/jangq.

pip install mlx mlx-lm mlx-vlm
git clone https://github.com/jjang-ai/jangq && pip install -e ./jangq/jang-tools

Text

from jang_tools.load_jangtq import load_jangtq_model
from mlx_lm import generate

model, tokenizer = load_jangtq_model("OsaurusAI/Holo3-35B-A3B-JANGTQ4")
print(generate(model, tokenizer,
               prompt="The capital of France is",
               max_tokens=64))

Image (VLM) โ€” the intended use

Holo3 is a GUI agent: give it a screenshot and it localizes UI elements and plans actions.

from jang_tools.load_jangtq_vlm import load_jangtq_vlm_model
from mlx_vlm import generate
from mlx_vlm.prompt_utils import apply_chat_template
from mlx_vlm.utils import load_config

path = "OsaurusAI/Holo3-35B-A3B-JANGTQ4"
model, processor = load_jangtq_vlm_model(path)
config = load_config(path)

prompt = apply_chat_template(
    processor, config,
    "Look at this desktop screenshot. Where should I click to open settings?",
    num_images=1,
)
print(generate(model, processor, prompt, image="path/to/screenshot.png",
               max_tokens=256))

Reasoning toggle

msgs = [{"role": "user", "content": "What is 17 ร— 23?"}]
# Reasoning OFF โ€” pre-closed <think></think> block
prompt = tokenizer.apply_chat_template(msgs, add_generation_prompt=True,
                                       enable_thinking=False)
# Reasoning ON โ€” model fills the <think> block
prompt = tokenizer.apply_chat_template(msgs, add_generation_prompt=True,
                                       enable_thinking=True)

Pass enable_thinking as a direct kwarg (the chat_template_kwargs={...} form only propagates on some tokenizer versions).

Tool calls โ€” Holo3 XML format

Holo3 emits tool calls in a custom XML grammar (not JSON). Pass tools=[...] to the tokenizer's chat template; the model responds in this shape:

<tool_call>
<function=click>
<parameter=x>
512
</parameter>
<parameter=y>
384
</parameter>
</function>
</tool_call>

Parse with a simple XML splitter on <tool_call>. See H Company's quickstart for a full agent harness example.

Video

The base model supports video via transformers and the bundle preserves video_preprocessor_config.json. mlx-vlm 0.4.4's prepare_inputs has no video path yet for qwen3_5_moe โ€” for video, use upstream transformers.


Hardware notes

19.68 GB on disk; expect ~20โ€“22 GB resident after load, plus KV cache.

Mac unified RAM Works? Notes
24 GB โœ… text-only Image inference will be tight at long context
32 GB โœ… comfortable 32 k+ context, comfortable VL
64 GB+ โœ… headroom 262 k native context

Upstream benchmarks

These are the base-model numbers for Hcompany/Holo3-35B-A3B, not evaluations of this JANGTQ4 quant:

Benchmark Score
OSWorld-Verified (computer use) 77.8 % โ€” SOTA at 3 B active
WebArena (web navigation) State-of-the-art (see upstream card)
ScreenSpot-Pro (UI localization) Top-tier (see upstream card)
OSWorld-G (visual grounding) Top-tier (see upstream card)
H Corporate Benchmark (486 enterprise tasks) Outperforms larger competitors

Independent JANGTQ-quant evaluation is tracked in the jang-tools repo and will land in future README revisions.


Citation

@misc{hai2025holo3modelfamily,
      title  = {Holo3 - Open Foundation Models for Navigation and Computer Use Agents},
      author = {H Company},
      year   = {2026},
      url    = {https://huggingface.co/Hcompany/Holo3-35B-A3B}
}

License

Apache 2.0 โ€” inherits from the base model.


Packaged on Apple Silicon with jang-tools (mlx-lm 0.31.2) by Jinho Jang (eric@jangq.ai).
ยฉ 2026 Osaurus AI โ€” osaurus.ai

Downloads last month
21
Safetensors
Model size
9B params
Tensor type
U32
ยท
F16
ยท
U8
ยท
MLX
Hardware compatibility
Log In to add your hardware

Quantized

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for OsaurusAI/Holo3-35B-A3B-JANGTQ4

Finetuned
(3)
this model