zeroclaw-labs/zeroclaw · error · anyhow::Error

cli-quickstart-needs-tty

cli-quickstart-needs-tty

Error message

Quickstart is interactive and needs a terminal on stdin and stderr. Run it from an interactive shell, or use `zeroclaw config set <path> <value>` for headless configuration.

What it means

Error "Quickstart is interactive and needs a terminal on stdin and stderr. Run it from an interactive shell, or use `zeroclaw config set <path> <value>` for headless configuration." thrown in zeroclaw-labs/zeroclaw.

Source

Thrown at src/main.rs:1286

    model_provider: Option<String>,
    model: Option<String>,
    api_key: Option<String>,
    agent: Option<String>,
) -> anyhow::Result<()> {
    use dialoguer::{Confirm, Editor, FuzzySelect, Input};
    use zeroclaw_config::presets::{
        AgentIdentity, BuilderSubmission, ChannelQuickStart, MemoryChoice, ModelProviderChoice,
        RISK_PRESETS, SelectorChoice,
    };
    use zeroclaw_runtime::quickstart::{
        FieldSection, QuickstartTypeOption, Surface, apply_with_surface, field_shape,
        snapshot_state,
    };

    if !std::io::IsTerminal::is_terminal(&std::io::stdin())
        || !std::io::IsTerminal::is_terminal(&std::io::stderr())
    {
        anyhow::bail!(
            "{}",
            t(
                "cli-quickstart-needs-tty",
                "Quickstart is interactive and needs a terminal on stdin and stderr. \
                 Run it from an interactive shell, or use \
                 `zeroclaw config set <path> <value>` for headless configuration."
            )
        );
    }

    #[derive(Default)]
    struct Form {
        provider: Option<ProviderChoice>,
        risk: Option<PresetChoice>,
        memory: Option<MemoryChoice>,
        channels: Vec<ChannelChoice>,
        // Tracks whether the user explicitly visited Channels and
        // confirmed "no channels". An empty `channels` Vec with

View on GitHub (pinned to 88bb9c8533)

Solutions

  1. Run `zeroclaw quickstart` from an interactive terminal with stdin/stderr attached.
  2. For headless setups, configure values directly with `zeroclaw config set <path> <value>`.

When it happens

Trigger: Thrown at src/main.rs:1286 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of zeroclaw-labs/zeroclaw@88bb9c8533 (2026-08-23). Data as JSON: /api/errors/49747cc2683cd8fa. Report an issue: GitHub.