---
name: setup
description: "Use when the user types /setup or wants to connect telegram, discord, slack, or another messaging platform to oracle."
version: 1.1.0
disable-model-invocation: true
---

# /setup

First-run TUI onboarding walks telegram / discord / whatsapp.
Inside chat: `/setup`, `/setup status`, `/setup telegram|discord|whatsapp`.

From a terminal, `oracle setup` runs the five-step first-answer wizard on a TTY:
model, optional hidden Telegram token, watch-only EVM wallet, BTC price with source
and age, and an alert-only watch. Enter skips; rerun resumes without replacing
a ready model unless `--model` requests it. Saved watches are not monitored;
no evaluator delivers these setup watches yet. `oracle setup menu` opens the
legacy arrow menu; `ORACLE_SETUP_PLAIN=1 oracle setup menu` prints text status.
Bare non-TTY `oracle setup` prints read-only status without reading stdin.
Wizard options without a TTY require explicit `--yes`; this writes setup state,
never starts OAuth, and defaults to fetching BTC and saving a watch 5% above a
fresh price. Use `--skip-answer` / `--skip-watch` to opt out.

```bash
oracle chat --onboard
oracle setup status
oracle setup model
echo "$TELEGRAM_BOT_TOKEN" | oracle setup telegram
echo "$DISCORD_BOT_TOKEN" | oracle setup discord
oracle setup whatsapp
oracle setup messaging
oracle setup gateway restart
```

If the user passed args after `/setup`, forward them:

```bash
oracle setup {{arg1}} {{arg2}} {{arg3}}
```

If no args, show `oracle setup status`.
Never echo bot tokens, app tokens, or passwords back into chat.
