nikivdev/code · error

failed to read AI token from Keychain: {}

Error message

failed to read AI token from Keychain: {}

What it means

Error "failed to read AI token from Keychain: {}" thrown in nikivdev/code.

Source

Thrown at src/env.rs:365

    let output = Command::new("security")
        .args(["find-generic-password", "-a", "flow", "-s", &service, "-w"])
        .output()
        .context("failed to read AI token from Keychain")?;

    if output.status.success() {
        let token = String::from_utf8_lossy(&output.stdout).trim().to_string();
        if token.is_empty() {
            return Ok(None);
        }
        return Ok(Some(token));
    }

    let stderr = String::from_utf8_lossy(&output.stderr);
    if stderr.contains("could not be found") || stderr.contains("SecKeychainSearchCopyNext") {
        return Ok(None);
    }

    bail!("failed to read AI token from Keychain: {}", stderr.trim());
}

fn set_local_keychain_env_var(
    target: &EnvTarget,
    environment: &str,
    key: &str,
    value: &str,
) -> Result<()> {
    if !cfg!(target_os = "macos") {
        bail!("local keychain-backed envs require macOS");
    }

    let service = local_env_keychain_service(target, environment);
    let status = Command::new("security")
        .args([
            "add-generic-password",
            "-a",
            key,

View on GitHub (pinned to a747e741ae)

When it happens

Trigger: Thrown at src/env.rs:365 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of nikivdev/code@a747e741ae (2026-09-01). Data as JSON: /api/errors/91ccf8132180f7d9. Report an issue: GitHub.