tonhowtf/omniget · error

whisper-cli nao esta instalado

Error message

whisper-cli nao esta instalado

What it means

transcribe() first calls locate(), which resolves whisper-cli from (1) the user's custom override, (2) the managed install dir, or (3) system PATH (whisper-cli, whisper-cpp, whisper). If none is found, transcription cannot start and this error is returned. It means no whisper.cpp binary is available anywhere the app looks.

Solutions

  1. Install the managed binary via whisper::install("cpu", ..) (Windows/Linux).
  2. On macOS run `brew install whisper-cpp`.
  3. Or set the whisper-cli path in the app's Configuracoes (binary_overrides).
  4. Gate transcription behind whisper::status().installed and surface the install_hint.

Example fix

// before
let r = whisper::transcribe(opts, progress).await?;

// after
let st = whisper::status().await;
anyhow::ensure!(st.installed, "whisper-cli ausente: {}", st.install_hint);
let r = whisper::transcribe(opts, progress).await?;
Defensive patterns

Strategy: validation

Validate before calling

let st = whisper::status().await;
if !st.installed {
    eprintln!("whisper-cli ausente. {}", st.install_hint); // "brew install whisper-cpp" on macOS
    return;
}

Try / catch

match whisper::transcribe(opts, progress).await {
    Err(e) if e.to_string().contains("nao esta instalado") => {
        // trigger the install flow or instruct `brew install whisper-cpp`
    }
    other => other?,
}

Prevention

When it happens

Trigger: Calling transcribe(TranscribeOptions{..}, progress) when: whisper-cli was never installed, the managed install was deleted, the custom binary path in Configuracoes points at a removed file, and nothing named whisper-cli/whisper-cpp/whisper is on PATH.

Common situations: Fresh install of the app where the user skipped the whisper.cpp setup step; macOS user who never ran `brew install whisper-cpp`; a system PATH change (new shell environment) hiding an existing install.

Understand the failure class

Background: "not installed", "pip install", "required for": how missing-dependency errors surface across open-source libraries — this error's family across 34 libraries.

Related errors


AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12). Data as JSON: /api/errors/6a05f100a8e4165d. Report an issue: GitHub.

Appendix: source

Thrown at src-tauri/omniget-core/src/core/tools/whisper.rs:319

                continue;
            }
            cues.push(Cue {
                start_ms: from,
                end_ms: to.max(from + 1),
                text: t,
            });
        }
    }
    Ok((language, cues))
}

pub async fn transcribe(
    opts: TranscribeOptions,
    progress: ProgressFn,
) -> anyhow::Result<TranscribeResult> {
    let (bin, _) = locate()
        .await
        .ok_or_else(|| anyhow!("whisper-cli nao esta instalado"))?;
    let model_path = models_dir()
        .ok_or_else(|| anyhow!("Could not determine data directory"))?
        .join(format!("ggml-{}.bin", opts.model));
    if !model_path.exists() {
        return Err(anyhow!("modelo {} nao esta baixado", opts.model));
    }
    let input = PathBuf::from(&opts.input);
    if !input.exists() {
        return Err(anyhow!("arquivo nao encontrado: {}", opts.input));
    }
    let id = format!("transcribe:{}", opts.input);
    report(&progress, &id, "convert", 0, Some(100), None);
    let started = std::time::Instant::now();
    let wav = to_wav16k(&input).await?;
    let out_prefix = super::temp_dir().join(format!("whisper-{}", uuid::Uuid::new_v4()));

    let mut cmd = crate::core::process::command(&bin);
    cmd.arg("-m").arg(&model_path).arg("-f").arg(&wav);

View on GitHub (pinned to 8600b91f42)