Hey everyone! For folks who missed the news - Kimi K3 & DeepSeek v4 Flash can now run locally with Unsloth Dynamic GGUFs! We now added more efficient and faster downloading for Colab, low memory systems and also high memory and CPU systems - we auto fallback to HTTP as well if XET is stuck
DeepSeek V4 Flash 0731
You can run our DeepSeek V4 Dynamic GGUFs through Unsloth. Unsloth automatically detects multi-GPU setups and can offload model layers to system memory.
UD-IQ1_Sis 83GB in disk space.UD-IQ3_XXSis 104GB in disk space and fits in 128GB machines.UD-Q4_K_XLis 155GB in disk space.- For lossless inference, use
UD-Q8_K_XL, which is 162TB in disk space.
Read our full DeepSeek V4 Flash guide
Kimi K3
Moonshot AI’s Kimi K3 is a 2.8T-parameter MoE model with 104B active parameters, native vision support and a 1M context window. Kimi K3 is thinking-only and Unsloth supports low, high and max reasoning efforts.
You can run our Kimi K3 Dynamic GGUFs through Unsloth. Unsloth automatically detects multi-GPU setups and offloads layers automatically.
Kimi K3 is a very large model, so plan your hardware accordingly:
UD-IQ1_Sis 595GB in disk space.UD-Q4_K_XLis 1.51TB in disk space.- For lossless inference, use
UD-Q8_K_XL, which is 1.56TB in disk space.
Read our full Kimi K3 guide and learn more about Unsloth Dynamic 2.0 GGUFs.
Updating / installing Unsloth
macOS, Linux, WSL:
curl -fsSL https://unsloth.ai/install.sh | shWindows:
irm https://unsloth.ai/install.ps1 | iexUnsloth is NOT affected by the Keyv security incident
As per https://www.aikido.dev/blog/keyv-and-friends-compromised-in-npm-supply-chain-attack, Unsloth uses ESLint which uses keyv==4.5.4, flat-cache==4.0.1, file-entry-cache==8.0.0. The compromised versions are keyv==6.0.0, flat-cache==6.1.24, file-entry-cache==11.1.6
Unsloth DOES NOT use the compromised versions, so you do NOT need to take any action.
However please check your own systems and other non Unsloth packages for any compromise - see https://github.com/wiz-sec-public/wiz-research-iocs/blob/main/reports/keyv-packages.csv for compromised packages
What's Changed
- Bump install.sh / install.ps1 pin to unsloth>=2026.7.6 by @danielhanchen in #7621
- Fix two pre-existing Backend CI failures blocking every open PR by @danielhanchen in #7639
- fix(trainer): warn loudly when requested packing is silently disabled by @eliazonta in #7234
- Preserve reasoning across turns for Qwen3.x by @mahille in #7289
- Make tests/utils runnable again and cover test_packing.py in CI by @danielhanchen in #7642
- Uninstaller: reject unrecognized arguments instead of uninstalling by @oobabooga in #7631
- Make the uninstaller test suites run on macOS and Windows PowerShell 5.1 by @danielhanchen in #7643
- Studio: Don't disarm Ctrl+C in agents launched by unsloth start by @NilayYadav in #7630
- Studio: keep a slow model load alive through a proxy timeout by @danielhanchen in #7635
- Tighten the comments around the uninstaller argument guard by @danielhanchen in #7647
- Route the explicit Vulkan setup failures through the setup failure helpers by @danielhanchen in #7645
- Honor an explicit map_eos_token=False in get_chat_template by @vineethsaivs in #7475
- Fix desktop repair version skew and output decoding by @wasimysaid in #7641
- Desktop: Improve the installation message by @oobabooga in #7657
- Studio: make the API keys list scrollable by @NilayYadav in #7622
- Desktop: notarize the final macOS disk image on release by @oobabooga in #7615
- Desktop: preserve first app window size after setup by @oobabooga in #7659
- data-recipe: recognize current sampling progress log line by @devangpratap in #6760
- Desktop: clean up the backend on Unix termination signals by @oobabooga in #7614
- Desktop: show the app version in Settings > About by @oobabooga in #7612
- Studio: Fix hub search input overlapping the format filter at narrow widths by @NilayYadav in #7658
- Add 2026.7.6 release notes to CHANGELOG.md by @shimmyshimmer in #7671
- Desktop: exit the backend when the app that spawned it dies by @NilayYadav in #7655
- Desktop: open uploaded files via the OS instead of window.open by @NilayYadav in #7660
- Run OpenClaw in the launched project workspace by @Imagineer99 in #7568
- Desktop: drop documents into a chat instead of rejecting them as non-GGUF (#7661) by @LeoBorcherding in #7668
- feat(install): use pre-built Tauri icon for macOS .app bundle by @ArjunDivecha in #7628
- Studio: report active training status by @oobabooga in #7613
- studio: apply saved per-model settings on API loads, add API monitor by @shimmyshimmer in #7473
- fix: replace deprecated transformers attention mask imports by @Taranum01 in #6880
- Offline: detect an unreachable hub, not just dead DNS by @shimmyshimmer in #7591
- Assert the Vulkan installer bailouts fail closed via the setup failure helper by @danielhanchen in #7644
- Studio: charge the split compute-buffer rate on a multi-GPU auto fit by @danielhanchen in #7637
- Add 2026.7.7 release notes to CHANGELOG.md by @danielhanchen in #7685
- Fix multiline prompts through Windows npm shims by @Imagineer99 in #7567
- Revert "Add 2026.7.7 release notes to CHANGELOG.md" by @danielhanchen in #7687
- docs: fix
--quantizationflag in unsloth-cli.py usage example by @latent-9 in #7688 - Studio: Fix GGUF classification for custom MTP scan roots by @Lyxot in #7648
- Studio: complete translation coverage for all supported locales by @oobabooga in #7666
- Guard VLM detection against config.architectures being None in the save paths by @vineethsaivs in #7372
- Centralize device backend helpers by @danielhanchen in #4252
- Make the auto-appended EOS token deterministic by @vineethsaivs in #7702
- Unsloth Studio: fix sidebar rail bottom fade rendering as a lighter block in dark mode by @LeoBorcherding in #7674
- Fix the three CI failures blocking every open PR by @danielhanchen in #7722
- Close two false passes in the uninstaller argument tests, and document the piped help form by @danielhanchen in #7690
- Uninstall the whisper.cpp prebuilt and the node/whisper install locks by @danielhanchen in #7686
- studio update --local: refuse site-packages as the repo root by @danielhanchen in #7693
- studio update: fail instead of reporting success on a damaged install by @danielhanchen in #7691
- studio setup: let Windows PowerShell load its own Security module by @danielhanchen in #7692
- Fix
unsloth runon Windows: the venv entry point is unsloth.exe by @danielhanchen in #7718 - Studio: restore cached models hidden by a dangling HF ref, and stop auto-load downloading after a failed load (#7374) by @Souravrajvi0 in #7375
- Desktop: stop losing the backend's exit, its output and its startup by @danielhanchen in #7719
- Studio setup: report a missing llama.cpp in Tauri mode instead of aborting the install by @danielhanchen in #7720
- Studio: honour the GPU-layer split for DiffusionGemma loads by @LeoBorcherding in #7575
- Desktop: reopen hidden macOS window from Dock by @wasimysaid in #7723
- Fix the six backend tests blocking every PR: companion-only GGUF folders, and vision fixtures on empty projectors by @danielhanchen in #7728
- Fix Windows llama.cpp prebuilt setup with inaccessible PATH entries by @Etherll in #7696
- Desktop: bypass proxies for loopback requests by @oobabooga in #7709
- Desktop: keep Windows updater installer alive by @oobabooga in #7705
- Stop and send buttons on the chat dictation bar by @shimmyshimmer in #7683
- Repair .venv_t5_* sidecars whose files are damaged by @danielhanchen in #7725
- Desktop: fix remaining file downloads by @oobabooga in #7710
- Desktop: restore the confirmations that only worked in the browser by @NilayYadav in #7707
- Studio: bring the login screen up before the ML stack loads by @danielhanchen in #7607
- Lint CI: scope the import-hoist check to the PR's own commits by @danielhanchen in #7738
- fix(studio): detect truncated sidecar files via RECORD in _venv_dir_is_valid (#7715) by @Anai-Guo in #7721
- Security audit: re-baseline the benign findings that reopened on main by @danielhanchen in #7741
- Improve toast layout by @mahiatlinux in #7734
- Wait for the floating monitor to stop moving, not just stop growing by @danielhanchen in #7739
- Desktop: add
Check for UpdatesandUpdate Nowto Settings by @oobabooga in #7694 - Escape caller template text spliced into Jinja string literals by @vineethsaivs in #7731
- Fix
validate_datasetKeyError on default (tokenized) RawTextDataLoader output by @adinfarel in #7729 - Model picker: default Show all quantizations off, collapse single-quant rows, say Reveal in Folder outside macOS by @shimmyshimmer in #7736
- Model picker: show row actions on collapsed quant rows and align the GGUF tag by @shimmyshimmer in #7745
- Escape the system message spliced into predefined chat templates by @danielhanchen in #7746
- Follow the third load site in the pinned-row contract test by @danielhanchen in #7748
- Windows: do not abort setup on an unreadable llama.cpp install by @shimmyshimmer in #7735
- CI: harden the Windows Pester bootstrap against the nuget.exe PSGallery failure by @danielhanchen in #7743
- Windows: move the installer out of System32 instead of failing in it by @danielhanchen in #7744
- Align the sidebar nav and Recents spinners on one column by @danielhanchen in #7749
- CI: compare the workflow path as posix so the Pester guard passes on Windows by @danielhanchen in #7750
- Model picker: remember the Run Settings advanced toggle across models by @shimmyshimmer in #7747
- Bump install.sh / install.ps1 pin to unsloth>=2026.8.1 by @danielhanchen in #7754
- Model picker: context length hint, and the preset note as a tooltip by @shimmyshimmer in #7755
- Studio: simplify the GGUF loading backend by @oobabooga in #7663
- Studio: add Italian (it) locale by @LRimes90 in #7650
- Forward revision to the config, weight and tokenizer loads by @danielhanchen in #4222
- CI: run the Pester guard on Windows without the smoke suite by @danielhanchen in #7753
- Support audio input in Studio chat on Apple Silicon by @Lyxot in #7699
- Fix formatting_func race in UnslothVisionDataCollator without a lock by @adinfarel in #7698
- Windows: guard the source-build and whisper.cpp probes on an unreadable install tree by @danielhanchen in #7757
- Stop the atexit teardown printing tracebacks after the run has ended by @danielhanchen in #7756
- Linux/macOS: tell an unreadable llama.cpp install apart from someone else's by @danielhanchen in #7771
- Model picker: lay the rows out in columns by @shimmyshimmer in #7770
- Fix the model-config Playwright driver for the collapsed single-quant row by @danielhanchen in #7772
- Anchor the host-defaults assertions and take the file off the skip list by @danielhanchen in #7774
- Model picker: drop the green box around the downloaded icon by @shimmyshimmer in #7775
- Studio: fix the hub download rate estimator and bound long ETAs by @ousamabenyounes in #7679
- Studio: pin GGUF to CPU on virtualised Metal, clamp parallel slots under MTP by @danielhanchen in #7717
- Give the auto-load harness the adapter's new import, and catch the next one by @danielhanchen in #7768
- Fix and harden the model-config Playwright job, and pin the hooks it drives by @danielhanchen in #7760
- Windows: validate managed Python before package installation by @Etherll in #7763
- Studio: Auto download transport, Xet memory caps, and stall detection on the hub path by @danielhanchen in #7742
- fix(studio): refresh token count after model load (#7450) by @Souravrajvi0 in #7453
- Keep a generating chat's spinner clear of the kebab on hover by @danielhanchen in #7751
- fix(studio): neutralize chat-template control markup in client text (#7066) by @Souravrajvi0 in #7334
- Rebrand Tauri desktop app as Unsloth by @wasimysaid in #7608
- Studio: bump anyhow and event-listener for RustSec advisories by @danielhanchen in #7780
- Studio frontend: override brace-expansion 5.0.8 and fast-uri 3.1.4 by @danielhanchen in #7781
- Dependabot: pin glib and gdk-pixbuf to the GTK3 0.18 line by @danielhanchen in #7779
- Fix model picker stuck on "Loading variants" by @shimmyshimmer in #7767
- Fix model settings overflow with many GPUs by @Imagineer99 in #7777
- Bump install.sh / install.ps1 pin to unsloth>=2026.8.2 by @danielhanchen in #7786
- fix python tool images not rendering in the desktop app by @mahiatlinux in #7808
- fix studio toast action alignment by @mahiatlinux in #7809
- Model picker: follow the UI font size preference by @shimmyshimmer in #7806
- fix(studio): sanitize the healer catalog when no render target is available by @danielhanchen in #7812
- Retry macOS disk image stapling by @wasimysaid in #7787
- Studio: scale the Model hub to the window instead of a fixed 1100px by @shimmyshimmer in #7816
- studio: pair slim whisper bundles on the ggml tree id, not the -mix- tag suffix by @danielhanchen in #7817
- Scan Windows desktop bundles with Defender before publishing by @danielhanchen in #7813
- Assert chat tracking in em, not in pixels at a 16px base by @danielhanchen in #7826
- Add Intel Arc GPU detection and XPU PyTorch install to Windows installer by @legobele in #7706
- test(studio): bound the chat font size and accept a normal tracking by @danielhanchen in #7828
- Studio: let unsloth_zoo size the download worker instead of overriding it by @danielhanchen in #7815
- Desktop: open Data Recipes without triggering an update by @Etherll in #7762
- Name the missing shared library when llama-server cannot start by @danielhanchen in #7782
- Sign the NSIS plugin DLLs, and fail the release on any unsigned file by @danielhanchen in #7819
- Embed the WebView2 bootstrapper instead of downloading it at install time by @danielhanchen in #7820
- Repoint three guard tests at where the code moved, and derive the font-size expectations by @danielhanchen in #7833
- Studio: filter DSpark/DFlash drafters out of the GGUF quant picker by @danielhanchen in #7811
- Studio: handle a deleted dataset file instead of failing with a 500 by @NilayYadav in #7800
- Installer: select CUDA wheels that cover the host's GPUs by @oobabooga in #7814
- Studio: return 400 for a rejected dataset path in check-format by @danielhanchen in #7842
- Desktop: fix dictation failing with a blocked speech service by @NilayYadav in #7799
- Fix GGUF fallback cache context source by @Imagineer99 in #7788
- Skip an unreadable notebooks candidate instead of failing collection by @danielhanchen in #7844
- Keep the package importable on the Python floor pyproject declares by @danielhanchen in #7840
- Make the Colab oracle tripwire able to fire, and stop blaming start.py for a hung agent CLI by @danielhanchen in #7838
- Keep the signed NSIS plugin directory across a bundler upgrade, and retry the vc_redist fetch by @danielhanchen in #7841
- Studio: improve translations across all supported locales by @oobabooga in #7797
- Studio: add image generation, editing workflows and LoRA training with Unsloth GGUFs by @oobabooga in #6763
New Contributors
- @eliazonta made their first contribution in #7234
- @mahille made their first contribution in #7289
- @devangpratap made their first contribution in #6760
- @ArjunDivecha made their first contribution in #7628
- @Taranum01 made their first contribution in #6880
- @latent-9 made their first contribution in #7688
- @adinfarel made their first contribution in #7729
- @LRimes90 made their first contribution in #7650
- @ousamabenyounes made their first contribution in #7679
- @legobele made their first contribution in #7706
Full Changelog: v0.1.51-beta...v0.1.52-beta