dexterm-cli 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/packages/agents/src/index.js +2 -0
- package/dist/packages/agents/src/schema.js +22 -1
- package/dist/packages/agents/src/spectator.js +54 -0
- package/dist/packages/agents/src/story.js +532 -0
- package/dist/packages/agents/src/tiers.js +28 -2
- package/dist/packages/agents/src/tools.js +31 -2
- package/dist/packages/autotrade/assets/exit-profile.schema.json +492 -0
- package/dist/packages/autotrade/assets/profiles/moonbag.json +46 -0
- package/dist/packages/autotrade/assets/profiles/runner.json +88 -0
- package/dist/packages/autotrade/assets/profiles/scalp.json +88 -0
- package/dist/packages/autotrade/assets/profiles/swing.json +88 -0
- package/dist/packages/autotrade/assets/strategies/moonbag.json +101 -0
- package/dist/packages/autotrade/assets/strategies/runner.json +101 -0
- package/dist/packages/autotrade/assets/strategies/sample-dip-ladder.json +188 -0
- package/dist/packages/autotrade/assets/strategies/scalp.json +98 -0
- package/dist/packages/autotrade/assets/strategies/swing.json +97 -0
- package/dist/packages/autotrade/assets/strategies/yolo.json +157 -0
- package/dist/packages/autotrade/assets/tapes/yolo-rehearsal.json +1 -0
- package/dist/packages/autotrade/src/account.js +74 -0
- package/dist/packages/autotrade/src/backtest.js +357 -0
- package/dist/packages/autotrade/src/basis-text.js +32 -0
- package/dist/packages/autotrade/src/chat/approvals.js +484 -0
- package/dist/packages/autotrade/src/chat/audit.js +140 -0
- package/dist/packages/autotrade/src/chat/config.js +93 -0
- package/dist/packages/autotrade/src/chat/connector.js +24 -0
- package/dist/packages/autotrade/src/chat/control.js +103 -0
- package/dist/packages/autotrade/src/chat/fake.js +100 -0
- package/dist/packages/autotrade/src/chat/format.js +71 -0
- package/dist/packages/autotrade/src/chat/hub.js +187 -0
- package/dist/packages/autotrade/src/chat/index.js +18 -0
- package/dist/packages/autotrade/src/chat/notify.js +292 -0
- package/dist/packages/autotrade/src/chat/pairing.js +46 -0
- package/dist/packages/autotrade/src/chat/redact.js +48 -0
- package/dist/packages/autotrade/src/chat/secrets.js +99 -0
- package/dist/packages/autotrade/src/chat/service.js +248 -0
- package/dist/packages/autotrade/src/chat/telegram.js +290 -0
- package/dist/packages/autotrade/src/desk-executor.js +188 -0
- package/dist/packages/autotrade/src/engine.js +387 -0
- package/dist/packages/autotrade/src/execution-port.js +97 -0
- package/dist/packages/autotrade/src/fleet-config.js +169 -0
- package/dist/packages/autotrade/src/fleet-control.js +276 -0
- package/dist/packages/autotrade/src/fleet.js +639 -0
- package/dist/packages/autotrade/src/index.js +53 -0
- package/dist/packages/autotrade/src/ledger.js +108 -0
- package/dist/packages/autotrade/src/live-source.js +182 -0
- package/dist/packages/autotrade/src/monitor-daemon.js +715 -0
- package/dist/packages/autotrade/src/monitor.js +190 -0
- package/dist/packages/autotrade/src/ollama-sessions.js +137 -0
- package/dist/packages/autotrade/src/paper-accounts.js +72 -0
- package/dist/packages/autotrade/src/replay.js +198 -0
- package/dist/packages/autotrade/src/runner-config.js +99 -0
- package/dist/packages/autotrade/src/runner.js +872 -0
- package/dist/packages/autotrade/src/safety.js +243 -0
- package/dist/packages/autotrade/src/session.js +269 -0
- package/dist/packages/autotrade/src/sessions.js +503 -0
- package/dist/packages/autotrade/src/store.js +250 -0
- package/dist/packages/autotrade/src/strategy.js +256 -0
- package/dist/packages/autotrade/src/trade-ledger.js +241 -0
- package/dist/packages/autotrade/src/yolo.js +140 -0
- package/dist/packages/cli/assets/claude/analyst-system.md +4 -4
- package/dist/packages/cli/assets/claude/plugin/skills/REGISTRY.json +1 -1
- package/dist/packages/cli/assets/claude/plugin/skills/larp-check/SKILL.md +15 -8
- package/dist/packages/cli/assets/claude/plugin/skills/token-dossier/SKILL.md +1 -1
- package/dist/packages/cli/src/agent-cmd.js +6 -4
- package/dist/packages/cli/src/agent-spectator.js +17 -1
- package/dist/packages/cli/src/ai-cmd.js +412 -0
- package/dist/packages/cli/src/analyst/backend.js +105 -15
- package/dist/packages/cli/src/analyst/codex.js +14 -9
- package/dist/packages/cli/src/analyst/larp-gauge.js +60 -0
- package/dist/packages/cli/src/analyst/ollama.js +263 -0
- package/dist/packages/cli/src/analyst/session.js +17 -3
- package/dist/packages/cli/src/app-help-gen.js +51 -15
- package/dist/packages/cli/src/autotrade-cmd/audit.js +57 -0
- package/dist/packages/cli/src/autotrade-cmd/backtest.js +199 -0
- package/dist/packages/cli/src/autotrade-cmd/flatten.js +64 -0
- package/dist/packages/cli/src/autotrade-cmd/fleet.js +397 -0
- package/dist/packages/cli/src/autotrade-cmd/requests.js +79 -0
- package/dist/packages/cli/src/autotrade-cmd/run.js +413 -0
- package/dist/packages/cli/src/autotrade-cmd/stop.js +76 -0
- package/dist/packages/cli/src/autotrade-cmd/strategies.js +198 -0
- package/dist/packages/cli/src/autotrade-cmd/strategy-control.js +174 -0
- package/dist/packages/cli/src/autotrade-cmd/telegram-host.js +101 -0
- package/dist/packages/cli/src/autotrade-cmd.js +168 -0
- package/dist/packages/cli/src/backtest-cmd.js +13 -2
- package/dist/packages/cli/src/display.js +208 -23
- package/dist/packages/cli/src/doctor.js +62 -3
- package/dist/packages/cli/src/export.js +10 -2
- package/dist/packages/cli/src/index.js +1 -1
- package/dist/packages/cli/src/ledger-cmd.js +288 -0
- package/dist/packages/cli/src/live/chart-fills.js +46 -0
- package/dist/packages/cli/src/live/dev-history.js +31 -15
- package/dist/packages/cli/src/live/index.js +28 -90
- package/dist/packages/cli/src/live/screens/newpairs-live.js +1 -1
- package/dist/packages/cli/src/live/screens/token-live.js +48 -15
- package/dist/packages/cli/src/live/screens/watchlist-live.js +1 -1
- package/dist/packages/cli/src/live/trade.js +30 -453
- package/dist/packages/cli/src/live/watchlist.js +1 -1
- package/dist/packages/cli/src/main.js +290 -199
- package/dist/packages/cli/src/mcp-cmd.js +7 -1
- package/dist/packages/cli/src/mcp-follow.js +103 -6
- package/dist/packages/cli/src/plan-cmd.js +15 -5
- package/dist/packages/cli/src/pnl-app.js +31 -21
- package/dist/packages/cli/src/pnl-card.js +158 -21
- package/dist/packages/cli/src/popup.js +38 -6
- package/dist/packages/cli/src/record-cmd.js +141 -20
- package/dist/packages/cli/src/scan/ui.js +7 -1
- package/dist/packages/cli/src/screens/agent-hud.js +773 -0
- package/dist/packages/cli/src/screens/analyst-session.js +11 -4
- package/dist/packages/cli/src/screens/analyst.js +3 -2
- package/dist/packages/cli/src/screens/autotrade-keys.js +169 -0
- package/dist/packages/cli/src/screens/autotrade-proposals.js +123 -0
- package/dist/packages/cli/src/screens/autotrade-screen.js +725 -0
- package/dist/packages/cli/src/screens/autotrade-ui.js +640 -0
- package/dist/packages/cli/src/screens/autotrade-worker.js +89 -0
- package/dist/packages/cli/src/screens/brain.js +634 -0
- package/dist/packages/cli/src/screens/newpairs.js +1 -1
- package/dist/packages/cli/src/screens/overlay.js +5 -2
- package/dist/packages/cli/src/screens/plans.js +5 -17
- package/dist/packages/cli/src/screens/pnl-chip.js +144 -0
- package/dist/packages/cli/src/screens/positions.js +6 -28
- package/dist/packages/cli/src/screens/screener.js +1 -0
- package/dist/packages/cli/src/screens/ticket.js +38 -205
- package/dist/packages/cli/src/screens/token.js +18 -9
- package/dist/packages/cli/src/screens/trending.js +1 -1
- package/dist/packages/cli/src/state.js +88 -18
- package/dist/packages/cli/src/telegram-cmd.js +451 -0
- package/dist/packages/cli/src/trade.js +3 -128
- package/dist/packages/cli/src/version.js +1 -1
- package/dist/packages/cli/src/wallet-cmd.js +39 -340
- package/dist/packages/cli/src/wallet-command.js +8 -11
- package/dist/packages/cli/src/widgets.js +0 -12
- package/dist/packages/custom/src/config.js +20 -2
- package/dist/packages/custom/src/schema.js +41 -10
- package/dist/packages/custom/src/workspace.js +3 -3
- package/dist/packages/data/src/basis.js +191 -0
- package/dist/packages/data/src/detail.js +53 -2
- package/dist/packages/data/src/index.js +2 -14
- package/dist/packages/data/src/larp/score.js +220 -0
- package/dist/packages/data/src/larp/x-account.js +316 -0
- package/dist/packages/data/src/store.js +14 -5
- package/dist/packages/data/src/trade/agent/paper-desk.js +300 -23
- package/dist/packages/data/src/trade/agent/rendezvous.js +3 -2
- package/dist/packages/data/src/trade/bridge.js +4 -102
- package/dist/packages/data/src/trade/ledger/export.js +101 -0
- package/dist/packages/data/src/trade/ledger/file.js +135 -0
- package/dist/packages/data/src/trade/ledger/fold.js +191 -0
- package/dist/packages/data/src/trade/ledger/index.js +9 -0
- package/dist/packages/data/src/trade/ledger/schema.js +83 -0
- package/dist/packages/data/src/trade/ledger/sources.js +307 -0
- package/dist/packages/data/src/trade/ledger/stats.js +123 -0
- package/dist/packages/data/src/trade/ledger/tags.js +116 -0
- package/dist/packages/data/src/trade/ledger/view.js +51 -0
- package/dist/packages/data/src/trade/plans/engine.js +7 -0
- package/dist/packages/data/src/trade/plans/index.js +0 -1
- package/dist/packages/data/src/trade/plans/mandate.js +28 -15
- package/dist/packages/data/src/trade/plans/service.js +4 -28
- package/dist/packages/mcp/assets/kb/app-help/autotrade-chat.md +48 -0
- package/dist/packages/mcp/assets/kb/app-help/autotrade-parallel.md +42 -0
- package/dist/packages/mcp/assets/kb/app-help/autotrade-runner.md +35 -0
- package/dist/packages/mcp/assets/kb/app-help/autotrade-stop.md +37 -0
- package/dist/packages/mcp/assets/kb/app-help/autotrade-strategies.md +35 -0
- package/dist/packages/mcp/assets/kb/app-help/autotrade-telegram.md +40 -0
- package/dist/packages/mcp/assets/kb/app-help/chart-trade-markers.md +42 -0
- package/dist/packages/mcp/assets/kb/app-help/dev-history.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/larp-check.md +5 -1
- package/dist/packages/mcp/assets/kb/app-help/link-a-wallet.md +4 -10
- package/dist/packages/mcp/assets/kb/app-help/live-trading.md +38 -0
- package/dist/packages/mcp/assets/kb/app-help/live-yolo.md +34 -0
- package/dist/packages/mcp/assets/kb/app-help/order-plans.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/price-or-marketcap.md +5 -2
- package/dist/packages/mcp/assets/kb/app-help/scan-mode.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/screen-analyst.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-autotrade.md +217 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-kol.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-newpairs.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-positions.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-screener.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-token.md +6 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-trending.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/screen-watchlist.md +3 -0
- package/dist/packages/mcp/assets/kb/app-help/spectate-an-agent.md +2 -1
- package/dist/packages/mcp/assets/kb/app-help/standing-mandates.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/trade-ledger.md +54 -0
- package/dist/packages/mcp/assets/kb/app-help/use-local-model.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-agent-paper-trading.md +7 -3
- package/dist/packages/mcp/assets/kb/docs/docs-agents-reading-your-trade-ledger.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-untrusted-by-default.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-if-claude-is-missing.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-starting-a-run.md +2 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-use-a-local-model-instead.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-it-sees.md +2 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-backtests-and-their-limits.md +56 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-change-a-strategy-by-chat.md +49 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-checking-the-record-of-a-run.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-comparing-them.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-exits-and-wakes.md +76 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-how-a-stop-reaches-the-runner.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-on-the-q-screen.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-one-strategy-or-all-of-them.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-paper-accounts.md +50 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-presets.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-running-it-all-day.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-sessions-and-their-limits.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-several-strategies-at-once.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-stopping-it.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-strategies-and-presets.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-autotrade-json-file.md +48 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-heartbeat.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-run-file-and-the-heartbeat.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-the-runner-and-candidate-sessions.md +45 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-what-each-session-shows-first.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-what-it-costs-claude-usage-per-session.md +58 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-what-it-is-paper-self-directed.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-what-it-will-not-do.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-which-account-day-caps-and-the-usage-guard.md +44 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade-your-strategies.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-autotrade.md +22 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-before-any-experimental-trading.md +2 -2
- package/dist/packages/mcp/assets/kb/docs/docs-beginners.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-chart-markers.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-chart-y-axis.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-environment-variables.md +4 -1
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-files-on-disk.md +1 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-headless-recorder-dexterm-record.md +3 -1
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-price-display-mode.md +9 -7
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-2-the-one-key-mirror-ticket-a-proposal.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-3-capped-auto-mirror-default-off-less.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-what-is-proven-what-is-not.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-recorded-history-and-retention.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-sources.md +1 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-first-run.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-install.md +3 -3
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-requirements.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-running-the-tests.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-larp-measured-accuracy.md +1 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-the-larp-score.md +60 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-the-verdict.md +0 -2
- package/dist/packages/mcp/assets/kb/docs/docs-larp-what-it-looks-at.md +4 -1
- package/dist/packages/mcp/assets/kb/docs/docs-larp.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-changed-in-0-1-7.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-stopping.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-the-short-version.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-using-a-trading-bot-with-dexterm.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-what-dexterm-does-not-do.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading-what-dexterm-does.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-live-trading.md +23 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-another-machine.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-autotrade-on-a-local-model.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-check-your-model-dexterm-ai-probe.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-how-we-checked.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-models-without-tool-calling.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-pick-the-engine-globally-or-per-surface.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-restriction-profiles.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-set-it-up-in-two-minutes.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-troubleshooting.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-what-runs-on-a-local-model.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-what-stays-outside-the-model.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-which-model.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama-your-own-agent-on-the-local-model.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-ollama.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-letting-an-agent-paper-trade-experimental.md +3 -4
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-link-a-wallet-read-only.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-order-plans-and-standing-mandates.md +4 -13
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-panic.md +4 -7
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-paper-only-mandates.md +40 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-pnl-cards.md +7 -7
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-safety-model.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-ticket.md +3 -4
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-trade-ledger.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-wallet.md +4 -5
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-trade-moments.md +4 -5
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading.md +4 -5
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-buy-and-sell-markers.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-market-cap-axis.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-what-it-shows.md +3 -1
- package/dist/packages/mcp/assets/kb/docs/docs-scan-the-read.md +2 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-autotrade-paper.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-dev-history.md +10 -7
- package/dist/packages/mcp/assets/kb/docs/docs-screens-order-plans.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-screens-token-screen.md +2 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-follow-over-mcp-in-the-running-terminal.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-limits.md +2 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-the-agent-hud-spectator-v2.md +58 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-the-brain-view-and-the-pnl-chip.md +46 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-the-three-surfaces.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-spectator.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-approve-one-tap-entries.md +50 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-control-the-commands.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-if-something-goes-wrong.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-notify-what-reaches-your-phone.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-set-it-up.md +47 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-the-record.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-what-it-is.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram-what-it-will-not-do.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-telegram.md +23 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-common-questions.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-doctor-lines.md +4 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-linux-and-windows.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-voice.md +1 -1
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-1-replay-it-on-your-own-history.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-2-run-it-on-paper.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-3-watch-it-and-stop-it.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-the-rules.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-what-it-is.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo-what-it-will-not-do.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-yolo.md +26 -0
- package/dist/packages/mcp/assets/kb/entries/autotrade.md +38 -0
- package/dist/packages/mcp/src/app-help.js +1 -1
- package/dist/packages/mcp/src/autotrade-tools.js +944 -0
- package/dist/packages/mcp/src/backtest-requests.js +71 -0
- package/dist/packages/mcp/src/engine/config.js +159 -0
- package/dist/packages/mcp/src/engine/index.js +10 -0
- package/dist/packages/mcp/src/engine/loop.js +101 -0
- package/dist/packages/mcp/src/engine/mcp-client.js +123 -0
- package/dist/packages/mcp/src/engine/ollama.js +258 -0
- package/dist/packages/mcp/src/engine/probe.js +110 -0
- package/dist/packages/mcp/src/engine/reason.js +35 -0
- package/dist/packages/mcp/src/engine/restrictions.js +111 -0
- package/dist/packages/mcp/src/index.js +7 -1
- package/dist/packages/mcp/src/ledger-tools.js +346 -0
- package/dist/packages/mcp/src/paper-agent.js +5 -2
- package/dist/packages/mcp/src/server.js +285 -36
- package/dist/packages/mcp/src/spectator-sink.js +85 -0
- package/dist/packages/packs/src/backtest.js +3 -1
- package/dist/packages/packs/src/index.js +1 -0
- package/dist/packages/packs/src/larp-score-backtest.js +119 -0
- package/dist/packages/popup/src/pages/chart-lib.js +169 -35
- package/dist/packages/popup/src/pages/chart.css +18 -0
- package/dist/packages/popup/src/pages/chart.html +6 -1
- package/dist/packages/popup/src/pages/chart.js +136 -10
- package/dist/packages/popup/src/pages/spectator.css +45 -0
- package/dist/packages/popup/src/pages/spectator.html +1 -0
- package/dist/packages/popup/src/pages/spectator.js +69 -0
- package/dist/packages/popup/src/protocol.js +4 -0
- package/dist/packages/popup/src/server.js +9 -1
- package/dist/packages/recorder/src/dev-history.js +7 -3
- package/dist/packages/recorder/src/index.js +2 -0
- package/dist/packages/recorder/src/recorder.js +63 -6
- package/dist/packages/recorder/src/retention.js +100 -0
- package/dist/packages/recorder/src/schema.js +34 -1
- package/dist/packages/recorder/src/ticks.js +237 -0
- package/dist/packages/tui/src/canvas.js +7 -0
- package/dist/packages/tui/src/fmt.js +53 -0
- package/dist/packages/tui/src/index.js +1 -0
- package/dist/packages/tui/src/keymap.js +25 -1
- package/dist/packages/tui/src/markers.js +219 -0
- package/dist/packages/tui/src/widgets.js +158 -6
- package/package.json +2 -1
- package/dist/packages/data/src/trade/caps.js +0 -323
- package/dist/packages/data/src/trade/executor.js +0 -933
- package/dist/packages/data/src/trade/plans/executor-live.js +0 -220
- package/dist/packages/data/src/trade/rpc-exec.js +0 -229
- package/dist/packages/data/src/trade/signer/client.js +0 -197
- package/dist/packages/data/src/trade/signer/fast-wallet.js +0 -154
- package/dist/packages/data/src/trade/signer/host.js +0 -97
- package/dist/packages/data/src/trade/signer/main.js +0 -121
- package/dist/packages/data/src/trade/signer/probe-builder.js +0 -85
- package/dist/packages/data/src/trade/signer/protocol.js +0 -92
- package/dist/packages/data/src/trade/signer/service.js +0 -400
- package/dist/packages/data/src/trade/signer/sol-usd-feed.js +0 -98
- package/dist/packages/data/src/trade/sol-usd.js +0 -86
- package/dist/packages/data/src/trade/swap-build.js +0 -108
- package/dist/packages/data/src/trade/token-delta.js +0 -201
- package/dist/packages/data/vendor/solana-web3/LICENSE +0 -20
- package/dist/packages/data/vendor/solana-web3/NOTICE.md +0 -13
- package/dist/packages/data/vendor/solana-web3/index.iife.min.js +0 -20
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-a-live-ticket.md +0 -42
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-before-you-press-size-vs-caps.md +0 -34
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-devnet-signer-mainnet-token.md +0 -35
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-jupiter-rate-limits.md +0 -33
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-link-a-wallet.md +0 -32
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-live-trading-devnet-first.md +0 -30
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-mainnet.md +0 -31
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-live-fire-path-devnet-the-fast-wallet.md +0 -41
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-signer-process.md +0 -34
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-what-the-live-path-keeps.md +0 -37
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-your-first-live-trade.md +0 -41
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-autotrade-the-autotrade-json-file
|
|
3
|
+
title: Autotrade (paper) › Several strategies at once › The autotrade.json file
|
|
4
|
+
kind: docs
|
|
5
|
+
page: autotrade
|
|
6
|
+
page_title: Autotrade (paper)
|
|
7
|
+
heading: The autotrade.json file
|
|
8
|
+
anchor: the-autotrade-json-file
|
|
9
|
+
url: https://dexterm.xyz/docs/autotrade#the-autotrade-json-file
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- autotrade
|
|
13
|
+
- json
|
|
14
|
+
- file
|
|
15
|
+
- several
|
|
16
|
+
- strategies
|
|
17
|
+
- once
|
|
18
|
+
- paper
|
|
19
|
+
confidence: high
|
|
20
|
+
owner: maintainers
|
|
21
|
+
origin: docs-generated
|
|
22
|
+
reviewed_by: generated@2026-10-16
|
|
23
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
24
|
+
sources:
|
|
25
|
+
- site/content/docs/autotrade.md
|
|
26
|
+
date: 2026-10-16
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"schema": "dexterm-autotrade/1",
|
|
32
|
+
"strategies": [
|
|
33
|
+
{ "id": "moon-a", "preset": "moonbag", "bankroll": { "usd": 500 } },
|
|
34
|
+
{ "id": "fast", "preset": "my-scalp", "bankroll": { "sol": 1 }, "caps": { "modelUsdPerDay": 2, "maxSessions": 1 } },
|
|
35
|
+
{ "id": "dip", "file": "/Users/you/strategies/dip.json", "bankroll": { "usd": 200 }, "enabled": false }
|
|
36
|
+
],
|
|
37
|
+
"global": { "maxConcurrentSessions": 3, "modelUsdPerDay": 15 }
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
- **`id`** names the strategy in this run: in its run file, on the Q screen and in every alert. Each id is used once.
|
|
42
|
+
- **`preset`** is a shipped preset or one of your own strategies; **`file`** is an absolute path to a strategy file. Give exactly one.
|
|
43
|
+
- **`bankroll`** is in USD, or in SOL (converted at the SOL price when the run starts; a replay takes `"solUsd"` or `--sol-usd`). Without it the strategy's own bankroll applies.
|
|
44
|
+
- **`caps`** can only tighten a strategy: `maxSessions`, `modelUsdPerDay`, `candidateSessionsPerDay`, `positionSessionsPerDay` and `turnsPerDay`. The stricter of the strategy, these caps, `runner.json` and `global` always applies.
|
|
45
|
+
- **`enabled: false`** keeps a strategy in the list without starting it. `dexterm autotrade start <id>` starts it later in the running run.
|
|
46
|
+
- **`global`** holds the shared limits. The defaults are 3 sessions open at once, $20 of model spend a day, 96 candidate and 96 position sessions a day, and 4,000 turns a day. The day caps in `runner.json` still apply on top.
|
|
47
|
+
|
|
48
|
+
Up to 8 strategies (a strategy on several paper accounts counts once per account). Every strategy must check out before anything starts: a typo, an unknown preset or a strategy that is not on paper stops the whole run with each problem named. `--config FILE` reads another file. The file is yours: no tool, chat or agent can add a strategy to it or change a bankroll or a cap.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-autotrade-the-heartbeat
|
|
3
|
+
title: Autotrade (paper) › Stopping it › The heartbeat
|
|
4
|
+
kind: docs
|
|
5
|
+
page: autotrade
|
|
6
|
+
page_title: Autotrade (paper)
|
|
7
|
+
heading: The heartbeat
|
|
8
|
+
anchor: the-heartbeat
|
|
9
|
+
url: https://dexterm.xyz/docs/autotrade#the-heartbeat
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- autotrade
|
|
13
|
+
- heartbeat
|
|
14
|
+
- stopping
|
|
15
|
+
- paper
|
|
16
|
+
confidence: high
|
|
17
|
+
owner: maintainers
|
|
18
|
+
origin: docs-generated
|
|
19
|
+
reviewed_by: generated@2026-10-16
|
|
20
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
21
|
+
sources:
|
|
22
|
+
- site/content/docs/autotrade.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
- The runner rewrites `runner-status.json` every 10 seconds. If it cannot (a full disk, a removed folder), it takes no new entries until it can again, because the `Q` screen and the exit monitor would see it as gone. With no fresh heartbeat the `Q` screen shows the runner as stale.
|
|
27
|
+
- Each position keeps its own `maxHoldMinutes` exit, and a session that dies or times out never holds up an exit.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-autotrade-the-run-file-and-the-heartbeat
|
|
3
|
+
title: Autotrade (paper) › The runner and candidate sessions › The run file and the heartbeat
|
|
4
|
+
kind: docs
|
|
5
|
+
page: autotrade
|
|
6
|
+
page_title: Autotrade (paper)
|
|
7
|
+
heading: The run file and the heartbeat
|
|
8
|
+
anchor: the-run-file-and-the-heartbeat
|
|
9
|
+
url: https://dexterm.xyz/docs/autotrade#the-run-file-and-the-heartbeat
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- autotrade
|
|
13
|
+
- run
|
|
14
|
+
- file
|
|
15
|
+
- heartbeat
|
|
16
|
+
- runner
|
|
17
|
+
- candidate
|
|
18
|
+
- sessions
|
|
19
|
+
- paper
|
|
20
|
+
confidence: high
|
|
21
|
+
owner: maintainers
|
|
22
|
+
origin: docs-generated
|
|
23
|
+
reviewed_by: generated@2026-10-16
|
|
24
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
25
|
+
sources:
|
|
26
|
+
- site/content/docs/autotrade.md
|
|
27
|
+
date: 2026-10-16
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
Every step goes to `~/.dexterm/autotrade/runs/<run>.jsonl`, written as it happens: each message sent, each raw reply and parsed decision, the clamp with its cuts, fills, events, refusals, session costs and the usage readings. Each line carries the hash of the one before it, so an edited, missing or reordered line shows. A summary sits next to it, and `~/.dexterm/autotrade/runner-status.json` (candidates, sessions, positions, spend and the last steps) is rewritten every 10 seconds as the runner's heartbeat. The coins it is working are also handed to the recorder's 5-second sampling (`dexterm record run --focus-ticks`).
|
|
31
|
+
|
|
32
|
+
**Today's limits.** Orders fill on the runner's own paper book with the backtest's fill model (price impact on the pool, fee, slippage). Filling through the paper desk and the exit monitor as its own process are still to come. To stop the runner, see Stopping it (https://dexterm.xyz/docs/autotrade#stopping-it).
|
|
33
|
+
|
|
34
|
+
Paper only: `--live` is refused, a strategy in live mode is refused, and nothing in the runner can arm a mandate, sign, or touch a wallet or a key.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-autotrade-the-runner-and-candidate-sessions
|
|
3
|
+
title: Autotrade (paper) › The runner and candidate sessions
|
|
4
|
+
kind: docs
|
|
5
|
+
page: autotrade
|
|
6
|
+
page_title: Autotrade (paper)
|
|
7
|
+
heading: The runner and candidate sessions
|
|
8
|
+
anchor: the-runner-and-candidate-sessions
|
|
9
|
+
url: https://dexterm.xyz/docs/autotrade#the-runner-and-candidate-sessions
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- autotrade
|
|
13
|
+
- runner
|
|
14
|
+
- candidate
|
|
15
|
+
- sessions
|
|
16
|
+
- paper
|
|
17
|
+
confidence: high
|
|
18
|
+
owner: maintainers
|
|
19
|
+
origin: docs-generated
|
|
20
|
+
reviewed_by: generated@2026-10-16
|
|
21
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
22
|
+
sources:
|
|
23
|
+
- site/content/docs/autotrade.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
dexterm autotrade run my-swing --paper # live data, your own Claude login
|
|
29
|
+
dexterm autotrade run my-swing --paper --replay tape.json # a recorded tape, paced
|
|
30
|
+
dexterm autotrade run my-swing --paper --stub --replay tape.json # a scripted agent: no Claude usage
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
`dexterm autotrade run` works one strategy on paper, headless, and only one runner runs per machine. It screens the same live data as the app with the app's free sources and request limits: the screener's coins every 10 seconds, and the coins it is working (candidates and positions) every 5 seconds, 30 coins per DexScreener call, under a daily call ceiling. `--replay FILE` paces a tape saved with `dexterm autotrade extract` instead; `--max-minutes N` stops after N minutes; Ctrl+C stops it cleanly.
|
|
34
|
+
|
|
35
|
+
**It talks in market cap.** The run's lines (`BUY ABC [swing]: $25.00 at $69.7K mcap`), the candidate's DOSSIER, the ENGINE notes and the EVENTs your agent reads give levels as market caps by default (with the price beside them in the DOSSIER), and your agent is told to say levels the same way. `--price` (or `display.priceMode: "price"`) switches the wording to prices; the trades are the same either way, because the engine only reads prices. The run file's fills keep `price` and add `mcap`.
|
|
36
|
+
|
|
37
|
+
**A candidate gets one session.** A coin that passes your entry rules, and that your strategy would still allow an entry for (a free slot, cash, no halt), becomes a candidate and gets one session on your own `claude` login:
|
|
38
|
+
|
|
39
|
+
- The first message is the full picture: the market now and its recent history, holders and concentration (the top-10 share the strategy's top-10 gate reads, which is Jupiter's, next to the top-10 of the largest accounts from your RPC with pools, bonding curves, launch vaults, locks and burns left out, each named with its source; when the two disagree the message says so), security (authorities and the RugCheck read), candles, recent trades, the coin's creator, and which of these are unavailable and why, plus your bounds (the exit profiles, the largest size your strategy allows, the paper book, open positions).
|
|
40
|
+
- After that, only what changed, with each change in percent: every 15 seconds (`agent.deltaEverySec`), or at once on a fast move (8% in price or a 15% drop in liquidity). Updates that pile up while the agent is thinking go as one message.
|
|
41
|
+
- Your agent answers every message with one typed decision: `enter`, `wait` or `skip` before a position; `hold`, `exit`, `tighten` or `reprofile` once it holds one. Anything outside that closed form (an unknown field, a size out of range) does nothing.
|
|
42
|
+
- An `enter` is clamped by your strategy, and every cut is named in the run file; the order fills on the paper book after the strategy's latency, and is refused if the price ran past the slippage tolerance in between. Fills and refusals reach the agent as notes on its next message.
|
|
43
|
+
- With a position, the exits in your profile run on their own; the agent hears about them as events and can only lower the risk (exit, trim, tighten) or move along the profile's allowed edges. When the position closes, its session ends.
|
|
44
|
+
- A reply that arrives after its candidate was dropped (it stopped matching, the agent skipped, the session ran out) is written down and never executed.
|
|
45
|
+
- With `agent.respawnOnWake` in the strategy, a judgement call on a position whose session has already ended opens a short position session that answers once.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-autotrade-what-each-session-shows-first
|
|
3
|
+
title: Autotrade (paper) › Stopping it › What each session shows first
|
|
4
|
+
kind: docs
|
|
5
|
+
page: autotrade
|
|
6
|
+
page_title: Autotrade (paper)
|
|
7
|
+
heading: What each session shows first
|
|
8
|
+
anchor: what-each-session-shows-first
|
|
9
|
+
url: https://dexterm.xyz/docs/autotrade#what-each-session-shows-first
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- autotrade
|
|
13
|
+
- each
|
|
14
|
+
- session
|
|
15
|
+
- shows
|
|
16
|
+
- first
|
|
17
|
+
- stopping
|
|
18
|
+
- paper
|
|
19
|
+
confidence: high
|
|
20
|
+
owner: maintainers
|
|
21
|
+
origin: docs-generated
|
|
22
|
+
reviewed_by: generated@2026-10-16
|
|
23
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
24
|
+
sources:
|
|
25
|
+
- site/content/docs/autotrade.md
|
|
26
|
+
date: 2026-10-16
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
Before its first answer counts, a session's start event must list no tools and no MCP servers; otherwise the session ends. The run file also records how many plugins, agents and skills your Claude reports for the session: your own plugins and agents can still list as loaded, and with no tools they cannot act.
|
|
30
|
+
|
|
31
|
+
Paper only. Not financial advice.
|
package/dist/packages/mcp/assets/kb/docs/docs-autotrade-what-it-costs-claude-usage-per-session.md
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-autotrade-what-it-costs-claude-usage-per-session
|
|
3
|
+
title: Autotrade (paper) › What it costs (Claude usage per session)
|
|
4
|
+
kind: docs
|
|
5
|
+
page: autotrade
|
|
6
|
+
page_title: Autotrade (paper)
|
|
7
|
+
heading: What it costs (Claude usage per session)
|
|
8
|
+
anchor: what-it-costs-claude-usage-per-session
|
|
9
|
+
url: https://dexterm.xyz/docs/autotrade#what-it-costs-claude-usage-per-session
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- autotrade
|
|
13
|
+
- costs
|
|
14
|
+
- claude
|
|
15
|
+
- usage
|
|
16
|
+
- per
|
|
17
|
+
- session
|
|
18
|
+
- paper
|
|
19
|
+
confidence: high
|
|
20
|
+
owner: maintainers
|
|
21
|
+
origin: docs-generated
|
|
22
|
+
reviewed_by: generated@2026-10-16
|
|
23
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
24
|
+
sources:
|
|
25
|
+
- site/content/docs/autotrade.md
|
|
26
|
+
date: 2026-10-16
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
A session costs Claude usage on your own account, counted from what `claude` reports (`total_cost_usd`; on a subscription that figure is notional, but it is what the runner's caps count). The screening itself uses no model at all: Claude is only called when a coin matches.
|
|
30
|
+
|
|
31
|
+
**Measured on `sonnet`** (the presets' model) on 2026-10-21: a two-hour run of the `moonbag` preset on live data, with the strategy's own session limits and a $2.75 day cap in `runner.json`:
|
|
32
|
+
|
|
33
|
+
| in that run | measured |
|
|
34
|
+
|---|---|
|
|
35
|
+
| coins that matched and got a session | 17 in two hours |
|
|
36
|
+
| turns | 24: 16 skips, 5 waits, 1 entry and 2 answers about the position |
|
|
37
|
+
| a first look at a coin (one turn) | $0.006 to $0.010 |
|
|
38
|
+
| a coin watched for a few updates, then skipped (2 to 3 turns) | $0.012 to $0.018 |
|
|
39
|
+
| the one full loop: entry, a cost-recovery event, the close (3 turns) | $0.017 |
|
|
40
|
+
| **the whole run** | **$0.17**, well under its cap |
|
|
41
|
+
|
|
42
|
+
Replies took 2.6 to 8.8 seconds (median 5.3), and the first message was about 1.1 KB. The run file of that run verifies with `dexterm autotrade audit --verify`.
|
|
43
|
+
|
|
44
|
+
How much a run costs depends mostly on how many coins match your entry rules and how long each one is watched: every update your agent reads is a turn, and a held position adds a turn for each event. Your caps bound it either way: $0.50 per session and $10 a day from the strategy, and the day caps and usage guard in `runner.json`.
|
|
45
|
+
|
|
46
|
+
**Measured on `haiku`** (`--model haiku`), on one recorded coin replayed at a 1.5-second pace with the `swing` preset and its session budget cut to $0.05:
|
|
47
|
+
|
|
48
|
+
| session | what happened | turns | cost |
|
|
49
|
+
|---|---|---|---|
|
|
50
|
+
| 1 | full picture → wait, update → skip | 2 | $0.0009 |
|
|
51
|
+
| 2 | full picture → wait, two updates → skip | 3 | $0.0012 |
|
|
52
|
+
| 3 | full picture → updates → enter (clamped to $80), two take-profit events → hold, trail exit → acknowledged, session ended | 7 | $0.0023 |
|
|
53
|
+
|
|
54
|
+
Three sessions, 12 turns, **$0.0044 in all**; on haiku a full candidate → position → close loop was **$0.0023**. Replies took 1.3 to 4.9 seconds (median 2.8).
|
|
55
|
+
|
|
56
|
+
The run file has each session's cost, and `runner-status.json` today's total.
|
|
57
|
+
|
|
58
|
+
Paper only. Not financial advice.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-autotrade-what-it-is-paper-self-directed
|
|
3
|
+
title: Autotrade (paper) › What it is (paper, self-directed)
|
|
4
|
+
kind: docs
|
|
5
|
+
page: autotrade
|
|
6
|
+
page_title: Autotrade (paper)
|
|
7
|
+
heading: What it is (paper, self-directed)
|
|
8
|
+
anchor: what-it-is-paper-self-directed
|
|
9
|
+
url: https://dexterm.xyz/docs/autotrade#what-it-is-paper-self-directed
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- autotrade
|
|
13
|
+
- paper
|
|
14
|
+
- self-directed
|
|
15
|
+
confidence: high
|
|
16
|
+
owner: maintainers
|
|
17
|
+
origin: docs-generated
|
|
18
|
+
reviewed_by: generated@2026-10-16
|
|
19
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
20
|
+
sources:
|
|
21
|
+
- site/content/docs/autotrade.md
|
|
22
|
+
date: 2026-10-16
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
Autotrade (paper) is a strategy file plus an engine that replays it. You write the rules: which coins count as candidates, how a position is sized, how it is exited, and how much loss is allowed. The engine applies exactly those rules, and every size is clamped by them. It runs on **paper** by default: there is no key, wallet or signer anywhere in a strategy, and a paper run never signs or sends anything. A strategy that says `"mode": "live"` validates with a warning and runs only with `dexterm autotrade run --live`, through the live signer (https://dexterm.xyz/docs/live-trading) and its caps (experimental, can lose all the funds in the trading wallet).
|
|
26
|
+
|
|
27
|
+
It is self-directed: your strategies, on your machine, with your own recorded history. Nobody runs a strategy for you, and a preset is an example, not a recommendation.
|
|
28
|
+
|
|
29
|
+
What ships today, covered below:
|
|
30
|
+
|
|
31
|
+
- Strategies and presets (https://dexterm.xyz/docs/autotrade#strategies-and-presets): presets, your own strategy files, validation and the change journal, on the command line or on the `Q` screen (https://dexterm.xyz/docs/autotrade#on-the-q-screen).
|
|
32
|
+
- Backtests and their limits (https://dexterm.xyz/docs/autotrade#backtests-and-their-limits): replays on recorded history, the held-out check, and what the data cannot tell you.
|
|
33
|
+
- The runner and candidate sessions (https://dexterm.xyz/docs/autotrade#the-runner-and-candidate-sessions): `dexterm autotrade run --paper`, your own Claude working each candidate the screener finds, every size clamped by your strategy.
|
|
34
|
+
- Exits and wakes (https://dexterm.xyz/docs/autotrade#exits-and-wakes): the exits that run on their own, the judgement calls your agent is woken for, and what it can and cannot do with them.
|
|
35
|
+
- Change a strategy by chat (https://dexterm.xyz/docs/autotrade#change-a-strategy-by-chat): the analyst proposes, you see the diff and apply it with a key (a less-safe change needs a second key).
|
|
36
|
+
- Running it all day (https://dexterm.xyz/docs/autotrade#running-it-all-day): how long a run lasts, which Claude account it uses, the day caps and the usage guard.
|
|
37
|
+
- Stopping it (https://dexterm.xyz/docs/autotrade#stopping-it): a soft stop, a flatten and the panic switch, the heartbeat, and checking the record of a run.
|
|
38
|
+
- What it costs (https://dexterm.xyz/docs/autotrade#what-it-costs-claude-usage-per-session): the Claude usage of a session, measured.
|
|
39
|
+
- What it will not do (https://dexterm.xyz/docs/autotrade#what-it-will-not-do): live money, copy-trading automation, managing anyone else's money.
|
|
40
|
+
|
|
41
|
+
On your phone: your own Telegram bot (https://dexterm.xyz/docs/telegram) sends the entries, exits, PnL cards and halts, takes `/pause` and `/kill`, and can make every entry wait for your tap (`entry.decide: "agent+approve"`).
|
|
42
|
+
|
|
43
|
+
Still to come, documented here when it lands: a background service that keeps the runner going without a terminal, and the runner filling through the paper desk (https://dexterm.xyz/docs/autotrade#exits-and-wakes) with the exit monitor as its own process.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-autotrade-what-it-will-not-do
|
|
3
|
+
title: Autotrade (paper) › What it will not do
|
|
4
|
+
kind: docs
|
|
5
|
+
page: autotrade
|
|
6
|
+
page_title: Autotrade (paper)
|
|
7
|
+
heading: What it will not do
|
|
8
|
+
anchor: what-it-will-not-do
|
|
9
|
+
url: https://dexterm.xyz/docs/autotrade#what-it-will-not-do
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- autotrade
|
|
13
|
+
- will
|
|
14
|
+
- paper
|
|
15
|
+
confidence: high
|
|
16
|
+
owner: maintainers
|
|
17
|
+
origin: docs-generated
|
|
18
|
+
reviewed_by: generated@2026-10-16
|
|
19
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
20
|
+
sources:
|
|
21
|
+
- site/content/docs/autotrade.md
|
|
22
|
+
date: 2026-10-16
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
- **Live money.** A run never signs and never sends a transaction: `--live` and a strategy in live mode are refused, and the runner holds no key. Live trading happens in a Telegram trading bot of your choice, outside dexterm (see Live trading (https://dexterm.xyz/docs/live-trading)).
|
|
26
|
+
- **Copy-trading automation.** It does not copy anyone's trades.
|
|
27
|
+
- **Managing anyone else's money.** It runs your strategies on your machine, with your own Claude login and your own paper book. Nobody runs a strategy for you: there are no hosted runners, no pooled accounts, no fee on its trades and no strategy marketplace.
|
|
28
|
+
- **Decide outside your rules.** Your agent chooses only inside the bounds you wrote. It cannot raise a size, block an exit, lift a stop or apply a strategy change; you apply a change with a key.
|
|
29
|
+
- **Promise results.** Presets are examples, and every backtest prints the limits of its data.
|
|
30
|
+
|
|
31
|
+
Paper only. Not financial advice.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-autotrade-which-account-day-caps-and-the-usage-guard
|
|
3
|
+
title: Autotrade (paper) › Running it all day › Which account, day caps and the usage guard
|
|
4
|
+
kind: docs
|
|
5
|
+
page: autotrade
|
|
6
|
+
page_title: Autotrade (paper)
|
|
7
|
+
heading: Which account, day caps and the usage guard
|
|
8
|
+
anchor: which-account-day-caps-and-the-usage-guard
|
|
9
|
+
url: https://dexterm.xyz/docs/autotrade#which-account-day-caps-and-the-usage-guard
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- autotrade
|
|
13
|
+
- which
|
|
14
|
+
- account
|
|
15
|
+
- day
|
|
16
|
+
- caps
|
|
17
|
+
- usage
|
|
18
|
+
- guard
|
|
19
|
+
- running
|
|
20
|
+
- all
|
|
21
|
+
- paper
|
|
22
|
+
confidence: high
|
|
23
|
+
owner: maintainers
|
|
24
|
+
origin: docs-generated
|
|
25
|
+
reviewed_by: generated@2026-10-16
|
|
26
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
27
|
+
sources:
|
|
28
|
+
- site/content/docs/autotrade.md
|
|
29
|
+
date: 2026-10-16
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
These come from `~/.dexterm/autotrade/runner.json` (`dexterm-runner/1`), which stays on your machine and is never part of a strategy or a shared file. Without it the runner uses your default `claude` login and these defaults:
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{ "schema": "dexterm-runner/1",
|
|
36
|
+
"account": { "kind": "native" },
|
|
37
|
+
"caps": { "candidateSessionsPerDay": 48, "positionSessionsPerDay": 48, "modelUsdPerDay": 20, "turnsPerDay": 2000 },
|
|
38
|
+
"allowanceGuard": { "fiveHourMax": 0.6, "sevenDayMax": 0.8, "onLimit": "pause-until-reset" } }
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
- `account.kind` is `native` (your default login), `oauth-token` (a long-lived Claude login token from a helper command or a keychain item, handed to `claude` on a file descriptor; it is never on a command line, in a file or in the run file), `config-dir` (a separate Claude config folder with its own login) or `api-key` (a pay-as-you-go key from a helper or the keychain, in the session's environment only). The file names where to fetch a secret, never the secret.
|
|
42
|
+
- The stricter of `runner.json` and the strategy applies.
|
|
43
|
+
- A day is a real day by the clock (it starts at 00:00 UTC), also in a `--replay`: a fast replay of many recorded days still spends at most one day's caps per real day.
|
|
44
|
+
- The usage guard reads the usage your Claude sessions report: above 60% of the five-hour or 80% of the seven-day allowance no new session starts, and after a usage limit the runner waits for the reset.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-autotrade-your-strategies
|
|
3
|
+
title: Autotrade (paper) › Strategies and presets › Your strategies
|
|
4
|
+
kind: docs
|
|
5
|
+
page: autotrade
|
|
6
|
+
page_title: Autotrade (paper)
|
|
7
|
+
heading: Your strategies
|
|
8
|
+
anchor: your-strategies
|
|
9
|
+
url: https://dexterm.xyz/docs/autotrade#your-strategies
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- autotrade
|
|
13
|
+
- strategies
|
|
14
|
+
- presets
|
|
15
|
+
- paper
|
|
16
|
+
confidence: high
|
|
17
|
+
owner: maintainers
|
|
18
|
+
origin: docs-generated
|
|
19
|
+
reviewed_by: generated@2026-10-16
|
|
20
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
21
|
+
sources:
|
|
22
|
+
- site/content/docs/autotrade.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
Your strategies live in `~/.dexterm/strategies/<id>.json` (or `$DEXTERM_HOME/strategies`), one file each. Every change is validated first (an invalid file is never written) and appended to `~/.dexterm/strategies/.journal.jsonl` with who made it, the change, and the content hash before and after. Removing a strategy moves it to `.removed/`, never deletes it.
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
dexterm autotrade list # your strategies and the presets: version, hash, mode, last backtest
|
|
30
|
+
dexterm autotrade new my-swing --from swing # copy a preset to edit
|
|
31
|
+
dexterm autotrade validate my-swing # every problem, with its path
|
|
32
|
+
dexterm autotrade import ./shared.json # store a strategy file (always as paper)
|
|
33
|
+
dexterm autotrade journal my-swing # the change history
|
|
34
|
+
dexterm autotrade remove my-swing
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
A file of yours with a preset's id is used instead of that preset. Importing always sets the mode to paper, whatever the file says.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-autotrade
|
|
3
|
+
title: Autotrade (paper)
|
|
4
|
+
kind: docs
|
|
5
|
+
page: autotrade
|
|
6
|
+
page_title: Autotrade (paper)
|
|
7
|
+
url: https://dexterm.xyz/docs/autotrade
|
|
8
|
+
tags:
|
|
9
|
+
- docs
|
|
10
|
+
- autotrade
|
|
11
|
+
- paper
|
|
12
|
+
confidence: high
|
|
13
|
+
owner: maintainers
|
|
14
|
+
origin: docs-generated
|
|
15
|
+
reviewed_by: generated@2026-10-16
|
|
16
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
17
|
+
sources:
|
|
18
|
+
- site/content/docs/autotrade.md
|
|
19
|
+
date: 2026-10-16
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
Strategies you write or copy from presets, validated in one file, and backtests on your own recorded history with a held-out check. Paper only, self-directed, not financial advice.
|
|
@@ -28,6 +28,6 @@ sources:
|
|
|
28
28
|
date: 2026-10-16
|
|
29
29
|
---
|
|
30
30
|
|
|
31
|
-
Stop here until you are comfortable reading the app. Trading
|
|
31
|
+
Stop here until you are comfortable reading the app. Trading in dexterm is PAPER simulation, which uses pretend funds, and the keypress gate (a required physical key press) is on by default. dexterm signs nothing and sends no transaction; live trading happens in a Telegram trading bot of your choice, outside dexterm. No analyst, voice, or connected program can trade.
|
|
32
32
|
|
|
33
|
-
Never enter a seed phrase, private key, password, API key, or authentication token. Read the paper
|
|
33
|
+
Never enter a seed phrase, private key, password, API key, or authentication token. Read the paper trading guide (https://dexterm.xyz/docs/paper-trading) and live trading (https://dexterm.xyz/docs/live-trading) before considering anything beyond the read-only walkthrough.
|
|
@@ -26,4 +26,4 @@ A no-jargon, ten-minute path from opening a terminal to safely reading your firs
|
|
|
26
26
|
|
|
27
27
|
This guide is for you if you have never used a terminal. Your first win is simple: install dexterm, open one real coin in **read-only** mode (display information without changing anything or trading), understand the safety and holder panels, save the result, and quit. It is **not** a trade and it does not require a wallet.
|
|
28
28
|
|
|
29
|
-
> warn: Never paste a seed phrase, private key, password, API key, login token, or authentication token into a terminal, dexterm, a chat, a command, a URL, or a log. dexterm never needs your wallet keys and never holds them
|
|
29
|
+
> warn: Never paste a seed phrase, private key, password, API key, login token, or authentication token into a terminal, dexterm, a chat, a command, a URL, or a log. dexterm never needs your wallet keys and never holds them: it has no trading wallet and signs nothing. If anything claiming to be dexterm asks for a secret, stop.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-configuration-chart-markers
|
|
3
|
+
title: Configuration and files on disk › Chart markers
|
|
4
|
+
kind: docs
|
|
5
|
+
page: configuration
|
|
6
|
+
page_title: Configuration and files on disk
|
|
7
|
+
heading: Chart markers
|
|
8
|
+
anchor: chart-markers
|
|
9
|
+
url: https://dexterm.xyz/docs/configuration#chart-markers
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- configuration
|
|
13
|
+
- chart
|
|
14
|
+
- markers
|
|
15
|
+
- files
|
|
16
|
+
- disk
|
|
17
|
+
confidence: high
|
|
18
|
+
owner: maintainers
|
|
19
|
+
origin: docs-generated
|
|
20
|
+
reviewed_by: generated@2026-10-16
|
|
21
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
22
|
+
sources:
|
|
23
|
+
- site/content/docs/configuration.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
Both charts mark your own fills: the terminal token chart and the popup chart (https://dexterm.xyz/docs/popup-chart#buy-and-sell-markers). Every fill of the coin in the paper ledger and the live ledger is a `B` or `S` at its time and price, hollow `△ ▽` for PAPER and solid `▲ ▼` for live, so it reads with `NO_COLOR` too. A dashed `avg` line marks the average entry while a position is open. Markers are on by default; the popup's **MARKERS** control (or `k` in the popup) turns them off and on, and saves `"display": { "chartMarkers": "off" }` (or `"on"`; absent means `on`) through the journal, so `ctrl+z` undoes it. `dexterm display markers [on|off]` shows or sets it from the command line. Display only: nothing that trades reads it.
|
|
28
|
+
|
|
29
|
+
- The terminal chart puts the glyph and letter on the fill's candle (`△B`, `▽S`; a count when one candle holds several fills), labels the newest marker with its price or market cap, and prints a one-line legend with how many fills are off the chart.
|
|
30
|
+
- When the agent HUD or the brain view is up, the brain view's candle trace shows a `B` or `S` cell on each fill's candle, and the agent's PAPER position card marks its fills under its PnL trace.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-configuration-chart-y-axis
|
|
3
|
+
title: Configuration and files on disk › Chart Y axis
|
|
4
|
+
kind: docs
|
|
5
|
+
page: configuration
|
|
6
|
+
page_title: Configuration and files on disk
|
|
7
|
+
heading: Chart Y axis
|
|
8
|
+
anchor: chart-y-axis
|
|
9
|
+
url: https://dexterm.xyz/docs/configuration#chart-y-axis
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- configuration
|
|
13
|
+
- chart
|
|
14
|
+
- axis
|
|
15
|
+
- files
|
|
16
|
+
- disk
|
|
17
|
+
confidence: high
|
|
18
|
+
owner: maintainers
|
|
19
|
+
origin: docs-generated
|
|
20
|
+
reviewed_by: generated@2026-10-16
|
|
21
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
22
|
+
sources:
|
|
23
|
+
- site/content/docs/configuration.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
Both charts, the terminal token chart and the popup chart (https://dexterm.xyz/docs/popup-chart#market-cap-axis), plot **market cap** on the Y axis by default, for new and existing configs alike. It is separate from the price display mode (https://dexterm.xyz/docs/configuration#price-display-mode): `A` on the token screen (or the popup's **MCAP | PRICE** control) flips the axis between market cap and USD price and saves it as `"display": { "chartAxis": "price" }` (or `"mcap"`; absent means `mcap`) through the journal, so `ctrl+z` undoes it. `dexterm display` prints both settings.
|
|
28
|
+
|
|
29
|
+
- Axis labels, the last-value tag, the crosshair legend and the volume use one compact formatter: a lowercase k for thousands, then M, B, T; one decimal below 10 of the unit and none after (`$4.9k`, `$42k`, `$487k`, `$1.2M`, `$48M`, `$1.3B`), never scientific notation. When two neighbouring ticks would read the same, the axis adds one decimal (`48.3M`).
|
|
30
|
+
- Historical candles are scaled by the **current** supply, and the chart title says `MCAP (current supply)` so nobody reads it as the exact market cap at that time (a burn or a mint since then is not reflected). The bars stay USD prices underneath, so indicators, PAPER entry / stop / target lines and fills keep their meaning; only the labels change.
|
|
31
|
+
- A token without a known supply plots its price and the title says `price (mcap unavailable)`. In price mode tiny prices use the subscript form (`0.0₅493`).
|
|
32
|
+
- While following an agent, the HUD's PAPER position card and ticket read entry and mark as market cap (`entry MC $4.7k`) when the price display mode (https://dexterm.xyz/docs/configuration#price-display-mode) is market cap (the default) and the supply is known.
|
|
@@ -33,7 +33,10 @@ date: 2026-10-16
|
|
|
33
33
|
| `DEXTERM_INTENSITY` | `off` · `normal` · `fever` |
|
|
34
34
|
| `DEXTERM_OFFLINE=1` | refuse live data; `--fixtures` or `--replay` only (tests and CI) |
|
|
35
35
|
| `DEXTERM_ANALYST_MODEL` | the Claude model for analyst turns (default `(generated from the app: see https://dexterm.xyz/docs/configuration#environment-variables; app-help has the exact keys and commands)`) |
|
|
36
|
-
| `DEXTERM_ANALYST_ENGINE` | `auto` (default) · `claude` · `codex`: which
|
|
36
|
+
| `DEXTERM_ANALYST_ENGINE` | `auto` (default) · `claude` · `codex` · `ollama`: which engine runs the analyst (since 0.1.5; `ollama` = a local model (https://dexterm.xyz/docs/ollama); also `--analyst-engine` and `analyst.engine` in `config.json`) |
|
|
37
|
+
| `DEXTERM_AI_PROVIDER` | `auto` · `claude` · `codex` · `ollama`: the engine for every surface, over `~/.dexterm/ai.json` (see local model (https://dexterm.xyz/docs/ollama#pick-the-engine-globally-or-per-surface)) |
|
|
38
|
+
| `DEXTERM_OLLAMA_HOST` · `DEXTERM_OLLAMA_MODEL` | the Ollama host (default `http://127.0.0.1:11434`; another machine is warned about) and the local model |
|
|
39
|
+
| `DEXTERM_AI_RESTRICTIONS` | `observe` · `propose` · `paper` · `full`: can only LOWER the local engine's profile for this run |
|
|
37
40
|
| `DEXTERM_CODEX_MODEL` | pin the Codex model for analyst turns (default: your Codex default) |
|
|
38
41
|
| `DEXTERM_POPUP_SHELL` | path to a prebuilt native chart window |
|
|
39
42
|
| `DEXTERM_POPUP_HOTKEY` · `DEXTERM_POPUP_HOTKEY_CLOSE` | override the popup chords without a config file |
|
|
@@ -35,6 +35,7 @@ date: 2026-10-16
|
|
|
35
35
|
| `~/.dexterm/piper/` · `~/.dexterm/models/` | the neural voice: a private Python environment with Piper (macOS, written by `dexterm voice setup`), and the downloaded voice models (`en_GB-alan-medium`, whisper `base.en`) | optional; `dexterm voice uninstall` removes the runtime, `--purge-model` the Piper voice too. See voice (https://dexterm.xyz/docs/voice#the-voice-neural-by-default) |
|
|
36
36
|
| `~/.dexterm/exports/` | PNG and text files from `E` (export a view) and `H` (PnL cards (https://dexterm.xyz/docs/paper-trading#pnl-cards)) | directory 700, files 600; local only, nothing is uploaded |
|
|
37
37
|
| `~/.dexterm/spectator.json` | the spectator stream (https://dexterm.xyz/docs/spectator#2-the-read-only-stream-spectate)'s loopback port and per-session token, while `dexterm agent serve --spectate` runs | mode 600; never printed or passed as an argument |
|
|
38
|
+
| `~/.dexterm/wallet-link.json` · `~/.dexterm/trading.panic` | a linked wallet's **public key** (from `dexterm wallet link`; never a private key), and the kill switch while `dexterm wallet panic` is engaged | optional; dexterm holds no key and has no trading wallet |
|
|
38
39
|
| `~/.local/bin/dexterm` | the launcher `install.sh` writes | user-level |
|
|
39
40
|
| `packages/popup/shell/wry/target/release/dexterm-shell-wry` | the native chart window, if built | `DEXTERM_POPUP_SHELL` points elsewhere |
|
|
40
41
|
|
package/dist/packages/mcp/assets/kb/docs/docs-configuration-headless-recorder-dexterm-record.md
CHANGED
|
@@ -36,9 +36,11 @@ $ dexterm record status # db size, snapshots, outcomes, today'
|
|
|
36
36
|
$ dexterm record install --dry-run # print the macOS LaunchAgent it would write; writes nothing
|
|
37
37
|
$ dexterm record install --load # write it to ~/Library/LaunchAgents (no sudo) and load it
|
|
38
38
|
$ dexterm record uninstall --unload # stop and remove it
|
|
39
|
+
$ dexterm record run --focus-ticks --retention-mb 3000 # also sample focus coins every 5-10 s; evict old history at 3 GB
|
|
39
40
|
```
|
|
40
41
|
|
|
41
42
|
- **Nothing turns itself on.** The collector runs only when you start it. `install` writes a user-level LaunchAgent and loads it only with `--load`. A LaunchAgent does not start before you log in.
|
|
42
43
|
- **Same budgets as the app.** Every request goes through the data layer's rate limiter and health gate, and the outcome sweeps keep their own per-sweep and per-day caps. It never builds a signer, never trades and never prints an RPC key.
|
|
43
|
-
- **A disk cap.** Above `--max-db-mb` (1024 by default) it pauses new observations, while labels and retention keep running, so the database cannot grow without bound.
|
|
44
|
+
- **A disk cap.** Above `--max-db-mb` (1024 by default) it pauses new observations, while labels and retention keep running, so the database cannot grow without bound. With `--retention-mb N` it never pauses: once the used space reaches N MB the oldest history goes first (the newest hour is always kept). `--retention-days D` expires snapshot rows, outcome re-checks included, after D days instead of 90.
|
|
45
|
+
- **Focus ticks for autotrade backtests** (`--focus-ticks`): a sample every 5 seconds for coins you hold on paper or have open and every 10 seconds for your watchlist and autotrade candidates, plus 1-minute candles built from those samples, in DexScreener batches of 30 with a daily call ceiling. What is kept and for how long is in recorded history (https://dexterm.xyz/docs/data-sources#recorded-history-and-retention). `install` writes these flags into the LaunchAgent only when you pass them.
|
|
44
46
|
- **Recurring backtests.** 0.1.3 also ships the logic behind recurring skill backtests: a rolling held-out window, a frozen comparison set, and a gate that only *proposes* a tuning when it beats the noise. Nothing changes a skill on your machine. A tuning reaches you only through a normal release, with its measured numbers, including weak ones (see LARP detector (https://dexterm.xyz/docs/larp)).
|
|
@@ -25,11 +25,13 @@ sources:
|
|
|
25
25
|
date: 2026-10-16
|
|
26
26
|
---
|
|
27
27
|
|
|
28
|
-
Memecoin traders think in market cap, so
|
|
28
|
+
Memecoin traders think in market cap, so dexterm shows and talks about every coin in **market cap by default**: the screens, the CLI text, the chat assistant and the autotrade agents ("entered at $69.7K, exited at $264.9K, 3.8x"). USD price per token is the alternative. It is a display and wording setting only: the same data underneath, no extra requests, and nothing that trades (signer, caps, tickets, plans, the confirm gate, the autotrade engine) reads it.
|
|
29
29
|
|
|
30
|
-
-
|
|
31
|
-
- Market cap = price × supply
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
30
|
+
- The setting is `"display": { "priceMode": "mcap" }` in `config.json` (`"price"` for USD price). `$` flips it on every screen and saves it through the journal, so `ctrl+z` undoes it; `/display mcap|price` in the chat box (also `/basis …`, `/set basis …`) does the same, and `/display` alone says which is on. `dexterm display [mcap|price]` shows or sets it from the command line. For one run: `--mcap` / `--price` on any command (`dexterm --price autotrade run …`), `--price-mode mcap|price`, or `DEXTERM_PRICE_BASIS=mcap|price`; nothing is saved. A workspace may carry `"priceMode"` and switches to it while active.
|
|
31
|
+
- Market cap = price × a **known** supply: the market cap a source reports at the same tick (its market cap ÷ its price), the recorded FDV ÷ price, or pump.fun's fixed 1B for a pump.fun coin (the same rule as the PnL cards (https://dexterm.xyz/docs/paper-trading)). A supply is never guessed: without one the slot shows the price and says so (`ᵖ` after the number in a table, the panel caption counts them; `supply unknown · showing price` on a spotlight or header; `price; supply unknown` in a sentence).
|
|
32
|
+
- Screens: the screener, watchlist and new pairs lead with **MCAP** (PRICE moves to MCAP's old column, every sort key works as before); the watchlist's entry becomes **ENTRY MC**; spotlights, the token header and the export report lead with the market cap and keep the price beside it. Position rows read **AVG MC** / **MCAP**, and STOP / TARGET, the trade tape, the ticket's price line and PAPER fill line (`@ $69.7K mcap (0.0000004 SOL)`), the trade history, the PnL chip, the brain view and the agent HUD's cards read market caps too. Profit and loss stay in USD (or SOL on the paper screen). The analyst's coin tables lead with MCAP.
|
|
33
|
+
- Charts have their own setting, the chart Y axis (https://dexterm.xyz/docs/configuration#chart-y-axis) (market cap by default); `$` does not change it.
|
|
34
|
+
- Order plans already trigger on market cap: the `O` screen and the plans popup show each level with both numbers (`entry mc ≤ $300K ($0.0₃3)`), the price taken from the plan's own supply snapshot.
|
|
35
|
+
- The assistants speak the same basis, read at run time: the chat assistant's instructions and its live context (cap at entry, cap now, cap targets and stops, x-multiples), the autotrade candidate and position agents (their DOSSIER, ENGINE notes and EVENTs), and the MCP tools (https://dexterm.xyz/docs/analyst#mcp-tools): every price field has a market-cap twin (`mcap`, `entryMcap`, `lastMcap`, …; `null` when the supply is unknown) and the tool descriptions tell an external agent to talk in market cap unless the user chose price.
|
|
36
|
+
- JSON keeps **both** numbers always: a price field is never removed or renamed, its cap twin sits beside it (the autotrade ledger's fills carry `price` and `mcap`, `avgPrice` and `avgMcap`). Only the human-facing text switches.
|
|
37
|
+
- `config.json` moved to **v5** for this: a file saved with the old default (`priceMode: "price"`, written by every first save) is moved to market cap on load, with a backup kept as `config.json.bak-v4`; a `price` you chose yourself (`$`, `dexterm display price`, an approved proposal, all in the journal) is kept.
|
|
@@ -53,4 +53,4 @@ $ dexterm follow mirror <addr> --propose # write it as an INERT proposed or
|
|
|
53
53
|
$ dexterm follow mirror <addr> --json # machine-readable preview
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
A refused mirror prints every failed check and exits non-zero. `--propose` writes a plan with status `proposed` and no mandate. The command has no arm, sign or execute path, so the plan can only be armed in the app through the keypress
|
|
56
|
+
A refused mirror prints every failed check and exits non-zero. `--propose` writes a plan with status `proposed` and no mandate. The command has no arm, sign or execute path, so the plan can only be armed in the app through the keypress gate. A replay test drives a followed wallet's buy through `--propose` and checks that the plan exists, is not armed and that no execute path was reached. This is the copy-trade mirror ticket of the 0.1.3 release (its first copy-trading step in the release notes): **a proposal only. Nothing arms or fires on its own.**
|
|
@@ -32,7 +32,7 @@ sources:
|
|
|
32
32
|
date: 2026-10-16
|
|
33
33
|
---
|
|
34
34
|
|
|
35
|
-
`A` on a followed wallet raises the **AUTO-MIRROR** prompt. Turning it on is a held physical keypress, and it is refused unless the plan engine's own "this is less safe" popup (`G` on the `O` screen, keypress-only, 24 h expiry) is active. That one gesture drafts and arms a **copy mandate** in the plan engine
|
|
35
|
+
`A` on a followed wallet raises the **AUTO-MIRROR** prompt. Turning it on is a held physical keypress, and it is refused unless the plan engine's own "this is less safe" popup (`G` on the `O` screen, keypress-only, 24 h expiry) is active. That one gesture drafts and arms a **copy mandate** in the plan engine: buy-only, `maxTier: hands-free`, with exactly the policy's caps, clamped to the engine's hard ceilings.
|
|
36
36
|
|
|
37
37
|
Every later buy by that wallet then runs the Stage 2 checks and, if they pass, is proposed and armed automatically with the **weakest confirmation tier**. The engine therefore sizes it at **¼ of the per-trade cap** (the same rule a spoken confirmation gets) and re-checks the per-trade, per-coin, total and daily-loss caps, the allow-list and the panic state at arming and on every fill. On top, the policy keeps a per-wallet **daily cap** (the mandate's total), **max open mirrors**, a **cooldown** between mirrors, a **size factor** against the leader, and an **auto-disarm streak**: that many refused or failed mirrors in a row turn it off.
|
|
38
38
|
|