
  🌐 Language / Язык
    1) English
    2) Русский
  Choose / Выбор (1/2) [1]: 1⏎
  → Iva will reply in English by default.

  Iva setup — entering secrets step by step
  Takes a couple of minutes. For each key I'll tell you where to get it and check it on the spot.
  The script won't exit until you've entered every required secret.

  Step 1/5: Provider and model — Iva's brain
  Who to reach the model through:
    1) Ollama Cloud — https://ollama.com (~$20/mo, higher limits)
    2) OpenCode Go — https://opencode.ai/go (~$5/mo, cheaper)
    3) OpenAI (ChatGPT subscription) — chatgpt.com (sign in, no API key)
    4) Claude (Pro/Max subscription) — claude.ai (the claude CLI signed in on this server, no API key)
    5) OpenRouter — https://openrouter.ai (one key → 300+ models, pay-as-you-go)
    6) Custom — your own OpenAI-compatible endpoint (proxy, vLLM, LiteLLM, a vendor plan)
  Provider (1/2/3/4/5/6) [1]: 2⏎

  OpenCode key: https://opencode.ai/auth (subscribe to Go → copy the API key).
  Paste the OpenCode API key: oc-key-123456⏎
  checking… ok

  OpenCode Go models: 1. I recommend deepseek-v4-pro.
    1. deepseek-v4-pro  ★

  Model number [1]: ⏎
Choose each model's protocol from https://opencode.ai/docs/go/#endpoints. /messages is unsupported.
  OPENCODE_PROTOCOL (chat-completions / responses) [chat-completions]: ⏎
Vision fallback: choose an image-capable model and its documented wire. The old qwen3.7-plus default now uses unsupported /messages.
    1. deepseek-v4-pro

  Model number [1]: ⏎
  OPENCODE_VISION_PROTOCOL (chat-completions / responses; /messages unsupported) [chat-completions]: ⏎
  → model: deepseek-v4-pro
  → vision: deepseek-v4-pro
  Don't inflate the context window: compaction computes its threshold from it; an inflated window risks overflow.

  Step 2/5: Deepgram — voice and video transcription (optional)
  Where to get the key: https://console.deepgram.com
    1) sign up (free starter credit)
    2) API Keys → Create a New API Key
    3) copy the key
  Enter — skip: voice notes stay untranscribed until you add the key in /menu → 🎤 Voice or iva config.
  Paste the Deepgram API key: ⏎
  Voice is off for now — enable it later in /menu → 🎤 Voice.

  Web search — so Iva can search the internet (Enter on the key — skip, search stays off).
   1. tavily  https://app.tavily.com  (free ~1000/mo, no card, has answer ★)
   2. exa  https://dashboard.exa.ai  (free ~20k/mo, no card)
   3. parallel  https://platform.parallel.ai  (starter credits, no card)
   4. brave  https://api-dashboard.search.brave.com  (card required (verification), ~$5/mo credit)
  Search provider (number) [1]: ⏎
  Key for tavily: https://app.tavily.com. Enter — skip.
  tavily API key: ⏎

  Enhanced memory (hybrid search) — optional
  Base search (BM25 + link graph) is already on — free, no key. Hybrid adds semantic search via ONE external key (~cents/mo), better for a large vault or fuzzy/cross-language queries.
  Enable hybrid memory? (y/N): ⏎

  Step 3/5: Telegram bot — how you talk to Iva
  Create a bot via @BotFather in Telegram:
    1) open a chat with @BotFather
    2) send /newbot
    3) set the bot's name and username
    4) copy the token like 123456789:ABCdef...
  Paste the Bot token: 123:tg-token⏎
  checking… ok
  → bot: @ivabot

  Step 4/5: Access — who the bot answers at all
  IMPORTANT: Iva answers ONLY trusted Telegram IDs.
  Without at least one ID the bot stays silent to everyone (that's how your data is protected).

  Let's find your ID. Open Telegram, find @ivabot and send it any message (e.g. "hi").
  Sent the bot a message? press Enter: ⏎
  Couldn't fetch updates: unexpected setup wizard request: https://api.telegram.org/bot123:tg-token/getUpdates
  Enter your Telegram ID manually (find it: message @userinfobot), or Enter — try again: 42⏎
  → access granted to ID: 42

  Step 5/5: Timezone and memory storage
  The timezone lets Iva use your real local time, not the server's.
  Timezone (IANA, e.g. Asia/Almaty, Asia/Tashkent, Europe/Berlin) [Asia/Almaty]: ⏎
  Vault directory (memory + git backup) [vault]: ⏎
  Local eve-server port [8723]: <PORT>⏎
  validating the selected model again… ok

  ────────────────────────────────────────────
  ✓ Ready — settings validated for apply
  Provider: opencode · Model: deepseek-v4-pro · Voice: off (/menu → Voice) · Bot: @ivabot
  Access: 42 · TZ: Asia/Almaty · vault: vault · lang: en
  ────────────────────────────────────────────
