v0.1.41-beta
anthropics/anthropic-tokenizer-typescriptv0.1.41-betaMay 19, 2026by danielhanchen
AI Summary
This beta release focuses on bug fixes and improvements to Unsloth Studio, including significant performance enhancements for MTP on Macs, CPUs, and GPUs, along with extensive UI/UX fixes and offline mode support.
Key Highlights
- Improved MTP performance significantly on Macs, CPUs, and GPUs
- Fixed 'unsloth studio update' command and reset-password page issues
- Enhanced offline mode support with environment variable handling
- Added tools, thinking blocks, code execution, and web search for safetensors
- Fixed GGUF multi-image chat handling and loss function patching for Qwen3.5
New Features
- --spec-draft-n-max toggle for MTP speculative decoding
- VRAM headroom reserved for MTP draft cache in auto-fit
- Tool calling for Llama-3, Mistral, Gemma 4 on safetensors + MLX
- Studio improvements including reduced motion support and theme handling
- Desktop launcher regeneration on unsloth studio update
Full Release Notes
## Lots of bug fixes, UI, UX fixes to Studio! To get the latest updates do: #### macOS, Linux, WSL: ```bash curl -fsSL https://unsloth.ai/install.sh | sh ``` #### Windows: ```powershell irm https://unsloth.ai/install.ps1 | iex ``` ## Fixes 1. Fix `unsloth studio update` not working well 2. Fix getting stuck on `reset-password` page 3. More offline mode support 4. Improve MTP not being faster on Macs, CPUs and GPUs - now it's much better! 5. Fix Desktop Shortcut not working after update 6. Many many UI UX bug fixes ## What's Changed in Unsloth * install scripts: bump unsloth pin to >=2026.5.3 by @danielhanchen in https://github.com/unslothai/unsloth/pull/5557 * studio: engage draft-mtp on vision MTP GGUFs (drop incorrect vision gate) by @danielhanchen in https://github.com/unslothai/unsloth/pull/5560 * install scripts: bump unsloth pin to >=2026.5.4 by @danielhanchen in https://github.com/unslothai/unsloth/pull/5566 * Studio: derive Playwright default model expectation by @Imagineer99 in https://github.com/unslothai/unsloth/pull/5589 * studio: read Playwright default model from defaults.py without importing it by @danielhanchen in https://github.com/unslothai/unsloth/pull/5595 * [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/unslothai/unsloth/pull/5586 * studio: fix toast close-button click and light-mode hover by @shimmyshimmer in https://github.com/unslothai/unsloth/pull/5597 * fix(loader): honour HF_HUB_OFFLINE/TRANSFORMERS_OFFLINE env vars by @xodn348 in https://github.com/unslothai/unsloth/pull/5598 * studio: emit one comma-chained --spec-type for CPU/Mac MTP path by @danielhanchen in https://github.com/unslothai/unsloth/pull/5575 * Fix loss function not patched for Qwen3.5 models by @rycerzes in https://github.com/unslothai/unsloth/pull/5442 * Fix GGUF multi-image chat handling by @alkinun in https://github.com/unslothai/unsloth/pull/5508 * Expose standalone tool healing utilities by @alkinun in https://github.com/unslothai/unsloth/pull/5583 * studio/frontend: reconcile stale must_change_password localStorage flag by @danielhanchen in https://github.com/unslothai/unsloth/pull/5576 * studio/frontend: cap auto-load cascade attempts by @danielhanchen in https://github.com/unslothai/unsloth/pull/5578 * studio: regenerate desktop launcher on `unsloth studio update` (macOS + Linux + Windows) by @danielhanchen in https://github.com/unslothai/unsloth/pull/5577 * ci: advisory lockfile supply-chain audit (no install-script changes) by @danielhanchen in https://github.com/unslothai/unsloth/pull/5604 * loader: import FORCE_FLOAT32 from unsloth_zoo (single source of truth) by @danielhanchen in https://github.com/unslothai/unsloth/pull/5610 * fix(peft): expose finetune_last_n_layers for parity with mlx-lm CLI by @danielhanchen in https://github.com/unslothai/unsloth/pull/5564 * studio: add --spec-draft-n-max toggle for MTP speculative decoding by @danielhanchen in https://github.com/unslothai/unsloth/pull/5582 * studio: reserve VRAM headroom for the MTP draft cache in auto-fit by @danielhanchen in https://github.com/unslothai/unsloth/pull/5585 * Studio: tools, thinking blocks, code execution and web search for safetensors by @danielhanchen in https://github.com/unslothai/unsloth/pull/5520 * studio/frontend: widen settings sidebar so 'Connections' label fits by @danielhanchen in https://github.com/unslothai/unsloth/pull/5607 * studio: respect prefers-reduced-motion across animations by @danielhanchen in https://github.com/unslothai/unsloth/pull/5611 * studio/frontend: guard message-timing badge against unphysical tok/s by @danielhanchen in https://github.com/unslothai/unsloth/pull/5570 * studio/web: differentiate offline from backend-down in fetch error by @danielhanchen in https://github.com/unslothai/unsloth/pull/5591 * studio/frontend: keep theme classes mutually exclusive on <html> by @danielhanchen in https://github.com/unslothai/unsloth/pull/5580 * studio/frontend: show Loading fallback instead of blank pane on lazy route navigation by @danielhanchen in https://github.com/unslothai/unsloth/pull/5568 * studio/frontend: include filename in attachment aria-label + img alt by @danielhanchen in https://github.com/unslothai/unsloth/pull/5594 * studio/frontend: compare composer blocks send when no model picked by @danielhanchen in https://github.com/unslothai/unsloth/pull/5574 * studio: restore focus to opener when settings dialog closes by @danielhanchen in https://github.com/unslothai/unsloth/pull/5612 * studio/frontend: add aria-label to Dictate / Stop dictation buttons by @danielhanchen in https://github.com/unslothai/unsloth/pull/5599 * studio/frontend: settings dialog fits viewport at tablet widths by @danielhanchen in https://github.com/unslothai/unsloth/pull/5600 * studio/frontend: show Generation stopped placeholder when cancelled mid-thinking by @danielhanchen in https://github.com/unslothai/unsloth/pull/5565 * studio: tool calling for Llama-3, Mistral, Gemma 4 on safetensors + MLX by @danielhanchen in https://github.com/unslothai/unsloth/pull/5615 * Revert "studio: tool calling for Llama-3, Mistral, Gemma 4 on safetensors + MLX (#5615)" by @danielhanchen in https://github.com/unslothai/unsloth/pull/5619 ## What's Changed in Unsloth Zoo: * Honour offline env vars when enabling hf_transfer by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/675 * Fix Studio q2_k_l GGUF export and new llama.cpp converter package layout by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/667 * fix(mlx): match mlx-lm batch padding rule (1 + pad_to * ceil) by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/672 * fix(mlx): expose finetune_last_n_layers for parity with mlx-lm CLI by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/669 * fix(mlx): honor max_grad_value=None as a disable signal by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/671 * fix(mlx): seed mx.random immediately before linear_to_lora_layers (re-PR of #674) by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/678 * fix(mlx): warn on bf16 -> fp16 downcast in FastMLXModel loader by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/670 * fix(mlx): make_baseline_loss_fn byte-identical to mlx-lm default_loss when labels=None by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/673 * Fix Q2_K_L recipe: q2_k base + ffn_down=Q3_K, output=Q6_K, embed=Q4_K by @danielhanchen in https://github.com/unslothai/unsloth-zoo/pull/677 **Full Changelog**: https://github.com/unslothai/unsloth/compare/v0.1.40-beta...v0.1.41-beta