Manage the Midaz desk — radar, playbook, sharing, Telegram alerts, private intel, and asset tracking via the CLI
Read midaz-shared for auth/envelope basics and midaz-account for signin/onboarding.
Everything a signed-in user can do inside their desk at /desk/view and /desk/settings, exposed as CLI commands. All write commands require --yes.
midaz desk get # Summary (name, shared flag, subscription, has_invite_access, onboarded)
midaz desk settings # Owner-only: radar, playbook, telegram status (GET /api/desk/settings)
midaz desk view # Personal market read — subscription-gated (GET /api/desk/view)
is the cheapest way to inspect state at the start of a session.
desk getThe radar is a short list of domains / assets / events the user wants Midaz to focus on. Rules:
midaz desk radar get
midaz desk radar set --items "Fed policy, AI capex, Oil, China CNY" --yes
midaz desk radar set --from-file radar.md --yes
Updates enqueue an L4 refresh; l4_enqueued: true in the response means the personal market read will recompute soon.
Distinct from free-form radar lines: pins attach a specific entity (thesis, topic, driver, asset) to the radar with provenance tracking, so the web market view can render a filled pin button and L4 can treat the entity as a first-class watch target.
midaz desk radar pin --kind Thesis --source-type thread --source-id <id> --label "Short text" --yes
midaz desk radar pin --kind Topic --source-type topic --source-id <id> --label "Short text" --yes
midaz desk radar pin --kind Driver --source-type driver --source-id <id> --label "Short text" --yes
midaz desk radar pin --kind Asset --source-type asset --source-id <id> --label "Short text" --yes
midaz desk radar unpin --source-type thread --source-id <id> --yes
midaz desk radar pins # List pins (provenance rows) — includes origin = pin | adopted
Rules enforced server-side:
kind is the display label (Thesis | Topic | Driver | Asset); source-type is the DB key (thread | topic | driver | asset — the DB schema keeps the legacy thread term internally).label ≤ 160 chars after whitespace collapse.already_pinned if the (source-type, source-id) is already pinned.radar_full if the radar already has 12 lines and no freeform line can be adopted.label, the pin adopts it (origin: adopted); otherwise a new line is appended (origin: pin).origin=pin strips the line; origin=adopted only removes provenance (the freeform line survives); unknown pairs no-op.Pin/unpin enqueue an L4 refresh (l4_enqueued: true when work was queued).
Markdown, ≤20 000 chars. Describes how the user wants Midaz to interpret the market.
midaz desk playbook get
midaz desk playbook set --from-file playbook.md --yes
Flip the shared boolean to expose a read-only desk page at https://www.midaz.xyz/d/<desk_id>:
midaz desk share --on --yes
midaz desk share --off --yes
After enabling, midaz desk get returns desk.shared: true. The public URL is computed client-side from the desk id.
Two owner-triggered verbs enqueue an L4 rebuild of the personal desk. Both mirror buttons in the Desk Preferences panel:
midaz desk regenerate --yes # L4Cause.manual — POST /api/desk/personal-desk/regenerate
midaz desk reonboard --yes # L4Cause.personal_input — POST /api/desk/onboard (resubmits current config)
Notes:
regenerate sends no body and is the direct equivalent of the "Regenerate personal desk" button. Subscription-gated; returns {status:"queued"} or 409 with refresh_id if one is already in flight.reonboard reads your current radar_items + playbook via GET /api/desk/settings, then POSTs them back to /api/desk/onboard unchanged. Because the settings read is subscription-gated, reonboard is too (even though the onboard endpoint itself is not). Response includes l4_enqueued: true on success.midaz desk view to see the recomputed personal read once ready.midaz onboard instead.Connect the desk to the Midaz Telegram bot so alerts are delivered to chat.
midaz desk telegram status # Polls GET /api/desk/settings → telegram.{connected,bot_username}
midaz desk telegram connect # Prints + opens https://t.me/<bot>?start=<desk_id>
midaz desk telegram disconnect --yes
Flow:
telegram connect. The envelope has a view_url pointing at the Telegram deep link; the CLI also attempts to auto-open it. Instruct the user to tap "Start" inside Telegram.midaz desk telegram status. telegram.connected flips to true once the bot webhook has stored the chat id.Push private research into the Midaz intel store. Subscription-gated (exit 7 if no trial/active subscription).
midaz intel list [--limit 50]
midaz intel push --from-file note.md --title "My note" --url https://… --published-at 2026-04-15T00:00:00Z --yes
midaz intel rm <id> --yes
Limits:
content ≤ 100 000 chars--url and --published-at are optional--title defaults to the first line of the fileIntel items feed into L4 like any other source; a push or delete enqueues a refresh.
Read-only; no auth required, but the richest context appears when paired with a desk.
midaz assets list [--tier 1|2] [--bias bullish|bearish|neutral|mixed]
midaz assets get <asset_id>
midaz assets thesis <asset_id> <thesis_id>
Fields of interest:
bias, bias_score — aggregate stance across linked thesesthesis_count, bull_count, bear_count, mixed_countlinks[] — each has thesis_id, stance, weight, rationale, and evidence[] with claim snippetsview_url — deep link into the mapmidaz desk get — prints subscription, onboarded, has_invite_access.has_invite_access: false → point them to midaz invite redeem.onboarded: false → point them to midaz onboard.subscription.allowed: false → point them to midaz subscription start.midaz desk view to show the personal market read.midaz desk radar get — confirm current state.midaz desk radar set --items "item1, item2, …" --yesl4_enqueued status and mention that the personal market read will refresh shortly.midaz desk telegram status — skip the rest if already connected.midaz desk telegram connect — surface the deep link as a clickable markdown link (also auto-opens).midaz desk telegram status once or twice to confirm it flipped to connected: true.midaz desk share --on --yesdesk.id from midaz desk get.https://www.midaz.xyz/d/<id> as a markdown link.midaz assets get NVDAlinks[], summarize stance, weight, rationale, top evidence[] snippets.midaz assets thesis NVDA <thesis_id> for full evidence.view_url + each linked thesis view_url.midaz subscription status (must be allowed).midaz intel push --from-file note.md --title "Morning note 2026-04-15" --yes.id so they can delete later if needed.