Ambient intelligence that is always on, right on your device.

Open-source models that hear, see, decide and speak, without a server.

4.6M+
downloads
120+
open models
60+
teams using it
#1
trending on GitHub

Fast enough to never switch off.

Measured by us and the developers who ship on it.

  • Transcribes an hour of audio in 23 seconds.

  • Makes a decision in a millisecond.

  • Optimized for neural engines, so it stays on without draining your phone.

  • Local, private and always available. Nothing goes to the cloud.

4x faster than a cloud API

Cloud API400 ms
FluidUse90 ms

Time to make one move

FluidUse on a laptop against a hosted API at the same game of Tetris. A small test, and the hosted model still ranked search results better.

FluidInference/FluidUse
Measured by Scott Chacon, co-founder of GitHub.

Your words appear 7x sooner

Whisper0.68 s
FluidAudio0.10 s

Wait for your words to appear after you stop talking

FluidAudio against Whisper: same sentences, same laptop, same accuracy.

FluidInference/FluidAudio
Measured by Plainsay, a dictation app.

38% fewer speaker errors

pyannote16.0%
Fluid Inference9.9%

Speaker labelling errors, lower is better

25 hours of recordings, against the usual open-source choice. Also 2.6x faster.

FluidInference/nemotron-3-diarization-coreml
Measured by Whisper Notes, a transcription app.

Gets 24% fewer words wrong

Previous model13.99%
Newest model10.63%

Words transcribed wrong, across 25 languages

The newest speech model we ship against the one it replaced.

FluidInference/parakeet-ultra-coreml
Measured by Whisper Notes, a transcription app.

A few lines of code.

No API keys, no accounts, no usage bill.

Transcribe a recordingFluidAudio
import FluidAudio

// Downloads once, then runs offline
let models = try await AsrModels.downloadAndLoad()
let asr = AsrManager(config: .default)
try await asr.loadModels(models)

let result = try await asr.transcribe(samples)
print(result.text)
Make a decisionFluidUse
import FluidUse

let laya = try await LayaManager.load()
let answers = try await laya.answer(
  state: "I was charged twice. Refund me today.",
  questions: [
    .choice("What does the customer want?",
            options: ["refund", "order status"]),
    .noul("Is the customer likely to churn?"),
  ])

print(answers[0].selectedLabel)  // "refund"

The engine inside the apps people already use.

Dictation, meeting notes, live captions and voice agents, in 60+ shipping products.

VoiceInkFluidVoiceHexSpokenlyBoltAIParaspeechSnaplyOpenOatsTalat
VoiceInkFluidVoiceHexSpokenlyBoltAIParaspeechSnaplyOpenOatsTalat
VoiceInkFluidVoiceHexSpokenlyBoltAIParaspeechSnaplyOpenOatsTalat
VoiceInkFluidVoiceHexSpokenlyBoltAIParaspeechSnaplyOpenOatsTalat
SlipboxHedyWhisper NotesMimicScribeThothVivaDictaGoodmeetWispOrca One
SlipboxHedyWhisper NotesMimicScribeThothVivaDictaGoodmeetWispOrca One
SlipboxHedyWhisper NotesMimicScribeThothVivaDictaGoodmeetWispOrca One
SlipboxHedyWhisper NotesMimicScribeThothVivaDictaGoodmeetWispOrca One