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

> Oracle native tools: `oracle_cli` (read/prepare), `vault_status`, `signer_status`, `signer_execute` (needs human confirmationNonce), `skill_load`. No generic shell. No fleet SSH.

# /setup

Bare `oracle setup` on a TTY runs five skippable, resumable steps: model login,
optional hidden Telegram token, watch-only EVM address, BTC price with source
and age, and an alert-only watch. A ready model stays selected unless `--model`
explicitly requests a change. Saved watches are not monitored; no evaluator
delivers these setup watches yet.

```bash
# five-step wizard (TTY); read-only status without a TTY
oracle setup
# legacy arrow-key menu on a TTY
oracle setup menu
oracle chat --onboard

# inside chat
#   /setup                         open arrow menu
#   /setup telegram                jump to hidden token entry
#   /setup discord
#   /setup whatsapp                points at QR hermes path
#   /setup status                  ready/unset (no secrets)

# non-interactive / scripts
echo "$TELEGRAM_BOT_TOKEN" | oracle setup telegram
ORACLE_SETUP_PLAIN=1 oracle setup menu   # text status instead of arrows
oracle setup --yes --model local --skip-answer --skip-watch
oracle setup gateway restart
```

Wizard options without a TTY require `--yes`. It writes setup state without
prompting or opening OAuth; credentials must already exist. Unless skipped,
it fetches BTC/USD and saves a watch 5% above a fresh price. All five steps
support `--skip-<step>`. For no-argument calls from an agent, show
`oracle setup status`.

Token entry stays hidden. Secrets never echo into chat.
Never print bot tokens, app tokens, or passwords back into chat.
