dexterm-cli 0.1.3 → 0.1.4
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/app-help-gen.js +3 -3
- package/dist/packages/cli/src/docs-kb-gen.js +228 -0
- package/dist/packages/cli/src/doctor.js +22 -7
- 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/token.js +38 -1
- package/dist/packages/cli/src/main.js +140 -1
- package/dist/packages/cli/src/mcp-follow.js +225 -0
- 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/mcp/assets/kb/app-help/spectate-an-agent.md +4 -1
- 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-install-in-one-command.md +49 -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-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 +45 -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 +36 -0
- package/dist/packages/mcp/assets/kb/docs/docs-configuration-the-analyst-s-launch.md +27 -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 +71 -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 +55 -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-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-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 +36 -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 +5 -4
- package/dist/packages/mcp/src/server.js +56 -18
- package/dist/packages/mcp/src/spectator-sink.js +74 -2
- package/dist/packages/voice/src/stt/whisper.js +4 -2
- package/package.json +6 -5
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-screens-paper-ticket-and-positions
|
|
3
|
+
title: Screens tour › PAPER ticket and positions
|
|
4
|
+
kind: docs
|
|
5
|
+
page: screens
|
|
6
|
+
page_title: Screens tour
|
|
7
|
+
heading: PAPER ticket and positions
|
|
8
|
+
anchor: paper-ticket-and-positions
|
|
9
|
+
url: https://dexterm.xyz/docs/screens#paper-ticket-and-positions
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- screens
|
|
13
|
+
- paper
|
|
14
|
+
- ticket
|
|
15
|
+
- positions
|
|
16
|
+
- tour
|
|
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/screens.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
a PAPER ticket on sample data
|
|
28
|
+
|
|
29
|
+
`B` or `S` on a token opens a simulated ticket priced from a keyless Jupiter quote; `P` from anywhere opens the positions screen (equity, cash, realized and unrealized PnL, trade history). Every frame carries the PAPER banner. The confirm gate is on by default and sizes above (generated from the app: see https://dexterm.xyz/docs/screens#paper-ticket-and-positions; app-help has the exact keys and commands) SOL must be typed back. The model is in paper trading and safety (https://dexterm.xyz/docs/paper-trading).
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-screens-the-look
|
|
3
|
+
title: Screens tour › The look
|
|
4
|
+
kind: docs
|
|
5
|
+
page: screens
|
|
6
|
+
page_title: Screens tour
|
|
7
|
+
heading: The look
|
|
8
|
+
anchor: the-look
|
|
9
|
+
url: https://dexterm.xyz/docs/screens#the-look
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- screens
|
|
13
|
+
- look
|
|
14
|
+
- tour
|
|
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/screens.md
|
|
22
|
+
date: 2026-10-16
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
the rain follows the market: gold on a pump
|
|
26
|
+
|
|
27
|
+
Matrix rain made of your own tickers, mint prefixes and transaction tails lives in the gutters and the blank parts of panels. Its colour and speed come from the data: gold on a pump, red on a dump, driven by the open token's candles or the rows on screen. Two masks on the cell buffer make it impossible for an effect to overdraw a number: data glyphs are marked hard, effects can only write to blank, unmarked cells, and a contrast gate in the test suite proves every numeric cell stays at 4.5:1 or better with effects on.
|
|
28
|
+
|
|
29
|
+
`c` toggles calm mode (no rain, glitch, blink or scanlines); `--intensity normal` is 15 fps with sparser rain; `NO_COLOR` implies calm. After (generated from the app: see https://dexterm.xyz/docs/screens#the-look; app-help has the exact keys and commands) s without a key the ambient rain drops to (generated from the app: see https://dexterm.xyz/docs/screens#the-look; app-help has the exact keys and commands) fps so an idle terminal costs about 2% CPU; the next key snaps it back.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-screens-token-screen
|
|
3
|
+
title: Screens tour › Token screen
|
|
4
|
+
kind: docs
|
|
5
|
+
page: screens
|
|
6
|
+
page_title: Screens tour
|
|
7
|
+
heading: Token screen
|
|
8
|
+
anchor: token-screen
|
|
9
|
+
url: https://dexterm.xyz/docs/screens#token-screen
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- screens
|
|
13
|
+
- token
|
|
14
|
+
- screen
|
|
15
|
+
- tour
|
|
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/screens.md
|
|
23
|
+
date: 2026-10-16
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
a token on sample data (the seeded renderer shows the raw tape where the live screen shows the BUY/SELL FLOW panel)
|
|
27
|
+
|
|
28
|
+
Everything about one coin: candles (1m to 1d, `1`–`6`), market stats, mint and freeze authority from the chain, holder count and top-10 concentration from Jupiter (the ranked top-20 list needs a free RPC key and says so), RugCheck summary, GoPlus second opinion, and in the lower right the **BUY/SELL FLOW** panel: buys versus sells for 1m, 5m, 1h, 6h and 24h with a ratio bar, USD volume and a trend arrow versus the previous window. `F` swaps it for the raw trade tape.
|
|
29
|
+
|
|
30
|
+
The price badge says **LIVE** only while a fresh on-chain push is flowing for that coin over the fast lane (one WebSocket on its pump.fun bonding curve), otherwise **POLL**. When you hold a PAPER position in the coin a `◈ POSITION · PAPER` row renders under the chart with side, size, value, average entry, price and unrealized PnL.
|
|
31
|
+
|
|
32
|
+
**Who holds it.** Once the wallet-intel scan (https://dexterm.xyz/docs/screens#bubble-map) lands (about 1.5 s after the token opens), every row of the HOLDERS panel carries a class read from the chain, never guessed: **POOL** (an AMM / CLMM / DLMM pool vault: Raydium, Orca, Meteora, PumpSwap), **CURVE** (a bonding curve: pump.fun, Meteora DBC for Jupiter Studio and Meteora launches, Raydium LaunchLab), **VAULT** (Meteora dynamic and Alpha vaults), **LOCK** (a Streamflow or Jupiter Lock escrow), **CEX** (seed-list exchange wallet, always *unverified*), **BURN** (the incinerator), **DEV** (the creator), **LINKED** (tied to another top holder by a funder, bundle or transfer rule) and **UNLABELLED** for everything else, including an account of a program dexterm does not list. The class comes from the token account's owner and the owner account's program (the same account lookup the scan already makes, no new request); the constant pool-authority addresses are re-derived in the tests. The single Top 10 holders row then becomes two: **Top 10 ex-pool** drops POOL / CURVE / VAULT / LOCK / BURN owners and is what the colour reads, **Top 10 raw** is what explorers show, so a fresh launch whose curve still holds 70 % no longer reads as a 78 % whale. Unlabelled owners are always counted. When a counted owner holds more than 30 % the panel says so on its first line (`⚠ main risk: UNLABELLED Ab12…Cd34 holds 71.6%`); when the biggest holder is a venue it says which (`· top holder 70.0% is CURVE (Meteora DBC): not counted in ex-pool`). A lock or vault names its escrow and program; dexterm does not decode the unlock schedule yet and says so.
|
|
33
|
+
|
|
34
|
+
When the Snipers and Bundled supply rows have no number they give the reason: `needs Helius key` only when no key is configured, otherwise `Helius paused · r` (rate-limited), `Helius cap today` (the daily credit budget is spent), `history failed · r` (the history call errored) or `no launch txs read`. `r` on the token screen re-runs a scan whose launch window did not land.
|
|
35
|
+
|
|
36
|
+
Keys here: `B`/`S` PAPER buy/sell, `C` chart popup, `M` bubble map (below), `V` vet the product (LARP detector), `W`/`X`/`T` open the advertised site/X/Telegram, `L` list every advertised link, `y` copy the contract address, `a` run the analyst dossier, `i` or `⏎` type a question, `s` the SOCIAL panel (below), `H` a PnL card (https://dexterm.xyz/docs/paper-trading#pnl-cards) when you have fills in the coin.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-screens-trending-social-and-kol-lists
|
|
3
|
+
title: Screens tour › Trending, social and KOL lists
|
|
4
|
+
kind: docs
|
|
5
|
+
page: screens
|
|
6
|
+
page_title: Screens tour
|
|
7
|
+
heading: Trending, social and KOL lists
|
|
8
|
+
anchor: trending-social-and-kol-lists
|
|
9
|
+
url: https://dexterm.xyz/docs/screens#trending-social-and-kol-lists
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- screens
|
|
13
|
+
- trending
|
|
14
|
+
- social
|
|
15
|
+
- kol
|
|
16
|
+
- lists
|
|
17
|
+
- tour
|
|
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/screens.md
|
|
25
|
+
date: 2026-10-16
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
Three views over a social layer that is keyless by default and reads X only through your own login (https://dexterm.xyz/docs/login-with-x). There is no scraping, and nothing is ever posted; every post and headline passes the same prompt firewall as token text before it is stored or shown.
|
|
29
|
+
|
|
30
|
+
- **`T` TRENDING IN THE SPACE** (from every screen except the token screen, where `T` still opens Telegram). Coins ranked from public lists: Jupiter trending and organic score, GeckoTerminal trending pools, and CoinGecko trending for macro context; a DexScreener paid boost counts *against* a coin. With no posts to count, a coin's velocity falls back to its last-hour volume against its 24 h average. Sub-panels: NARRATIVES (coins linked by shared KOL threads or co-mentions) and NEWS (CoinDesk, Cointelegraph, The Block and Decrypt official RSS, every 10 min; context, not signal). `f` source filter, `x` show the rows held back as spam or cashtag squats, `n` narrative filter, `s` sources and their health, `a` one board summary from your own claude (at most every 5 min), `⏎` open the coin, `M` the feeds popup (https://dexterm.xyz/docs/popup-chart#token-and-feeds-popups).
|
|
31
|
+
- **`s` SOCIAL panel on the token screen** replaces ON-CHAIN/HOLDERS. In live mode it holds rule-written on-chain rows only (labelled holders, tracked wallets, trades of $5K or more, and the wallet-intel scan (https://dexterm.xyz/docs/screens#bubble-map)'s linked clusters and launch snipers, each naming the rule that linked them, such as `12.0% of supply sits in 4 wallets that bought in the same slot and share a funder (bundle, R2)`); X and Telegram posts appear only in the `--fixtures` demo, because no keyless post source is wired. Near-duplicates collapse into one row, bursts from fresh accounts are marked spam, and instruction-like posts are withheld from the model entirely.
|
|
32
|
+
- **`K` KOL lists**: your own handle lists and imported packs, stored in the local database. A pack is a hash-locked directory and a tampered one is refused. `space` enables or disables a list, `m` mutes a handle, `d` removes one, `i` adds one. The same is scriptable with `dexterm kol` (see the CLI reference (https://dexterm.xyz/docs/cli#subcommands)).
|
|
33
|
+
|
|
34
|
+
- **X posts** appear in both views after `dexterm x login` (Login with X (https://dexterm.xyz/docs/login-with-x)): the open coin's posts in the SOCIAL panel (searched every 60 s, newer posts only), and your KOL lists' posts on the board. The band shows the state and never pretends: `x-stream ○ logged out`, `●4s @you` while reading, `◐ rate limited 5m`, `◐ daily budget`, `◐ app tier (no search)` on a Free-tier app. On the KOL screen `X` imports the lists your X account owns (handles only) and `o` narrows the board and the panel to the selected handle (`o` again or `f` clears).
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-screens
|
|
3
|
+
title: Screens tour
|
|
4
|
+
kind: docs
|
|
5
|
+
page: screens
|
|
6
|
+
page_title: Screens tour
|
|
7
|
+
url: https://dexterm.xyz/docs/screens
|
|
8
|
+
tags:
|
|
9
|
+
- docs
|
|
10
|
+
- screens
|
|
11
|
+
- tour
|
|
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/screens.md
|
|
19
|
+
date: 2026-10-16
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
The screener, token screen, new pairs, watchlist, analyst tab, PAPER ticket and positions.
|
|
23
|
+
|
|
24
|
+
dexterm is five screens on one keyboard model, plus the PAPER ticket and positions. The header carries the SOL price, the live/degraded status of the feed, the Helius credit meter when a key is configured, and the AI scan indicator when the scan is on. The footer lists the keys that matter on the current screen; `?` lists all of them.
|
|
25
|
+
|
|
26
|
+
Every screenshot on this site is the real app on seeded sample data with made-up tickers; the header reads `◌ sample data`. The one exception is the analyst beat on the home page: a labelled, scripted replay of real historical $WIF data from the 2023-12-14 daily close (header `◌ replay · historical data · scripted demo`). It is not a live recommendation and not financial advice; nowhere else on the site is a real token paired with a price.
|
package/dist/packages/mcp/assets/kb/docs/docs-spectator-1-the-agent-activity-window-follow-mode.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-spectator-1-the-agent-activity-window-follow-mode
|
|
3
|
+
title: Spectator view (watch the agent cook) › The three surfaces › 1. The AGENT ACTIVITY window (follow mode)
|
|
4
|
+
kind: docs
|
|
5
|
+
page: spectator
|
|
6
|
+
page_title: Spectator view (watch the agent cook)
|
|
7
|
+
heading: 1. The AGENT ACTIVITY window (follow mode)
|
|
8
|
+
anchor: 1-the-agent-activity-window-follow-mode
|
|
9
|
+
url: https://dexterm.xyz/docs/spectator#1-the-agent-activity-window-follow-mode
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- spectator
|
|
13
|
+
- agent
|
|
14
|
+
- activity
|
|
15
|
+
- window
|
|
16
|
+
- follow
|
|
17
|
+
- mode
|
|
18
|
+
- three
|
|
19
|
+
- surfaces
|
|
20
|
+
- view
|
|
21
|
+
- watch
|
|
22
|
+
- cook
|
|
23
|
+
confidence: high
|
|
24
|
+
owner: maintainers
|
|
25
|
+
origin: docs-generated
|
|
26
|
+
reviewed_by: generated@2026-10-16
|
|
27
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
28
|
+
sources:
|
|
29
|
+
- site/content/docs/spectator.md
|
|
30
|
+
date: 2026-10-16
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
`--spectator-popup` opens the spectator window through dexterm's popup host. It is the docked native window on macOS when the native shell is built, and a browser tab on loopback otherwise, as with the chart popup (https://dexterm.xyz/docs/popup-chart#build-the-native-window). `agent serve` prints which one it opened. The window refreshes once a second and shows:
|
|
34
|
+
|
|
35
|
+
- **screen**: the screen the agent asked to show (screener, token, watchlist, ticket) with the token, feed, filter and highlight it picked. This line comes from the agent's navigation events. See limits (https://dexterm.xyz/docs/spectator#limits) for what it is not.
|
|
36
|
+
- **agents**: each connected agent with an `agent` badge, its tier (`observe`, `annotate` or `propose`), its status (`active`, `paused` or `killed`) and when it last did something.
|
|
37
|
+
- **activity**: newest first, up to 80 lines (the window keeps the last 200 events). Each line shows how long ago it happened, the agent, the phase, the tool, a short summary, the time the call took in ms and the age of the data it returned. Refused calls are marked.
|
|
38
|
+
|
|
39
|
+
| phase | meaning |
|
|
40
|
+
| --- | --- |
|
|
41
|
+
| `connect` / `disconnect` | an agent opened or closed a session (with its client and any mandate) |
|
|
42
|
+
| `result` | a read tool returned (`ok` or an error) |
|
|
43
|
+
| `nav` | a navigation tool asked the screen to move (`open_token`, `show_in_screener`, `switch_feed`, `add_to_watchlist`, `open_ticket`) |
|
|
44
|
+
| `proposal` | the agent made a proposal you would have to confirm (an alert, an order-plan draft, a watchlist add) |
|
|
45
|
+
| `refused` | the gate refused the call, with its reason (`never`, `tier`, `mandate`, `spoof`, …) |
|
|
46
|
+
| `note` / `subscribe` | the agent wrote a note, or subscribed to a live stream |
|
|
47
|
+
| `control` | you paused, resumed or killed the agent |
|
|
48
|
+
|
|
49
|
+
**Controls.** Each agent row has buttons:
|
|
50
|
+
|
|
51
|
+
- **pause**: the gate refuses the agent's next call. The agent stays connected and visible.
|
|
52
|
+
- **take over**: pauses the agent and marks you as the driver. The window shows `YOU HAVE TAKEN OVER`, and the agent stays frozen but visible.
|
|
53
|
+
- **resume**: shown for a paused agent. Its calls go through again and control goes back to the agent.
|
|
54
|
+
- **kill** (the panic button): closes every live session for that agent now and leaves it paused, so a reconnect stays frozen. To revoke the agent for good, run `dexterm agent rotate <name>` or `dexterm agent remove <name>`.
|
|
55
|
+
|
|
56
|
+
These four are the only messages the window can send, and each carries just an agent name. The `agent serve` process maps them to the bus's own pause, resume and kick, the same controls the roster popup uses, and checks them again before acting. The window has no button, message or path that can arm, sign, confirm, send or raise a cap.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-spectator-2-the-read-only-stream-spectate
|
|
3
|
+
title: Spectator view (watch the agent cook) › The three surfaces › 2. The read-only stream (--spectate)
|
|
4
|
+
kind: docs
|
|
5
|
+
page: spectator
|
|
6
|
+
page_title: Spectator view (watch the agent cook)
|
|
7
|
+
heading: 2. The read-only stream (--spectate)
|
|
8
|
+
anchor: 2-the-read-only-stream-spectate
|
|
9
|
+
url: https://dexterm.xyz/docs/spectator#2-the-read-only-stream-spectate
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- spectator
|
|
13
|
+
- read-only
|
|
14
|
+
- stream
|
|
15
|
+
- spectate
|
|
16
|
+
- three
|
|
17
|
+
- surfaces
|
|
18
|
+
- view
|
|
19
|
+
- watch
|
|
20
|
+
- agent
|
|
21
|
+
- cook
|
|
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/spectator.md
|
|
29
|
+
date: 2026-10-16
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
`dexterm agent serve --spectate` starts a WebSocket server on `127.0.0.1` on a random port and prints the port. The per-session token goes to `~/.dexterm/spectator.json` (mode 0600). It is never printed and never on a command line. `dexterm spectate --info` shows the endpoint (`--json` for scripts).
|
|
33
|
+
|
|
34
|
+
A viewer connects, then sends `{"method":"hello","token":"…"}` with the token from that file within 10 seconds, or the connection is closed. After a good hello it receives:
|
|
35
|
+
|
|
36
|
+
```text
|
|
37
|
+
{"type":"welcome","protocol":"dexterm-spectator/1","redacted":true,"t":…}
|
|
38
|
+
{"type":"event","snapshot":true,"event":{…}} # the recent backlog, oldest first
|
|
39
|
+
{"type":"event","snapshot":false,"event":{…}} # then each new event as it happens
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Each `event` has the same fields the window uses: `seq`, `t`, `phase`, `agent`, `tier`, `transport`, `tool`, `summary`, `ok`, `ms`, `dataAgeSec`, `refusal`, `nav`, and `redacted: true`. The server honours exactly two inbound messages: `hello` and `ping` (answered with `pong`). Anything else is counted as dropped and ignored. dexterm does not ship a viewer for the raw stream. It is meant for your own overlay or tooling on the same machine.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-spectator-3-save-and-replay-record-file-dexterm-spectate
|
|
3
|
+
title: Spectator view (watch the agent cook) › The three surfaces › 3. Save and replay (--record FILE, dexterm spectate)
|
|
4
|
+
kind: docs
|
|
5
|
+
page: spectator
|
|
6
|
+
page_title: Spectator view (watch the agent cook)
|
|
7
|
+
heading: 3. Save and replay (--record FILE, dexterm spectate)
|
|
8
|
+
anchor: 3-save-and-replay-record-file-dexterm-spectate
|
|
9
|
+
url: https://dexterm.xyz/docs/spectator#3-save-and-replay-record-file-dexterm-spectate
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- spectator
|
|
13
|
+
- save
|
|
14
|
+
- replay
|
|
15
|
+
- record
|
|
16
|
+
- file
|
|
17
|
+
- dexterm
|
|
18
|
+
- spectate
|
|
19
|
+
- three
|
|
20
|
+
- surfaces
|
|
21
|
+
- view
|
|
22
|
+
- watch
|
|
23
|
+
- agent
|
|
24
|
+
confidence: high
|
|
25
|
+
owner: maintainers
|
|
26
|
+
origin: docs-generated
|
|
27
|
+
reviewed_by: generated@2026-10-16
|
|
28
|
+
generated_from: dexterm/site content/docs (task-1420)
|
|
29
|
+
sources:
|
|
30
|
+
- site/content/docs/spectator.md
|
|
31
|
+
date: 2026-10-16
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
`dexterm agent serve --record FILE` appends every event to `FILE` as one JSON line, **redacted**, with the file created mode 0600. The redaction makes the file fit to share in a bug report or a demo.
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
$ dexterm spectate --replay session.jsonl # SCREEN, AGENTS and ACTIVITY as text
|
|
38
|
+
$ dexterm spectate --replay session.jsonl --json # {"meta":…,"view":…} for scripts
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Replay is offline and deterministic. It folds the saved events back into the same screen picture and activity list the window uses, then prints them in the terminal. It does not reopen the window. Don't confuse this with `dexterm --record FILE` on the main app, which saves raw data responses for `--replay` (see the CLI reference (https://dexterm.xyz/docs/cli)). The two flags share a name and do different things.
|
package/dist/packages/mcp/assets/kb/docs/docs-spectator-follow-over-mcp-in-the-running-terminal.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-spectator-follow-over-mcp-in-the-running-terminal
|
|
3
|
+
title: Spectator view (watch the agent cook) › Follow over MCP in the running terminal
|
|
4
|
+
kind: docs
|
|
5
|
+
page: spectator
|
|
6
|
+
page_title: Spectator view (watch the agent cook)
|
|
7
|
+
heading: Follow over MCP in the running terminal
|
|
8
|
+
anchor: follow-over-mcp-in-the-running-terminal
|
|
9
|
+
url: https://dexterm.xyz/docs/spectator#follow-over-mcp-in-the-running-terminal
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- spectator
|
|
13
|
+
- follow
|
|
14
|
+
- over
|
|
15
|
+
- mcp
|
|
16
|
+
- running
|
|
17
|
+
- terminal
|
|
18
|
+
- view
|
|
19
|
+
- watch
|
|
20
|
+
- agent
|
|
21
|
+
- cook
|
|
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/spectator.md
|
|
29
|
+
date: 2026-10-16
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
An agent connected over MCP (Claude Code, Claude Desktop, Cursor, Codex — set up with `dexterm mcp install`) runs the `dexterm mcp` server as its own process, which the app cannot see into. Since 0.1.4, run the app with `dexterm --spectate-mcp` and the running terminal **follows** that agent:
|
|
33
|
+
|
|
34
|
+
- While the flag is on, the app writes a small local rendezvous under `~/.dexterm` (mode 0600). The `dexterm mcp` server notices it and starts emitting one record per tool call to a local channel the app tails. When you are not following, the file is absent and the server writes nothing — there is no cost when nobody is watching.
|
|
35
|
+
- A **navigation** call (open a token, switch screen or feed, set a filter, highlight a row, open the paper ticket) moves the real screen, with a status line like `agent <name>: opened BONK`. These are the same read-only moves the analyst makes; nothing an agent does here can size, confirm, sign, send or raise a cap.
|
|
36
|
+
- The controls are at your keyboard: **ctrl+p** pauses and resumes the mirroring, **ctrl+k** stops following (it removes the rendezvous, so the server stops emitting), and **any other key** hands control back to you — the agent can never move the screen out from under you.
|
|
37
|
+
- A read-only, loopback, token-gated stream opens too, so `dexterm spectate --info` shows its endpoint while you follow. Every record is authenticated by the rendezvous token before it is folded, and every shared copy is redacted (see what is redacted (https://dexterm.xyz/docs/spectator#what-is-redacted)). This is on the owner's own machine, so follow mode itself shows full detail.
|
|
38
|
+
|
|
39
|
+
The built-in analyst (the in-app `ask Claude`) already drives the terminal through its own action channel and shows `analyst did X`; this is the same idea for an agent you connected yourself over MCP.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-spectator-limits
|
|
3
|
+
title: Spectator view (watch the agent cook) › Limits
|
|
4
|
+
kind: docs
|
|
5
|
+
page: spectator
|
|
6
|
+
page_title: Spectator view (watch the agent cook)
|
|
7
|
+
heading: Limits
|
|
8
|
+
anchor: limits
|
|
9
|
+
url: https://dexterm.xyz/docs/spectator#limits
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- spectator
|
|
13
|
+
- limits
|
|
14
|
+
- view
|
|
15
|
+
- watch
|
|
16
|
+
- agent
|
|
17
|
+
- cook
|
|
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/spectator.md
|
|
25
|
+
date: 2026-10-16
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
Stated plainly, as of `(generated from the app: see https://dexterm.xyz/docs/spectator#limits; app-help has the exact keys and commands)`:
|
|
29
|
+
|
|
30
|
+
- **The AGENT ACTIVITY window is a separate window with its own screen model.** Its `screen` line shows the screen the agent *asked for*, built from its navigation events, and the bus runs in its own process (`dexterm agent serve`), so that window is not a mirror of your terminal. The running terminal itself **does** move when you follow with `dexterm --spectate-mcp` (follow mode) — that is a different surface from the popup window.
|
|
31
|
+
- **MCP agents are shown in follow mode, which you turn on.** Agents connected through `dexterm mcp` (Claude Code, Claude Desktop, Cursor or Codex, set up with `dexterm mcp install`) appear once you run the app with `dexterm --spectate-mcp`; the terminal then follows them and a read-only stream opens. Without the flag the MCP server emits nothing. The built-in analyst drives the terminal through its own action channel and shows `analyst did X`.
|
|
32
|
+
- **Replay is text.** `dexterm spectate --replay` prints the session in the terminal. It does not reopen the window.
|
|
33
|
+
- **No stream viewer ships.** The raw stream is for your own tooling.
|
|
34
|
+
- **Redaction matches patterns.** It masks anything shaped like an address or a key. Other text, such as a token symbol, a filter or a number, is shown as it is.
|
|
35
|
+
- **The window keeps the last 200 events** and shows 80.
|
|
36
|
+
- **The native window is macOS-only** and needs the native shell built. Everywhere else the window opens in your browser on loopback.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-spectator-quick-start
|
|
3
|
+
title: Spectator view (watch the agent cook) › Quick start
|
|
4
|
+
kind: docs
|
|
5
|
+
page: spectator
|
|
6
|
+
page_title: Spectator view (watch the agent cook)
|
|
7
|
+
heading: Quick start
|
|
8
|
+
anchor: quick-start
|
|
9
|
+
url: https://dexterm.xyz/docs/spectator#quick-start
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- spectator
|
|
13
|
+
- quick
|
|
14
|
+
- start
|
|
15
|
+
- view
|
|
16
|
+
- watch
|
|
17
|
+
- agent
|
|
18
|
+
- cook
|
|
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/spectator.md
|
|
26
|
+
date: 2026-10-16
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
$ dexterm agent add scanbot --tier observe # once: register the agent, prints a one-time token
|
|
31
|
+
$ export DEXTERM_AGENT_TOKEN=dxa_… # in the agent's environment, never on a command line
|
|
32
|
+
$ dexterm agent serve --spectator-popup --record session.jsonl
|
|
33
|
+
$ # now start your agent; it connects to the bus with its name and token
|
|
34
|
+
$ dexterm spectate --replay session.jsonl # later: replay what it did
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
`dexterm agent serve` runs on **fixtures** (canned data, no network) unless you pass `--live` for keyless live reads. Fixtures are the right choice for a first try and for any recording you plan to show.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-spectator-security-model
|
|
3
|
+
title: Spectator view (watch the agent cook) › Security model
|
|
4
|
+
kind: docs
|
|
5
|
+
page: spectator
|
|
6
|
+
page_title: Spectator view (watch the agent cook)
|
|
7
|
+
heading: Security model
|
|
8
|
+
anchor: security-model
|
|
9
|
+
url: https://dexterm.xyz/docs/spectator#security-model
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- spectator
|
|
13
|
+
- security
|
|
14
|
+
- model
|
|
15
|
+
- view
|
|
16
|
+
- watch
|
|
17
|
+
- agent
|
|
18
|
+
- cook
|
|
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/spectator.md
|
|
26
|
+
date: 2026-10-16
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
- **Loopback only.** The stream binds `127.0.0.1` on a random port and refuses any connection whose remote address is not loopback. It never binds a LAN address or `::`.
|
|
30
|
+
- **Per-session token.** 32 random bytes, generated when the stream starts, compared in constant time, stored in `~/.dexterm/spectator.json` (0600) and never passed as an argument. A connection without the token in its first 10 seconds is closed.
|
|
31
|
+
- **No inbound command path.** The stream server holds only the event hub. It has no reference to the bus, the agent registry, the tool executor or any control, so no code path leads from the socket to anything that can change state. A test sends `tools/call`, `pause` and `roster.kick` at it and checks that the bus is untouched and the socket only ever sent events.
|
|
32
|
+
- **The window uses the popup host's security unchanged**: a single-use ticket and a one-time WebSocket token per window, loopback bind, strict Host and Origin checks, a nonce CSP, and an allow-list that admits only the four `spectator.*` control events. Every string is drawn as text, never as HTML.
|
|
33
|
+
- **Agents stay untrusted and cannot sign.** The spectator view only observes calls the gate already allowed or refused. No agent at any tier has a tool that can arm, sign, confirm, send, raise a cap, change the gate or touch a wallet, a mandate or the signer, and the spectator view adds no event or control that could. Watching an agent never gives it more power.
|
|
34
|
+
|
|
35
|
+
The trust page (https://dexterm.xyz/trust/#spectator) has the short version.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-spectator-see-also
|
|
3
|
+
title: Spectator view (watch the agent cook) › See also
|
|
4
|
+
kind: docs
|
|
5
|
+
page: spectator
|
|
6
|
+
page_title: Spectator view (watch the agent cook)
|
|
7
|
+
heading: See also
|
|
8
|
+
anchor: see-also
|
|
9
|
+
url: https://dexterm.xyz/docs/spectator#see-also
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- spectator
|
|
13
|
+
- view
|
|
14
|
+
- watch
|
|
15
|
+
- agent
|
|
16
|
+
- cook
|
|
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/spectator.md
|
|
24
|
+
date: 2026-10-16
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
- Bring your own agent (https://dexterm.xyz/docs/agents): connecting an agent, tiers, mandates and the untrusted-by-default model.
|
|
28
|
+
- Trust (https://dexterm.xyz/trust/#agents): what any connected agent can never do.
|
|
29
|
+
- `dexterm help spectate`: the same topic from the command line, offline.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-spectator-streaming-it
|
|
3
|
+
title: Spectator view (watch the agent cook) › Streaming it
|
|
4
|
+
kind: docs
|
|
5
|
+
page: spectator
|
|
6
|
+
page_title: Spectator view (watch the agent cook)
|
|
7
|
+
heading: Streaming it
|
|
8
|
+
anchor: streaming-it
|
|
9
|
+
url: https://dexterm.xyz/docs/spectator#streaming-it
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- spectator
|
|
13
|
+
- streaming
|
|
14
|
+
- view
|
|
15
|
+
- watch
|
|
16
|
+
- agent
|
|
17
|
+
- cook
|
|
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/spectator.md
|
|
25
|
+
date: 2026-10-16
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
- **Capture the window**, not a port. Point your capture tool's window capture at the "watch the agent cook" window, or at the browser window if you're on the browser fallback. "Shareable" here means you capture a window on your own screen. Nothing binds a public address, and you shouldn't forward or tunnel the stream port.
|
|
29
|
+
- **Keep secrets off screen.** Don't show `~/.dexterm/spectator.json`, the `DEXTERM_AGENT_TOKEN` line or `dexterm agent add` output (it prints the agent's token once). `agent serve` prints the token's file path, never the token.
|
|
30
|
+
- **Use fixtures for a show.** `agent serve` without `--live` uses canned data, so no real coin names or market numbers appear. With `--live`, a capture shows whatever real coins the agent looks at.
|
|
31
|
+
- **Record and replay.** Add `--record FILE` so you can share the session afterwards. The file is redacted, so you can attach it to a bug report.
|
|
32
|
+
- The window and the stream show model and agent activity, not advice. Whatever an agent concludes is its own reading of tool results.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-spectator-the-three-surfaces
|
|
3
|
+
title: Spectator view (watch the agent cook) › The three surfaces
|
|
4
|
+
kind: docs
|
|
5
|
+
page: spectator
|
|
6
|
+
page_title: Spectator view (watch the agent cook)
|
|
7
|
+
heading: The three surfaces
|
|
8
|
+
anchor: the-three-surfaces
|
|
9
|
+
url: https://dexterm.xyz/docs/spectator#the-three-surfaces
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- spectator
|
|
13
|
+
- three
|
|
14
|
+
- surfaces
|
|
15
|
+
- view
|
|
16
|
+
- watch
|
|
17
|
+
- agent
|
|
18
|
+
- cook
|
|
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/spectator.md
|
|
26
|
+
date: 2026-10-16
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
All three read the same events from one in-memory hub, which `agent serve` creates only when you ask for one of them. Each surface redacts its own copy (see what is redacted (https://dexterm.xyz/docs/spectator#what-is-redacted)). The hub keeps the original events, and they never leave the process.
|
|
30
|
+
|
|
31
|
+
| surface | start it with | what you get |
|
|
32
|
+
| --- | --- | --- |
|
|
33
|
+
| AGENT ACTIVITY window | `dexterm agent serve --spectator-popup` | a window titled "watch the agent cook" with live activity and the pause, take over and kill controls |
|
|
34
|
+
| read-only stream | `dexterm agent serve --spectate` | a loopback WebSocket that sends events out and accepts no commands |
|
|
35
|
+
| save and replay | `dexterm agent serve --record FILE`, then `dexterm spectate --replay FILE` | a redacted JSONL file of the session that you can replay offline |
|
|
36
|
+
|
|
37
|
+
The flags combine: `--spectator-popup --spectate --record FILE` runs all three at once, and `--roster` adds the agent roster (https://dexterm.xyz/docs/agents#untrusted-by-default) popup.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-spectator-what-is-redacted
|
|
3
|
+
title: Spectator view (watch the agent cook) › What is redacted
|
|
4
|
+
kind: docs
|
|
5
|
+
page: spectator
|
|
6
|
+
page_title: Spectator view (watch the agent cook)
|
|
7
|
+
heading: What is redacted
|
|
8
|
+
anchor: what-is-redacted
|
|
9
|
+
url: https://dexterm.xyz/docs/spectator#what-is-redacted
|
|
10
|
+
tags:
|
|
11
|
+
- docs
|
|
12
|
+
- spectator
|
|
13
|
+
- redacted
|
|
14
|
+
- view
|
|
15
|
+
- watch
|
|
16
|
+
- agent
|
|
17
|
+
- cook
|
|
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/spectator.md
|
|
25
|
+
date: 2026-10-16
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
Redaction runs on every copy that leaves the hub: the stream, the saved file and the AGENT ACTIVITY window.
|
|
29
|
+
|
|
30
|
+
- **Wallet and token addresses**: any base58 run of 32 to 44 characters becomes `head4…tail4` (`7xKX…gAsU`), the same short form the app uses elsewhere. A full address never appears.
|
|
31
|
+
- **Key material**: any base58 run of 45 or more characters, or a hex run of 64 or more, becomes `[key]` with nothing kept. The gate already refuses every key and signer tool, so key material should never reach an event, and this rule covers it anyway.
|
|
32
|
+
- **Every string field, not just the summary.** The tool name, the refusal reason, the agent's name and every navigation field (screen, token, feed, filter, highlight, side) are scrubbed too. An untrusted agent might put an address or a key in an unknown tool name to smuggle it into the stream. The bus cuts a refused tool name to 64 characters and redaction masks what is left. A test drives that exact attack through the real bus and checks the stream and the saved file.
|
|
33
|
+
- **Sensitive events**: an event marked sensitive keeps only `[sensitive]` as its summary.
|
|
34
|
+
|
|
35
|
+
What stays readable: phases, tool names, tiers, timings, data ages, refusal codes and verdict labels, which is what makes the stream worth watching. A token symbol, a filter or a number in a summary is shown as it is. If you don't want real coin names in a capture, run on fixtures (the default).
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-spectator
|
|
3
|
+
title: Spectator view (watch the agent cook)
|
|
4
|
+
kind: docs
|
|
5
|
+
page: spectator
|
|
6
|
+
page_title: Spectator view (watch the agent cook)
|
|
7
|
+
url: https://dexterm.xyz/docs/spectator
|
|
8
|
+
tags:
|
|
9
|
+
- docs
|
|
10
|
+
- spectator
|
|
11
|
+
- view
|
|
12
|
+
- watch
|
|
13
|
+
- agent
|
|
14
|
+
- cook
|
|
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/spectator.md
|
|
22
|
+
date: 2026-10-16
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
Watch a connected agent work in real time. An AGENT ACTIVITY window with pause, take over and kill, a read-only loopback stream, and redacted save and replay. Covers what is redacted, the security model, how to capture it for a stream, and its limits.
|
|
26
|
+
|
|
27
|
+
The spectator view lets you watch an agent work: each time a connected agent calls a tool (opens a token, runs a LARP check, scans new pairs, reads a bubble map, makes a proposal, gets refused), the call shows up with its result, how long it took and how old its data was. It is for watching and for demos ("watch the agent cook"). It adds no new power: agents stay untrusted (https://dexterm.xyz/docs/agents#untrusted-by-default), and nothing in the spectator view can arm, sign, confirm or send anything.
|
|
28
|
+
|
|
29
|
+
It works with agents connected to the **loopback agent bus** that `dexterm agent serve` runs (see bring your own agent (https://dexterm.xyz/docs/agents#two-ways-to-connect)), and — since 0.1.4 — with agents connected over **MCP** (`dexterm mcp install`): run the app with `dexterm --spectate-mcp` and the **running terminal follows the agent** as it works (see follow an MCP agent (https://dexterm.xyz/docs/spectator#follow-over-mcp-in-the-running-terminal)). Read limits (https://dexterm.xyz/docs/spectator#limits) before you rely on it.
|