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#
| Kind | Path |
|---|---|
| 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:
| Provider | binary | needs model id? |
|---|---|---|
| Claude Code | claude | no |
| Codex | codex | no |
| Hermes Agent | hermes | no |
| OpenClaw Agent | openclaw | no |
| Ollama (local) | ollama | yes |
| Ollama Cloud | ollama | yes |
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 ```