MarketDeck docs

Setup

First-run configuration — wallets, agents, AI providers, and where the CLI keeps its state.

After a clean install, marketdeck has no wallets, no agents, and no provider preference. This page walks the configuration order most users land on.

Where state lives#

KindPath
SQLite database~/.local/share/marketdeck/marketdeck.db
AES-GCM vault (fallback keyring)~/.local/share/marketdeck/secrets.bin
Plugins~/.local/share/marketdeck/plugins/
Plugin enable state~/.config/marketdeck/plugins.json
Cross-process HTTP log~/.local/share/marketdeck/http-log.jsonl
Daemon log~/.cache/marketdeck/daemon.log
Web UI log~/.cache/marketdeck/webui.log
Icon cache~/.cache/marketdeck/icons/
GSettings (Linux)/org/gnome/shell/extensions/marketdeck/*
Maintenance config~/.config/marketdeck/maintenance.json

marketdeck db path prints the resolved DB path. marketdeck doctor prints a one-line summary of every directory above and flags missing or unwritable ones.

Pick an AI provider#

The CLI dispatches to whichever vendor CLI you have installed:

Providerbinaryneeds model id?
Claude Codeclaudeno
Codexcodexno
Hermes Agenthermesno
OpenClaw Agentopenclawno
Ollama (local)ollamayes
Ollama Cloudollamayes

The vendor CLI handles authentication entirely — marketdeck never sees an API key. See the security invariant for why.

Set the default provider:

marketdeck config set ai-enhance-provider claude

For ollama specifically, also pick a model:

marketdeck config set ai-enhance-model llama3.2:latest

The list of installed models comes from ollama list; the prefs UI in the GNOME plugin uses the same source.

Add a paper wallet#

Paper trading is the default mode for new users — no key, no exchange account, no risk:

marketdeck wallets add --type paper --name dev --start-balance 5000

Add a real wallet#

Real wallets store a private key in the keyring. The CLI never prompts for the key on its argv; pass it via stdin or use the GNOME plugin's "Add wallet" form. Once stored, the CLI reads it on every signed action and never logs it.

marketdeck wallets add --type real --name live --address 0xYOURADDRESS
echo -n '0xPRIVATEKEY...' | marketdeck wallets set-secret live

The Hyperliquid signing path is exercised by exchanges/hyperliquid/self-test.js — it must pass before any real order goes out. See marketdeck wallets for the full command surface.

Check credentials without printing them:

marketdeck secrets doctor
marketdeck secrets test --scope wallet --ref live
marketdeck secrets rotate-plan --scope all --out /tmp/marketdeck-secrets-rotate.json

marketdeck secrets export-metadata writes only ids, scopes, backend status, and findings. It never exports private keys, API keys, API secrets, or Telegram bot tokens.

Configure an agent#

Agents tie a coin (or a set of coins) to a provider, a system prompt, and an interval:

marketdeck agent add \
    --name eth-momentum \
    --coins ETH \
    --provider claude \
    --interval 30 \
    --wallet dev

--auto-trade lets the agent open paper positions when its analysis yields a structured trade idea. Real-wallet auto-trade is gated behind --wallet pointing at a wallet of type: real.

Edit the agent's prompt:

marketdeck agent edit eth-momentum --prompt "<your custom prompt>"

Optional: Telegram notifications#

Set the bot token + chat id once, then any agent run + every paper trade event can fan out to your phone:

marketdeck telegram status         # check current config
marketdeck telegram test           # send a canned test message

Token and chat id live in GSettings; on hosts without GSettings the CLI keeps them in the secret store. The token is never logged.

What to do next#

  • Run a backtest on the strategy you want the agent to follow before turning auto-trade on.
  • Install the GNOME plugin for a desktop overlay sourced from the same DB.
  • Schedule a recurring agent run via cron: ``` /20 * /usr/bin/marketdeck agent run eth-momentum >> /tmp/eth.log 2>&1 ```