Installation
from zip to a running desk.
Install the dependencies, run the tests, ask the doctor what it can see, and start the desk. Plan about 10 minutes.
01Unzip and install
- UnzipUse a path without spaces, for example
~/outrider. Open a terminal in that folder. - Check Node.js
node --version # v22 or higher - Install the dependenciesRequired This installs
hono,@hono/node-server,better-sqlite3andtsx, plus the optional Anthropic SDK.npm install - Run the testsThe whole suite runs offline in about half a minute. On the release build: 425 tests, 424 pass, 1 is marked to-do, 0 fail.
npm test
02Ask the doctor first
Before you trust the desk, check that it can see every data source from your machine:
node src/cli.mjs doctor
Every line is one check: ✅ works, ❌ failed (with what it breaks), · optional and not set up. At the end it lists config warnings, such as placeholder wallets or an empty Telegram channel list. It exits with an error only when a required check fails.
✅ Hyperliquid info 967 ms SOL $…
✅ Solana RPC 531 ms slot …
✅ pump.fun stream (WS) 1144 ms 20+ pump.fun log messages — stream healthy
· TypeSafe Jev 0 ms TYPESAFE_API_KEY not set → Jev is optional — the desk runs without it
⚠ pump.wsUrl is the public endpoint — it drops heavy streams; get a free Helius/QuickNode WS
A failed Polymarket check only affects the Polymarket books. A failed HL leaderboard check only affects leaders and the liquidation map. See Troubleshooting.
03Create your config.json
cp config.example.json config.json
Then open config.json and fix the two placeholders:
telegram.channels: replaceexample_calls_channelwith public channel names you trust (bare names, no@and no URL), or make it an empty list[].whales.wallets: replacePASTE_A_SOLANA_WALLET_YOU_FOLLOWwith Solana addresses you follow, or make it an empty list[](the default is empty). A placeholder left in makes the WHALE agent fail on every poll.
Everything else can stay as it is. All keys are explained in Configuration.
04First start
npm start # the desk + dashboard + console; Ctrl+C to stop
The terminal prints three things you need:
- A one-time setup codeIn a block that starts with
[admin] No owner account yet. It is shown once, only there. - The dashboard address
Dashboard http://127.0.0.1:8790/ · admin console http://127.0.0.1:8790/admin - One line per cycleEquity, open positions, news, candidates and pump.fun events, every 20 seconds.
Open http://127.0.0.1:8790/admin and create the owner account with the setup code (steps). After that, the dashboard asks you to sign in.
Press Ctrl+C once. The desk finishes the current cycle, saves its state and closes its connections. Press it a second time only if it hangs.
05Other ways to run it
| Command | What it does |
|---|---|
npm start | The full desk: every agent, the dashboard on port 8790 and the console at /admin. |
npm run dash | Dashboard and console only. It reads data/ and trades nothing. Useful on a second machine, or to look at a replay (DASH_DATA=<dir> npm run dash). |
npm run once | One desk cycle, then exit. |
npm run report | PnL, win rate and whether the edge survives without the luckiest trades. |
DASH=0 npm start | The desk without dashboard and console (for example on a headless box where you only want Telegram). |
The console is TypeScript and needs the tsx loader, which the npm scripts add. Plain node src/cli.mjs run starts the desk but prints Admin console off. The other commands (doctor, liq, wallets, replay …) run fine with plain node.
06All commands
node src/cli.mjs help
usage: desk doctor | run | dash | scan | once | report | verify | wallets [N] | holdings | gecko [MINUTES] | fomo [N] | calls [add …] | collect [HOURS] | liq [COINS] [--wallets N] | fit | news | leaders | record | replay | sweep | funding-backtest | trend-backtest | leverage | leverage-backtest [DAYS] [COINS] | jev-report | evolve [COIN] [INTERVAL] [DAYS] [SEED]
Each command is explained on the page it belongs to: wallets and collectors, liq, backtests and leverage, record, replay, sweep, fit, evolve, calls, verify. scan <address> [solana|bsc|base|ethereum] prints a fail-closed token security report (GoPlus, plus honeypot.is for EVM tokens). news prints what the news agent sees right now.