dexterm-cli 0.1.3 → 0.1.5
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/cli/assets/claude/analyst-system.md +2 -1
- package/dist/packages/cli/src/agent-paper.js +60 -0
- package/dist/packages/cli/src/analyst/backend.js +183 -0
- package/dist/packages/cli/src/analyst/codex.js +301 -0
- package/dist/packages/cli/src/analyst/session.js +9 -2
- package/dist/packages/cli/src/app-help-gen.js +18 -9
- package/dist/packages/cli/src/docs-kb-gen.js +228 -0
- package/dist/packages/cli/src/doctor.js +80 -9
- package/dist/packages/cli/src/index.js +1 -1
- package/dist/packages/cli/src/kb-skill-cmd.js +3 -0
- package/dist/packages/cli/src/larp-detected.js +209 -0
- package/dist/packages/cli/src/live/dev-history.js +99 -0
- package/dist/packages/cli/src/live/newpairs.js +12 -0
- package/dist/packages/cli/src/live/screens/token-live.js +11 -1
- package/dist/packages/cli/src/live/token.js +39 -1
- package/dist/packages/cli/src/main.js +260 -7
- package/dist/packages/cli/src/mcp-follow.js +255 -0
- package/dist/packages/cli/src/record-cmd.js +2 -0
- package/dist/packages/cli/src/rules.js +25 -2
- package/dist/packages/cli/src/screens/analyst-session.js +5 -3
- package/dist/packages/cli/src/screens/analyst.js +4 -3
- package/dist/packages/cli/src/spectate-cmd.js +14 -3
- package/dist/packages/cli/src/version.js +1 -1
- package/dist/packages/cli/src/x-cmd.js +11 -5
- package/dist/packages/custom/src/rules.js +2 -2
- package/dist/packages/custom/src/schema.js +5 -1
- package/dist/packages/data/src/fixtures.js +28 -6
- package/dist/packages/data/src/index.js +3 -0
- package/dist/packages/data/src/sources/jupiter.js +1 -0
- package/dist/packages/data/src/trade/agent/paper-desk.js +336 -0
- package/dist/packages/data/src/trade/agent/rendezvous.js +161 -0
- package/dist/packages/mcp/assets/kb/app-help/agent-paper-trade.md +38 -0
- package/dist/packages/mcp/assets/kb/app-help/ask-the-analyst.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/connect-an-agent.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/dev-history.md +32 -0
- package/dist/packages/mcp/assets/kb/app-help/paper-trade.md +1 -1
- package/dist/packages/mcp/assets/kb/app-help/screen-positions.md +4 -1
- package/dist/packages/mcp/assets/kb/app-help/screen-token.md +1 -0
- package/dist/packages/mcp/assets/kb/app-help/spectate-an-agent.md +4 -1
- package/dist/packages/mcp/assets/kb/app-help/use-codex-analyst.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-agent-paper-trading.md +50 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-capability-tiers-enforced-server-side.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-directory-metadata-prepared-not-submitted.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-install-in-one-command.md +51 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-per-agent-mandates.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-recipes.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-red-team-coverage.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-two-ways-to-connect.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-untrusted-by-default.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents-watch-an-agent-work-spectator-view.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-agents.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-answer-style.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-if-claude-is-missing.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-it-knows-the-app.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-mcp-tools.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-plain-language-filters.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-skills.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-starting-a-run.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-use-codex-instead-of-claude.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-it-can-change-three-tiers.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-it-sees.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst-what-the-analyst-can-never-do.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-analyst.md +23 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-1-start-dexterm.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-2-open-a-real-coin-by-contract-address.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-3-read-the-safety-panel.md +40 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-4-read-the-holder-panel.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-5-optionally-ask-the-analyst.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-6-export-or-share-what-you-see.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-7-quit-safely.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-before-any-experimental-trading.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-check-the-installation-with-doctor.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-choose-a-setup-path.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-common-mistakes-and-recovery.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-copy-and-paste-without-surprises.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-data-says-unavailable-stale-or-rate-limited.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-dexterm-says-command-not-found.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-optional-help-is-unavailable.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-paste-does-nothing-or-pastes-twice.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-the-screen-looks-broken.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-if-you-typed-the-wrong-thing.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-install-node-js-first.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-linux.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-macos-homebrew.md +46 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-macos-or-linux-npm.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-macos.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-open-the-terminal.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-reopen-dexterm-later.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-ten-minute-first-win.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-terminal-shell-prompt-command-output-and-path.md +40 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-where-to-go-next.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows-expectations.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows-powershell-experimental.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners-windows.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-beginners.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-dexterm-help.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-filter-grammar.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-flags.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-invocations.md +43 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-presets.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-scan-commands.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-sort-keys.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli-subcommands.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-cli.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-environment-variables.md +47 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-files-on-disk.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-headless-recorder-dexterm-record.md +44 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-history-recorder.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-packs.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-price-display-mode.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-push-alerts-and-dexterm-watch.md +45 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-rules-engine.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-the-analyst-s-launch.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-the-optional-free-rpc-key.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-themes-and-keymaps.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-themes-and-look.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-widgets.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-workspaces.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-1-follow-a-wallet-see-what-it-does.md +51 -0
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-2-the-one-key-mirror-ticket-a-proposal.md +56 -0
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-stage-3-capped-auto-mirror-default-off-less.md +47 -0
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading-what-is-proven-what-is-not.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-copy-trading.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-cache.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-health-registry.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-rate-limits-and-pacing.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-request-budget-meter.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-sources.md +47 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources-the-helius-credit-meter.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-data-sources.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-dexterm-doctor.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-first-run.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-install.md +81 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-next.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-requirements.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-running-the-tests.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-supported-platforms.md +44 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started-updating.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-getting-started.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-keyboard-global-keys.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-keyboard-keys-handled-by-the-loop.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-keyboard-per-screen-keys.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-keyboard-what-shows.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-keyboard.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-measured-accuracy.md +53 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-open-link-keys.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-paste-a-coin-on-the-web.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-the-verdict.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-timestamped-follow-up-drafts.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp-what-it-looks-at.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-larp.md +24 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-degraded-states-you-will-see.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-free-vs-paid-x-api-tiers-your-bill-your-limits.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-kol-lists-and-the-per-handle-filter.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-tests.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-what-is-read-and-when.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-what-you-set-up-once.md +40 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x-where-the-tokens-live.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-login-with-x.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-a-live-ticket.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-before-you-press-size-vs-caps.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-devnet-signer-mainnet-token.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-jupiter-rate-limits.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-letting-an-agent-paper-trade-experimental.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-link-a-wallet.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-live-trading-devnet-first.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-mainnet.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-order-plans-and-standing-mandates.md +44 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-panic.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-pnl-cards.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-live-fire-path-devnet-the-fast-wallet.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-signer-process.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-ticket.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-the-wallet.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-trade-moments.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-what-the-live-path-keeps.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading-your-first-live-trade.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-paper-trading.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-bubble-map-popup.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-build-the-native-window.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-config-dexterm-popup-json.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-docking-macos.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-keys-in-the-popup.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-market-cap-axis.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-security-model.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-token-and-feeds-popups.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart-what-it-shows.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-popup-chart.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-cost-control.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-keys-flag-command.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-safety-four-layers.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-states.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-the-read.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan-triggers-and-score.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scan.md +24 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-frozen-canary.md +30 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-frozen-task-1401-evaluation.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-latest-skill-care-run.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-links-only-larp-baseline-where-it-is-weak.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-not-measured.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-rug-verdict-rules.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard-source-and-rebuild.md +31 -0
- package/dist/packages/mcp/assets/kb/docs/docs-scorecard.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-1-screener.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-2-new-pairs.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-3-watchlist.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-4-analyst-tab.md +28 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-bubble-map.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-coin-images.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-dev-history.md +44 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-how-well-it-predicts-measured-held-out.md +46 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-live-holder-and-rug-signals.md +51 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-order-plans.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-paper-ticket-and-positions.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-the-look.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-token-screen.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens-trending-social-and-kol-lists.md +34 -0
- package/dist/packages/mcp/assets/kb/docs/docs-screens.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-1-the-agent-activity-window-follow-mode.md +56 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-2-the-read-only-stream-spectate.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-3-save-and-replay-record-file-dexterm-spectate.md +41 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-follow-over-mcp-in-the-running-terminal.md +39 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-limits.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-quick-start.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-security-model.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-see-also.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-streaming-it.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-the-three-surfaces.md +37 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator-what-is-redacted.md +35 -0
- package/dist/packages/mcp/assets/kb/docs/docs-spectator.md +29 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-common-questions.md +33 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-doctor-lines.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-in-app-messages.md +42 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting-reporting-a-problem.md +25 -0
- package/dist/packages/mcp/assets/kb/docs/docs-troubleshooting.md +23 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-doctor.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-it-clarifies-it-never-guesses.md +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-latency.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-linux-and-windows.md +32 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-privacy.md +26 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-still-unverified.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-the-voice-neural-by-default.md +48 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-what-it-can-never-do.md +27 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice-what-you-can-say.md +38 -0
- package/dist/packages/mcp/assets/kb/docs/docs-voice.md +25 -0
- package/dist/packages/mcp/src/app-help.js +123 -0
- package/dist/packages/mcp/src/firewall.js +2 -2
- package/dist/packages/mcp/src/index.js +8 -4
- package/dist/packages/mcp/src/paper-agent.js +92 -0
- package/dist/packages/mcp/src/server.js +261 -29
- package/dist/packages/mcp/src/spectator-sink.js +146 -5
- package/dist/packages/mcp/src/user-content.js +1 -0
- package/dist/packages/recorder/src/dev-history.js +129 -0
- package/dist/packages/recorder/src/index.js +1 -0
- package/dist/packages/recorder/src/recorder.js +23 -0
- package/dist/packages/recorder/src/schema.js +11 -0
- package/dist/packages/voice/src/stt/whisper.js +4 -2
- package/package.json +6 -5
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-data-sources
|
|
3
|
+
title: Data sources and rate limits
|
|
4
|
+
kind: docs
|
|
5
|
+
page: data-sources
|
|
6
|
+
page_title: Data sources and rate limits
|
|
7
|
+
url: https://dexterm.xyz/docs/data-sources
|
|
8
|
+
tags:
|
|
9
|
+
- docs
|
|
10
|
+
- data-sources
|
|
11
|
+
- data
|
|
12
|
+
- sources
|
|
13
|
+
- rate
|
|
14
|
+
- limits
|
|
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/data-sources.md
|
|
22
|
+
date: 2026-10-16
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
Every source the app reads, what it takes from each, the keyless limits, and what a free key adds.
|
|
26
|
+
|
|
27
|
+
dexterm must stay usable forever with **no paid data and no shipped keys**: Node, a terminal and your own Claude login are enough. Every data need has a keyless path on a public API and degrades honestly; a free key you make yourself only raises speed or limits or unlocks depth, it never gates a feature. Because every source meters by **your** IP or key, each user has their own quota and there is no shared server in the middle.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-getting-started-dexterm-doctor
|
|
3
|
+
title: Getting started › dexterm doctor
|
|
4
|
+
kind: docs
|
|
5
|
+
page: getting-started
|
|
6
|
+
page_title: Getting started
|
|
7
|
+
heading: dexterm doctor
|
|
8
|
+
anchor: dexterm-doctor
|
|
9
|
+
url: https://dexterm.xyz/docs/getting-started#dexterm-doctor
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- getting-started
|
|
13
|
+
- dexterm
|
|
14
|
+
- doctor
|
|
15
|
+
- getting
|
|
16
|
+
- started
|
|
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/getting-started.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
Run `dexterm doctor` before anything else. It is non-interactive, never touches your keys, and prints one line per check with the exact fix for anything that is not a pass. Exit code 0 means the app will run (warnings are optional); 1 means something must be fixed.
|
|
28
|
+
|
|
29
|
+
```console doctor output (this machine, offline probes skipped)
|
|
30
|
+
(generated from the app: see https://dexterm.xyz/docs/getting-started#dexterm-doctor; app-help has the exact keys and commands)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The checks, in order: (generated from the app: see https://dexterm.xyz/docs/getting-started#dexterm-doctor; app-help has the exact keys and commands). The data-source line probes (generated from the app: see https://dexterm.xyz/docs/getting-started#dexterm-doctor; app-help has the exact keys and commands); PumpPortal is a soft dependency (new pairs only).
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-getting-started-first-run
|
|
3
|
+
title: Getting started › First run
|
|
4
|
+
kind: docs
|
|
5
|
+
page: getting-started
|
|
6
|
+
page_title: Getting started
|
|
7
|
+
heading: First run
|
|
8
|
+
anchor: first-run
|
|
9
|
+
url: https://dexterm.xyz/docs/getting-started#first-run
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- getting-started
|
|
13
|
+
- first
|
|
14
|
+
- run
|
|
15
|
+
- getting
|
|
16
|
+
- started
|
|
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/getting-started.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
The first launch shows the full glitch boot and then a one-screen welcome card: what dexterm is, the keys that get you around, and the safety stance (non-custodial, your keys never enter dexterm, trading is PAPER by default, not financial advice). Press any key to enter the live screener. Later launches boot in about a second.
|
|
28
|
+
|
|
29
|
+
- `?` on any screen shows every key for that screen.
|
|
30
|
+
- `q` quits. The terminal is always restored, even after a crash or a signal.
|
|
31
|
+
- `1`–`4` switch screens, `j`/`k` move, `⏎` opens a token, `esc` goes back.
|
|
32
|
+
- `a` asks the analyst about what you are looking at. This is the one explicit, paid run; opening a token with `⏎` never starts one.
|
|
33
|
+
|
|
34
|
+
The screener paints within a second on a cold start: a cached snapshot of the last rows (marked how old it is), or skeleton rows while the first DexScreener list lands. Jupiter fields fill in behind it.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-getting-started-install
|
|
3
|
+
title: Getting started › Install
|
|
4
|
+
kind: docs
|
|
5
|
+
page: getting-started
|
|
6
|
+
page_title: Getting started
|
|
7
|
+
heading: Install
|
|
8
|
+
anchor: install
|
|
9
|
+
url: https://dexterm.xyz/docs/getting-started#install
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- getting-started
|
|
13
|
+
- install
|
|
14
|
+
- getting
|
|
15
|
+
- started
|
|
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/getting-started.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
The repository README's short path is: choose one installer, then start dexterm.
|
|
27
|
+
|
|
28
|
+
```sh repository quick start
|
|
29
|
+
$ npm i -g dexterm-cli
|
|
30
|
+
$ brew install dexterm-xyz/dexterm/dexterm
|
|
31
|
+
$ dexterm
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Do not run both install lines. The first is npm; the second is the one-line Homebrew alternative for macOS.
|
|
35
|
+
|
|
36
|
+
```sh install with npm
|
|
37
|
+
$ npm i -g dexterm-cli
|
|
38
|
+
$ dexterm doctor
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The package is named `dexterm-cli` because npm refuses the name `dexterm` as too similar to `xterm`. The command it installs is `dexterm`. The package ships compiled JavaScript, so it needs no build step. Every GitHub release carries a build-provenance attestation and `SHA256SUMS` you can verify (see the trust page (https://dexterm.xyz/trust/)).
|
|
42
|
+
|
|
43
|
+
```sh install from the release
|
|
44
|
+
$ # download dexterm-0.1.5-src.tar.gz and SHA256SUMS from the releases page, then:
|
|
45
|
+
$ shasum -a 256 -c SHA256SUMS --ignore-missing
|
|
46
|
+
$ gh attestation verify dexterm-0.1.5-src.tar.gz --repo dexterm-xyz/dexterm
|
|
47
|
+
$ tar -xzf dexterm-0.1.5-src.tar.gz && cd dexterm-0.1.5
|
|
48
|
+
$ ./install.sh
|
|
49
|
+
$ dexterm doctor
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
The releases page is github.com/dexterm-xyz/dexterm/releases (https://github.com/dexterm-xyz/dexterm/releases).
|
|
53
|
+
|
|
54
|
+
```sh install with Homebrew (macOS)
|
|
55
|
+
$ brew tap dexterm-xyz/dexterm
|
|
56
|
+
$ brew trust dexterm-xyz/dexterm
|
|
57
|
+
$ brew install dexterm
|
|
58
|
+
$ dexterm doctor
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Homebrew 7 and newer load a third-party tap only after you trust it; without `brew trust`, `brew install dexterm` stops with "Refusing to load formula … from untrusted tap". Typing the full name, `brew install dexterm-xyz/dexterm/dexterm`, also works, because naming a formula in full trusts that one formula. The formula installs the same release tarball and runs it with Homebrew's Node. Homebrew no longer ships prebuilt packages for Intel Macs, so on Intel it builds Node and its toolchain from source, which takes a long time; the release installer above is much faster there.
|
|
62
|
+
|
|
63
|
+
The steps below are the same installer, run from a checkout.
|
|
64
|
+
|
|
65
|
+
```sh install from a checkout
|
|
66
|
+
$ cd dexterm/app
|
|
67
|
+
$ ./install.sh
|
|
68
|
+
$ dexterm doctor
|
|
69
|
+
$ dexterm
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
`install.sh` is user-level: no `sudo`, no edits to your shell profile. It checks for Node 22.18+, downloads an official build into your home directory only if none is found (verified against Node's published `SHASUMS256.txt`), links the app, builds the native chart window when `cargo` is present, and writes a `dexterm` launcher to `~/.local/bin`. If that directory is not on your PATH it prints the one line to add and does not add it for you.
|
|
73
|
+
|
|
74
|
+
Already have Node 22.18+? You can skip the installer. dexterm has no third-party runtime dependencies, so it runs straight from the source tree:
|
|
75
|
+
|
|
76
|
+
```sh run from source
|
|
77
|
+
$ npm run dexterm
|
|
78
|
+
$ node packages/cli/bin/dexterm.mjs doctor
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
`npm install` is optional and only pulls the dev tooling (TypeScript, `@types/node`).
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-getting-started-next
|
|
3
|
+
title: Getting started › Next
|
|
4
|
+
kind: docs
|
|
5
|
+
page: getting-started
|
|
6
|
+
page_title: Getting started
|
|
7
|
+
heading: Next
|
|
8
|
+
anchor: next
|
|
9
|
+
url: https://dexterm.xyz/docs/getting-started#next
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- getting-started
|
|
13
|
+
- next
|
|
14
|
+
- getting
|
|
15
|
+
- started
|
|
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/getting-started.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
- Complete beginner guide (https://dexterm.xyz/docs/beginners) for a slower, no-jargon first run and recovery from common mistakes.
|
|
27
|
+
- Screens tour (https://dexterm.xyz/docs/screens) for what each screen shows.
|
|
28
|
+
- Keyboard reference (https://dexterm.xyz/docs/keyboard), generated from the app's keymap.
|
|
29
|
+
- Configuration (https://dexterm.xyz/docs/configuration) for the free RPC key and the files on disk.
|
|
30
|
+
- `dexterm help <topic>` for the app's own how-to on any key or command, offline. The analyst reads the same help (https://dexterm.xyz/docs/analyst#it-knows-the-app).
|
|
31
|
+
- Bring your own agent (https://dexterm.xyz/docs/agents) to connect Claude Code, Codex or a custom bot, and the spectator view (https://dexterm.xyz/docs/spectator) to watch it work live ("watch the agent cook").
|
|
32
|
+
- Troubleshooting (https://dexterm.xyz/docs/troubleshooting) when a line in doctor is not green.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-getting-started-requirements
|
|
3
|
+
title: Getting started › Requirements
|
|
4
|
+
kind: docs
|
|
5
|
+
page: getting-started
|
|
6
|
+
page_title: Getting started
|
|
7
|
+
heading: Requirements
|
|
8
|
+
anchor: requirements
|
|
9
|
+
url: https://dexterm.xyz/docs/getting-started#requirements
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- getting-started
|
|
13
|
+
- requirements
|
|
14
|
+
- getting
|
|
15
|
+
- started
|
|
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/getting-started.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
| need | why | notes |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| Node.js 22.18 or newer | dexterm runs its TypeScript sources directly; no build step | `node -v` to check. The installer can fetch a verified Node for you. |
|
|
29
|
+
| a terminal with 24-bit colour | the cyberspace look | iTerm2, WezTerm, Ghostty, Kitty, Alacritty, Windows Terminal. 256-colour and monochrome terminals still work, flattened. |
|
|
30
|
+
| an internet connection | all data is public and keyless | nothing goes through a dexterm server; see data sources (https://dexterm.xyz/docs/data-sources). |
|
|
31
|
+
| optional: Claude Code logged in | only the analyst needs it | `claude` on your PATH, logged in with your own account. Everything else works without it. |
|
|
32
|
+
| optional: a free RPC key | the ranked top-20 holder list and faster chain reads | Helius, Alchemy, QuickNode or Ankr free tier; see configuration (https://dexterm.xyz/docs/configuration). |
|
|
33
|
+
| optional: Rust (`cargo`) | the native docked chart window | without it the chart popup opens in your browser; see popup chart (https://dexterm.xyz/docs/popup-chart). |
|
|
34
|
+
|
|
35
|
+
> note: dexterm 0.1.5 is out (2026-10-18), open source under AGPL-3.0-only at github.com/dexterm-xyz/dexterm (https://github.com/dexterm-xyz/dexterm). It is early: trading is experimental and has known bugs. The release ships checksums, a build-provenance attestation and an SBOM, and its VirusTotal result (including flags we explain) is on the trust page (https://dexterm.xyz/trust/). It is also on npm as `dexterm-cli` (https://www.npmjs.com/package/dexterm-cli); the command it installs is still `dexterm`.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-getting-started-running-the-tests
|
|
3
|
+
title: Getting started › Install › Running the tests
|
|
4
|
+
kind: docs
|
|
5
|
+
page: getting-started
|
|
6
|
+
page_title: Getting started
|
|
7
|
+
heading: Running the tests
|
|
8
|
+
anchor: running-the-tests
|
|
9
|
+
url: https://dexterm.xyz/docs/getting-started#running-the-tests
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- getting-started
|
|
13
|
+
- running
|
|
14
|
+
- tests
|
|
15
|
+
- install
|
|
16
|
+
- getting
|
|
17
|
+
- started
|
|
18
|
+
confidence: high
|
|
19
|
+
owner: maintainers
|
|
20
|
+
origin: docs-generated
|
|
21
|
+
reviewed_by: generated@2026-10-16
|
|
22
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
23
|
+
sources:
|
|
24
|
+
- site/content/docs/getting-started.md
|
|
25
|
+
date: 2026-10-16
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
From a source checkout, `npm install` and then `npm test` runs the typecheck and three test lanes, in order (from 0.1.4, not in a release yet):
|
|
29
|
+
|
|
30
|
+
- **parallel**: every `packages/*/test/*.test.ts` file at once, one process each.
|
|
31
|
+
- **serial** (`npm run test:serial`, `packages/*/test/serial/`): the tests that drive a real terminal through a pty, run the real binary, or assert a wall-clock bound (the under-a-second quit, the 50 ms filter fuzz). They run one file at a time after the parallel lane, so they never share the CPU with it.
|
|
32
|
+
- **perf** (`npm run test:perf`, `packages/*/test/perf/`): the render budget, p95 under 16 ms per frame. It is asserted on the main thread's CPU time every run, and on wall-clock time whenever no other process held the core during the measurement.
|
|
33
|
+
|
|
34
|
+
A serial or perf test that fails gets one automatic retry, and the retry is never hidden: the run prints the first failure in full and ends with a list of every test that needed it. A test that fails twice fails the run. Set `DEXTERM_TEST_NO_RETRY=1` to turn the retry off. The pty tests open a throwaway cache database, never the one in your data directory.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-getting-started-supported-platforms
|
|
3
|
+
title: Getting started › Supported platforms
|
|
4
|
+
kind: docs
|
|
5
|
+
page: getting-started
|
|
6
|
+
page_title: Getting started
|
|
7
|
+
heading: Supported platforms
|
|
8
|
+
anchor: supported-platforms
|
|
9
|
+
url: https://dexterm.xyz/docs/getting-started#supported-platforms
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- getting-started
|
|
13
|
+
- supported
|
|
14
|
+
- platforms
|
|
15
|
+
- getting
|
|
16
|
+
- started
|
|
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/getting-started.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
This table says what each platform has actually been through, not what we expect to work. "Tested" means the typecheck, the full offline test suite and an install smoke (`npm pack`, `npm i -g` of that tarball into an empty prefix with a fresh home, then `dexterm --version` and `dexterm doctor`) have passed there.
|
|
28
|
+
|
|
29
|
+
| platform | status | what has run on it |
|
|
30
|
+
|---|---|---|
|
|
31
|
+
| Linux x64, Node 22 and 24 | tested | the full suite on every push in CI (Ubuntu), and the same steps in Docker (`node:22-bookworm`, `node:24-bookworm`), including the install smoke |
|
|
32
|
+
| macOS on Intel | tested | the full suite on every change, the install smoke, and a Homebrew install (slow: Homebrew builds Node from source on Intel) |
|
|
33
|
+
| macOS on Apple Silicon | tested in CI (0.1.4) | the full suite on an Apple Silicon runner (`macos-14`) passed on the 0.1.4 release candidate. The manual Homebrew job (tap, trust, install, `brew test`) has not run yet |
|
|
34
|
+
| Windows x64 | experimental, tested in CI (0.1.4) | the `windows-latest` leg runs the full suite and it passed on the 0.1.4 release candidate (a few tests that need POSIX file permissions or Unix-only tools are skipped, and ACL-based file isolation is not verified). Known gaps are listed below |
|
|
35
|
+
| WSL2 | not tested separately | it is Linux, so expect the Linux behaviour |
|
|
36
|
+
|
|
37
|
+
Known gaps on Windows (none of them affect key safety: dexterm never holds a wallet key on any platform):
|
|
38
|
+
|
|
39
|
+
- Files dexterm keeps private (tokens, the optional RPC key) are written with POSIX mode `0600`. Windows ignores that mode, so on Windows they are protected only by your user profile's normal permissions.
|
|
40
|
+
- The analyst runs `claude` without a shell, so it can start Claude Code's native installer build (`claude.exe`) but not the `claude.cmd` script an npm install creates. Doctor counts only `claude.exe` as found, so with an npm install it reports the Claude CLI as missing.
|
|
41
|
+
- Voice mode has no Windows speech engine (see voice (https://dexterm.xyz/docs/voice#linux-and-windows)).
|
|
42
|
+
- Opening a token's links and the PnL card's "share to X" do not start a browser on Windows; dexterm shows the URL to open yourself.
|
|
43
|
+
- `doctor` prints its fixes as POSIX shell commands (`mkdir -p`, `chmod`); in PowerShell, do the equivalent by hand.
|
|
44
|
+
- `dexterm kb edit` and `dexterm skill edit` do not open `$EDITOR`; they print the file to edit instead.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-getting-started-updating
|
|
3
|
+
title: Getting started › Updating
|
|
4
|
+
kind: docs
|
|
5
|
+
page: getting-started
|
|
6
|
+
page_title: Getting started
|
|
7
|
+
heading: Updating
|
|
8
|
+
anchor: updating
|
|
9
|
+
url: https://dexterm.xyz/docs/getting-started#updating
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- getting-started
|
|
13
|
+
- updating
|
|
14
|
+
- getting
|
|
15
|
+
- started
|
|
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/getting-started.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
`dexterm update` asks npm and GitHub for the latest release and prints the exact command for how this copy was installed (npm, Homebrew, the release tarball or a git checkout). It never upgrades anything by itself.
|
|
27
|
+
|
|
28
|
+
A live, interactive run also checks once a day in the background and shows one quiet toast when a newer version exists. The check is two anonymous GET requests with the same fixed headers for everyone (no version, no OS, no ids). Turn it off with `dexterm update --off` (and back on with `--on`), or set `DEXTERM_NO_UPDATE_CHECK=1` or `NO_UPDATE_NOTIFIER=1`. It never runs with `--fixtures`, `--replay`, `CI` or `DEXTERM_OFFLINE`. The trust page (https://dexterm.xyz/trust/#endpoints) lists the hosts.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-getting-started
|
|
3
|
+
title: Getting started
|
|
4
|
+
kind: docs
|
|
5
|
+
page: getting-started
|
|
6
|
+
page_title: Getting started
|
|
7
|
+
url: https://dexterm.xyz/docs/getting-started
|
|
8
|
+
tags:
|
|
9
|
+
- docs
|
|
10
|
+
- getting-started
|
|
11
|
+
- getting
|
|
12
|
+
- started
|
|
13
|
+
confidence: high
|
|
14
|
+
owner: maintainers
|
|
15
|
+
origin: docs-generated
|
|
16
|
+
reviewed_by: generated@2026-10-16
|
|
17
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
18
|
+
sources:
|
|
19
|
+
- site/content/docs/getting-started.md
|
|
20
|
+
date: 2026-10-16
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
Requirements, install, first run and dexterm doctor.
|
|
24
|
+
|
|
25
|
+
dexterm is a terminal screener for Solana memecoins with a local Claude analyst. It runs on your machine, reads public data with no key and never holds a wallet key. Trading is PAPER by default; any live swap is signed in your own Phantom wallet after you approve it (see paper trading (https://dexterm.xyz/docs/paper-trading)). This page gets you from nothing to the live screener.
|
|
26
|
+
|
|
27
|
+
> note: Never used a terminal before? Start with the complete beginner guide (https://dexterm.xyz/docs/beginners). It defines every term, shows exactly what to copy on macOS, Linux and Windows, and ends with a ten-minute read-only coin review.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-keyboard-global-keys
|
|
3
|
+
title: Keyboard reference › Global keys
|
|
4
|
+
kind: docs
|
|
5
|
+
page: keyboard
|
|
6
|
+
page_title: Keyboard reference
|
|
7
|
+
heading: Global keys
|
|
8
|
+
anchor: global-keys
|
|
9
|
+
url: https://dexterm.xyz/docs/keyboard#global-keys
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- keyboard
|
|
13
|
+
- global
|
|
14
|
+
- keys
|
|
15
|
+
- reference
|
|
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/keyboard.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
(generated from the app: see https://dexterm.xyz/docs/keyboard#global-keys; app-help has the exact keys and commands)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-keyboard-keys-handled-by-the-loop
|
|
3
|
+
title: Keyboard reference › Keys handled by the loop
|
|
4
|
+
kind: docs
|
|
5
|
+
page: keyboard
|
|
6
|
+
page_title: Keyboard reference
|
|
7
|
+
heading: Keys handled by the loop
|
|
8
|
+
anchor: keys-handled-by-the-loop
|
|
9
|
+
url: https://dexterm.xyz/docs/keyboard#keys-handled-by-the-loop
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- keyboard
|
|
13
|
+
- keys
|
|
14
|
+
- handled
|
|
15
|
+
- loop
|
|
16
|
+
- reference
|
|
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/keyboard.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
These are not keymap bindings; the interactive loop handles them in context. Each row is verified against the source by `docs:check`.
|
|
28
|
+
|
|
29
|
+
(generated from the app: see https://dexterm.xyz/docs/keyboard#keys-handled-by-the-loop; app-help has the exact keys and commands)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-keyboard-per-screen-keys
|
|
3
|
+
title: Keyboard reference › Per-screen keys
|
|
4
|
+
kind: docs
|
|
5
|
+
page: keyboard
|
|
6
|
+
page_title: Keyboard reference
|
|
7
|
+
heading: Per-screen keys
|
|
8
|
+
anchor: per-screen-keys
|
|
9
|
+
url: https://dexterm.xyz/docs/keyboard#per-screen-keys
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- keyboard
|
|
13
|
+
- per-screen
|
|
14
|
+
- keys
|
|
15
|
+
- reference
|
|
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/keyboard.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
(generated from the app: see https://dexterm.xyz/docs/keyboard#per-screen-keys; app-help has the exact keys and commands)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-keyboard-what-shows
|
|
3
|
+
title: Keyboard reference › What ? shows
|
|
4
|
+
kind: docs
|
|
5
|
+
page: keyboard
|
|
6
|
+
page_title: Keyboard reference
|
|
7
|
+
heading: What ? shows
|
|
8
|
+
anchor: what-shows
|
|
9
|
+
url: https://dexterm.xyz/docs/keyboard#what-shows
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- keyboard
|
|
13
|
+
- shows
|
|
14
|
+
- reference
|
|
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/keyboard.md
|
|
22
|
+
date: 2026-10-16
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
The in-app help card lists exactly the rows below for each screen (global keys shadowed by a screen-specific binding are attributed to the screen):
|
|
26
|
+
|
|
27
|
+
(generated from the app: see https://dexterm.xyz/docs/keyboard#what-shows; app-help has the exact keys and commands)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-keyboard
|
|
3
|
+
title: Keyboard reference
|
|
4
|
+
kind: docs
|
|
5
|
+
page: keyboard
|
|
6
|
+
page_title: Keyboard reference
|
|
7
|
+
url: https://dexterm.xyz/docs/keyboard
|
|
8
|
+
tags:
|
|
9
|
+
- docs
|
|
10
|
+
- keyboard
|
|
11
|
+
- reference
|
|
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/keyboard.md
|
|
19
|
+
date: 2026-10-16
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
Every key, generated from the app's keymap and the help overlay at build time.
|
|
23
|
+
|
|
24
|
+
Generated at build time from `packages/tui/src/keymap.ts` (the keymap) and `packages/cli/src/screens/overlay.ts` (the `?` overlay, which adds the keys the interactive loop handles itself). `npm run docs:check` fails if this page and the app disagree.
|
|
25
|
+
|
|
26
|
+
Conventions: keys are case-sensitive (`g` and `G` differ). A key listed under a screen overrides the global binding on that screen only (on the token screen `1`–`6` are timeframes, not screen switches). While the chat input, the filter line, the sort menu or a PAPER ticket has the keys, printable keys type instead of acting, so `q` or `1` can never quit or navigate out from under a half-typed order.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-larp-measured-accuracy
|
|
3
|
+
title: LARP detector › Measured accuracy
|
|
4
|
+
kind: docs
|
|
5
|
+
page: larp
|
|
6
|
+
page_title: LARP detector
|
|
7
|
+
heading: Measured accuracy
|
|
8
|
+
anchor: measured-accuracy
|
|
9
|
+
url: https://dexterm.xyz/docs/larp#measured-accuracy
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- larp
|
|
13
|
+
- measured
|
|
14
|
+
- accuracy
|
|
15
|
+
- detector
|
|
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/larp.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
**The part of the LARP check that can be replayed on history is weak, and the model stage cannot be replayed at all. dexterm prints only what it measured, including the weak numbers.**
|
|
27
|
+
|
|
28
|
+
**Skills backtest (0.1.2).** `dexterm backtest --subject skills` replays the replayable parts of the default analyst skills on recorded history: 1,054 coins from the project's recorder, labelled by a 72 h keyless outcome (bad = rug or dead). Tuning only ever sees the train split; the numbers below are the later, held-out test split of 328 coins, of which 18.6 % went bad.
|
|
29
|
+
|
|
30
|
+
- **LARP check, links only.** The links-based baseline is a weak signal: MCC 0.039 before tuning, 0.054 after. Its tuned `LARP` grade caught 4 of 14 bad coins, too few to rate. `EARLY_BUT_REAL` coins still went bad 10.3 % of the time, and coins with no website 29.2 %. The skill now treats the baseline as a weak prior and never calls `LARP` from links alone.
|
|
31
|
+
- **Rug check.** The verdict rules improved from MCC 0.043 to 0.159. Liquidity under $5k is the one strong signal (`SPECULATIVE` coins went bad 54.8 % of the time, `WATCH` 14.4 %). Dev percentage, organic score and top-10 share did not predict a worse 72 h outcome and now only lower confidence.
|
|
32
|
+
- **Not measured.** The model stage (fetched pages, RDAP, GitHub) cannot be replayed: a past page cannot be fetched as it was. It is measured going forward with `dexterm backtest --subject larp`, below.
|
|
33
|
+
|
|
34
|
+
The method, every number and the limits are in the repository at `packages/packs/eval/README.md`. A grade is a risk flag, not a certificate.
|
|
35
|
+
|
|
36
|
+
Measured 2026-10-12 with `dexterm backtest --subject larp` over this project's labelled history:
|
|
37
|
+
|
|
38
|
+
| history | outcome labels at 1 h (observed) | LARP verdicts recorded | matched |
|
|
39
|
+
|---|---|---|---|
|
|
40
|
+
| research recorder (task-1287 prototype DB) | 149 (137 flat · 9 fade · 2 runner · 1 dead; 29 unobserved) | 0 | 0 |
|
|
41
|
+
| the app's recorder on the development machine | 0 | 0 | 0 |
|
|
42
|
+
| the same, re-measured later that day after the recorder fix | 401 (361 flat · 18 dead · 13 runner · 5 fade · 4 rug; 1,206 unobserved) | 0 | 0 |
|
|
43
|
+
|
|
44
|
+
There were no verdicts to score because, before this release, a settled verdict was only kept in memory. From this release on, each settled verdict is written to your local recorder (`verdicts`, pack `larp-check`), so the measurement can grow on your own machine. The app recorder's 0 outcomes had a second cause, fixed the same day: its outcome sweeps and labels never ran in short sessions (see history recorder (https://dexterm.xyz/docs/configuration#history-recorder)). The outcome side now fills in on its own; the verdict side only grows when you run the LARP check on tokens, and no accuracy figure is printed until 50 verdicts match.
|
|
45
|
+
|
|
46
|
+
**Method.** Run `dexterm backtest --subject larp [--horizon SEC] [--json]` to reproduce it.
|
|
47
|
+
|
|
48
|
+
- **Join.** Each recorded verdict is joined to the outcome label of the latest recorder snapshot of the same coin, taken at most 10 % of the horizon before the verdict. A later snapshot is never used, and an `unobserved` label is not matched.
|
|
49
|
+
- **Bad outcome.** `rug` or `dead` on keyless data, or `rug` alone when chain-verified.
|
|
50
|
+
- **Scoring.** `LARP` is scored against `REAL_PRODUCT` and `EARLY_BUT_REAL`. `UNVERIFIABLE` is counted separately.
|
|
51
|
+
- **Gate.** Below 50 matched verdicts the command prints counts only. At 50 or more it adds P(bad | LARP), P(bad | real) and P(LARP | bad), each with a 95 % Wilson interval.
|
|
52
|
+
|
|
53
|
+
> warn: even when it can be computed, this number is **agreement with a bad price outcome**, not a measure of whether a product is real. Outcome labels are the only ground truth dexterm records. A real product can rug, and a LARP can run.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-larp-open-link-keys
|
|
3
|
+
title: LARP detector › Open-link keys
|
|
4
|
+
kind: docs
|
|
5
|
+
page: larp
|
|
6
|
+
page_title: LARP detector
|
|
7
|
+
heading: Open-link keys
|
|
8
|
+
anchor: open-link-keys
|
|
9
|
+
url: https://dexterm.xyz/docs/larp#open-link-keys
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- larp
|
|
13
|
+
- open-link
|
|
14
|
+
- keys
|
|
15
|
+
- detector
|
|
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/larp.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
`W`, `X` and `T` open the advertised website, X and Telegram in your browser; `L` lists every advertised link (including secondary socials from DexScreener) in a menu. The URL is drawn on screen before anything launches; only `http` and `https` links are ever passed to the opener (`open` on macOS, `xdg-open` on Linux, as a single argument, no shell). The footer shows these keys only when the token actually advertises links.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-larp-paste-a-coin-on-the-web
|
|
3
|
+
title: LARP detector › Paste a coin on the web
|
|
4
|
+
kind: docs
|
|
5
|
+
page: larp
|
|
6
|
+
page_title: LARP detector
|
|
7
|
+
heading: Paste a coin on the web
|
|
8
|
+
anchor: paste-a-coin-on-the-web
|
|
9
|
+
url: https://dexterm.xyz/docs/larp#paste-a-coin-on-the-web
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- larp
|
|
13
|
+
- paste
|
|
14
|
+
- coin
|
|
15
|
+
- web
|
|
16
|
+
- detector
|
|
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/larp.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
A no-install version is in preview at the preview checker (https://dexterm-larp-preview.dexterm-site.workers.dev/check/), not deployed to dexterm.xyz. Paste a Solana mint or a DexScreener / pump.fun / Solscan link and get the grade in your browser, read-only, no wallet. It runs on a Cloudflare Worker and reuses the app's tuned link-shape grade (`larp-links-v1`) and the same prompt firewall, so a hostile coin name or symbol is stripped and shown as inert text, never obeyed.
|
|
28
|
+
|
|
29
|
+
What the web checker shows, each datum with its source and the age of the reading: the **LARP grade** from the coin's advertised link shape (`LARP` / `REAL?` / `UNKNOWN`), **top-10 holder concentration** and **holder count** (Jupiter), and **liquidity** in USD (DexScreener). It never shows a price, a market cap or a buy/sell call. A **shareable PNG card** carries the grade, those facts, the heuristic label and a dexterm.xyz link.
|
|
30
|
+
|
|
31
|
+
The preview defaults to the **keyless** tier. The full in-app LARP check above — fetching the website (SSRF-safe), the RDAP domain lookup and the GitHub read, graded by the analyst — is not part of the web checker. The bundle / sniper checkbox runs the app's wallet-intel rules and Helius history adapter as an optional second step, only when a dedicated site key and real Turnstile configuration are present. The visible preview test mode disables paid deep scans. Missing credentials refuse scans or disable the deep step; there is no silent test-secret fallback.
|
|
32
|
+
|
|
33
|
+
The deep step samples the top 20 accounts, up to seven funding histories and the first 100 launch transactions. Complete immutable launch windows and funding facts stay in durable storage without expiration; incomplete launch windows are fetched again. Market results expire after 45 seconds. Every scan, including a cache hit, is rate-limited per IP and globally. A serialized daily credit budget reserves 84 credits before deep RPCs and refunds only counted unused credits. Synthetic replay measures 84 cold / 4 with facts cached; these are call-based estimates, not independently measured provider billing. Real deep-scan latency, billing and Worker CPU are still unverified pending dedicated credentials. Refusals display "busy, try again"; a deep-budget refusal keeps the keyless grade with an explicit note. No trackers or analytics; the pasted input is not logged.
|
|
34
|
+
|
|
35
|
+
> warn: the web grade is the links-only baseline, a weak signal measured on a held-out set (see measured accuracy (https://dexterm.xyz/docs/larp#measured-accuracy) above). It is a risk flag, not a certificate, and not financial advice.
|