MarketDeck docs
onboard
Interactive first-run setup — walks through database, wallets, AI provider, telegram, coins, plugins and the daemon.
marketdeck onboard is the one command that takes a fresh install to a working state. It is purely an orchestrator over the existing built-in commands — every choice it makes ends up as a wallets add, config set, openrouter set-key, plugin install, or daemon start you could have run manually. There is no separate "onboard state".
The command is interactive only. Under a pipe or with --format json it refuses up-front rather than blocking on stdin that a script can never satisfy. Run it from a real terminal.
Usage#
marketdeck onboard
Flow#
| # | Step | What it asks |
|---|---|---|
| 1 | Database | Opens the SQLite file and runs schema migrations. Reports the live schema version. No prompt — auto-runs. |
| 2 | Paper wallet | Name and starting balance. Defaults: Paper Demo, $10000. |
| 3 | Real wallet (optional) | Pick the exchange (Hyperliquid / Aster / Bybit / Binance), name, address (HL only — required), then the credential on stdin (private key for HL, apiKey + apiSecret for the others). The credential goes straight to the keyring; it never appears on argv. |
| 4 | AI provider | One of claude / codex / hermes / openclaw / ollama / openrouter / Skip. The picker shows whether each provider's CLI is detected on PATH. Picking OpenRouter immediately asks for the API key + a model id. |
| 5 | Telegram (optional) | Bot token (hidden) + numeric chat id. Sets telegram-enabled = true. Run marketdeck telegram test afterwards to verify. |
| 6 | Favourite coins | Comma-separated tickers. Default seed: BTC, ETH, SOL, HYPE. |
| 7 | Plugins | Offers the official plugins one at a time: marketdeck-gnome (Linux only — panel + prefs UI) and marketdeck-webui (web dashboard). Each install runs plugin install <git-url> inline so you see git-clone progress. |
| 8 | Daemon | Starts the long-lived feed daemon if it isn't already running. |
Re-running#
marketdeck onboard is idempotent. The second time you run it, every step that already has a value shows it back to you and asks:
current: <existing value>
what would you like to do?
1) Skip (default) — keep <thing> as-is
2) Edit — modify the existing entry
3) Replace — wipe and start fresh
- Skip does nothing.
- Edit opens the same prompts the create flow uses, pre-filled with the current value.
- Replace asks the create-flow questions from scratch (and, for paper wallets and the AI provider, removes the existing entry before writing the new one).
Real wallets never auto-replace — Replace at step 3 means "add another one alongside the existing wallets", never "delete a wallet plus its keyring entry". Use marketdeck wallets remove for that.
What it never does#
- Touch a wallet you didn't explicitly answer through the prompt.
- Wipe the keyring.
- Install a plugin you didn't pick.
- Start the daemon if you said no.
- Run the importer that pulls legacy JSON state into SQLite — that is
marketdeck db import, intentionally separate.
Examples#
marketdeck onboard # full interactive walk-through
marketdeck onboard --help # the step list above
# Pipe / JSON mode is refused:
marketdeck onboard --format json
# → onboard: this command is interactive and only works under a TTY.