Download Latest Version v1.1.0 source code.zip (3.5 MB)
Email in envelope

Get an email when there's a new version of WhisperKit

Home / v1.0.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-05-01 8.0 kB
v1.0.0 source code.tar.gz 2026-05-01 3.3 MB
v1.0.0 source code.zip 2026-05-01 3.5 MB
Totals: 3 Items   6.8 MB 2

Highlights

v1.0.0 marks the graduation of the project from WhisperKit into the Argmax Open-Source SDK, a Swift package that ships WhisperKit, SpeakerKit, TTSKit, and ArgmaxCore together. Alongside the new name, this release brings full Swift 6 concurrency support, vendors the swift-transformers Hub and Tokenizers sources directly into ArgmaxCore under their original Apache 2.0 license (see NOTICES), and adds a new dynamic library product for binary distribution.

⚠️ This is a breaking release. Deprecated APIs have been removed, and a small number of APIs changed; see API changes below.

New name: Argmax Open-Source SDK

The new name reflects the project's evolution from a single kit (WhisperKit) into a multi-kit open-source SDK, and gives us room to add more models and capabilities in the future. This open-source SDK is the foundation that the Argmax Pro SDK is built on. The Pro SDK extends what's here with additional models and advanced features.

The package is now argmax-oss-swift and the CLI is argmax-cli. A new umbrella product, ArgmaxOSS, re-exports all core modules so a single import gives you everything:

:::swift
.package(url: "https://github.com/argmaxinc/argmax-oss-swift", from: "1.0.0")

:::swift
import ArgmaxOSS  // WhisperKit + SpeakerKit + TTSKit + ArgmaxCore

Swift 6 Concurrency

The package is now Swift 6 compatible under Swift 6's approachable concurrency model, with Sendable adopted where appropriate and async boundaries made explicit. CI builds against the latest Swift 6 toolchains alongside Swift 5.10.

[!NOTE] The top-level kit classes (WhisperKit, SpeakerKit, TTSKit) are not yet Sendable. If you store an instance of these in a Sendable type or pass it through a @Sendable closure, you may see warnings. Full Sendable conformance for the top-level kit classes is planned for a future release.

Vendored Hub and Tokenizers

Huge thanks to the Hugging Face team and the swift-transformers community. The project has been a foundational dependency for WhisperKit since day one.

To give the OSS SDK a self-contained build and avoid version-resolution conflicts for downstream apps that already depend on swift-transformers, we've vendored the Hub and Tokenizers source files directly into Sources/ArgmaxCore/External/ under their original Apache 2.0 license (see NOTICES for full attribution). Every file carries the upstream attribution header, and all Argmax modifications are marked by // Argmax-modification: comments for easy auditing against upstream.

The public API surface is exposed through opaque wrappers (HubApiWrapper, TokenizerWrapper, and AutoTokenizerWrapper), so the embedded Hub and Tokenizer types stay internal to ArgmaxCore and won't collide if you import swift-transformers separately in the same app.

ArgmaxOSS Dynamic Library

A new ArgmaxOSSDynamic product (in Package@swift-6.2.swift) builds the SDK as a dynamic library.

CLI

The renamed argmax-cli bundles transcription, diarization, TTS, and an OpenAI-compatible local server in one binary.

Run the local server with streaming transcription support:

:::bash
BUILD_ALL=1 swift run argmax-cli serve --model large-v3-v20240930_626MB --host 0.0.0.0 --port 50060

The server responds to POST /v1/audio/transcriptions and POST /v1/audio/translations, so existing OpenAI SDK clients work out of the box. See the README for client examples.

API Changes

Removed deprecated APIs

All APIs previously marked @available(*, deprecated) or @available(*, unavailable, renamed:) have been removed. Migrate to the replacements named in each original deprecation message. Notable removals:

  • WhisperKit.transcribe(audioPath:) / transcribe(audioArray:) overloads returning TranscriptionResult? -> use the [TranscriptionResult] versions
  • TextDecoding.decodeText / detectLanguage MLMultiArray overloads -> use the any AudioEncoderOutputType / any DecodingInputsType versions
  • Top-level free functions -> now on ModelUtilities, TranscriptionUtilities, TextUtilities, Logging, and FileManager
  • WhisperKit.formatModelFiles -> ModelUtilities.formatModelFiles
  • SpeakerKit.init(models:), SpeakerKit.init(diarizer:), and the SpeakerKitModelManager typealias
  • ModelUtilities.getModelInputDimention / getModelOutputDimention (typo) -> getModelInputDimension / getModelOutputDimension
  • MLTensor.asIntArray / asFloatArray / asMLMultiArray (sync) -> await toIntArray() / toFloatArray() / toMLMultiArray(). As a result, TokenSampling.update(...) is now async.

Typo fix: DecodingOptions.supressTokens -> suppressTokens.

Also removed: the TextDecoderContextPrefill model and the usePrefillCache decoding path (a separate CoreML model that pre-seeded the KV cache for SOT/language/task/timestamp tokens). The decoder's own KV cache is unaffected.

Upgrade Guide

Package and CLI rename

Package.swift:

:::swift
// before
.package(url: "https://github.com/argmaxinc/WhisperKit", from: "0.18.0")

// after
.package(url: "https://github.com/argmaxinc/argmax-oss-swift", from: "1.0.0")

CLI:

:::bash
# before
swift run whisperkit-cli transcribe --audio-path audio.wav

# after
swift run argmax-cli transcribe --audio-path audio.wav

TranscriptionCallback in stored variables

If you pass a callback inline (trailing closure or callback: nil), no change is needed. Only stored-variable cases need an ?:

:::swift
// before
let callback: TranscriptionCallback = { _ in true }
whisperKit.transcribe(..., callback: callback)

// after
let callback: TranscriptionCallback? = { _ in true }
whisperKit.transcribe(..., callback: callback)

Community

Reaching v1.0.0 is a milestone two and a half years in the making, and it would not have been possible without the people who have filed issues, opened pull requests, shipped apps on top of WhisperKit, and shown up in Discord to help one another. Every contribution, big or small, has shaped what this SDK has become. From all of us at Argmax: thank you. 🙏

This is a sizable breaking release, so please give it a spin and let us know how it goes. Open an issue or join us in Discord. 🚀

What's Changed

New Contributors

Full Changelog: https://github.com/argmaxinc/argmax-oss-swift/compare/v0.18.0...v1.0.0

Source: README.md, updated 2026-05-01