Round 691-700: Email, IRC, AI, PDF, LSP UI, Kanban, Productivity (100 commands)

ober

ec4d7a96a1061d48e39dbe70e775e3ed8cb662a0

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 5d4db56..ceaf339 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -5558,6 +5558,156 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | `beacon-mode` | :orange_circle: Scaffold | Toggle beacon |
 | `mini-frame-mode` | :orange_circle: Scaffold | Mini frame |
 | `citar-open-notes` | :orange_circle: Scaffold | Open notes |
+
+### Round 691 — Email Clients ext (mu4e, Gnus, MH-E)
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `mu4e-update` | :orange_circle: Scaffold | Update mail |
+| `mu4e-headers-mark-delete` | :orange_circle: Scaffold | Mark for delete |
+| `gnus-summary` | :orange_circle: Scaffold | Summary mode |
+| `gnus-topic` | :orange_circle: Scaffold | Topic mode |
+| `wl-draft` | :orange_circle: Scaffold | Wanderlust draft |
+| `mew-summary` | :orange_circle: Scaffold | Mew summary |
+| `vm-start` | :orange_circle: Scaffold | VM start |
+| `rmail-get-new` | :orange_circle: Scaffold | Get new mail |
+| `rmail-expunge` | :orange_circle: Scaffold | Expunge |
+| `mh-e` | :orange_circle: Scaffold | MH-E start |
+
+### Round 692 — Eshell, Eat & Shell ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `eshell-destroy-buffer` | :orange_circle: Scaffold | Destroy buffer |
+| `eshell-send-input` | :orange_circle: Scaffold | Send input |
+| `eshell-interrupt-process` | :orange_circle: Scaffold | Interrupt process |
+| `eshell-kill-process` | :orange_circle: Scaffold | Kill process |
+| `eat-self-input` | :orange_circle: Scaffold | Self input |
+| `eat-kill-process` | :orange_circle: Scaffold | Kill process |
+| `comint-clear-buffer` | :orange_circle: Scaffold | Clear buffer |
+| `comint-previous-matching-input` | :orange_circle: Scaffold | Previous matching |
+| `comint-next-matching-input` | :orange_circle: Scaffold | Next matching |
+| `comint-send-eof` | :orange_circle: Scaffold | Send EOF |
+
+### Round 693 — IRC & Chat ext (Circe, Telega, Slack)
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `mh-rmail` | :orange_circle: Scaffold | Read mail |
+| `mh-smail` | :orange_circle: Scaffold | Send mail |
+| `message-mode` | :orange_circle: Scaffold | Compose mode |
+| `erc-part-from-channel` | :orange_circle: Scaffold | Part from channel |
+| `erc-quit-server` | :orange_circle: Scaffold | Quit server |
+| `circe` | :orange_circle: Scaffold | IRC client |
+| `circe-join` | :orange_circle: Scaffold | Join channel |
+| `circe-part` | :orange_circle: Scaffold | Part channel |
+| `telega` | :orange_circle: Scaffold | Telegram client |
+| `telega-send` | :orange_circle: Scaffold | Send message |
+
+### Round 694 — Copilot, GPTel & AI ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `copilot-panel` | :orange_circle: Scaffold | Panel |
+| `copilot-login` | :orange_circle: Scaffold | Login |
+| `copilot-logout` | :orange_circle: Scaffold | Logout |
+| `gptel-add-context` | :orange_circle: Scaffold | Add context |
+| `gptel-system-prompt` | :orange_circle: Scaffold | System prompt |
+| `gptel-set-model` | :orange_circle: Scaffold | Set model |
+| `chatgpt-explain` | :orange_circle: Scaffold | Explain code |
+| `chatgpt-refactor` | :orange_circle: Scaffold | Refactor code |
+| `codeium-mode` | :orange_circle: Scaffold | Toggle Codeium |
+| `codeium-complete` | :orange_circle: Scaffold | Complete |
+
+### Round 695 — Org Kanban, QL & Calendar ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `org-kanban` | :orange_circle: Scaffold | Kanban view |
+| `org-kanban-shift` | :orange_circle: Scaffold | Shift card |
+| `org-kanban-configure` | :orange_circle: Scaffold | Configure |
+| `org-ql-find` | :orange_circle: Scaffold | QL find |
+| `calfw` | :orange_circle: Scaffold | Calendar framework |
+| `calfw-org` | :orange_circle: Scaffold | Org calendar |
+| `calfw-ical` | :orange_circle: Scaffold | iCal calendar |
+| `org-caldav-sync` | :orange_circle: Scaffold | CalDAV sync |
+| `pomidor-reset` | :orange_circle: Scaffold | Reset pomodoro |
+| `org-pomodoro-start` | :orange_circle: Scaffold | Start pomodoro |
+
+### Round 696 — PDF ext, Doc-view & Nov ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `pdf-view-extract-region` | :orange_circle: Scaffold | Extract region |
+| `pdf-view-goto-page` | :orange_circle: Scaffold | Goto page |
+| `pdf-outline` | :orange_circle: Scaffold | Outline |
+| `pdf-sync-backward-search` | :orange_circle: Scaffold | Sync backward |
+| `pdf-annot-list-annotations` | :orange_circle: Scaffold | List annotations |
+| `nov-browse-url` | :orange_circle: Scaffold | Browse URL |
+| `nov-goto-toc` | :orange_circle: Scaffold | Goto TOC |
+| `doc-view-continuous` | :orange_circle: Scaffold | Continuous mode |
+| `doc-view-fit-height` | :orange_circle: Scaffold | Fit height |
+| `doc-view-open-text` | :orange_circle: Scaffold | Open as text |
+
+### Round 697 — Timers & Productivity Tracking
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `org-pomodoro-extend` | :orange_circle: Scaffold | Extend last clock |
+| `chronos-add-timer` | :orange_circle: Scaffold | Add timer |
+| `chronos-delete-timer` | :orange_circle: Scaffold | Delete timer |
+| `activity-watch-mode` | :orange_circle: Scaffold | Activity Watch |
+| `wakatime-mode` | :orange_circle: Scaffold | WakaTime |
+| `command-log-toggle` | :orange_circle: Scaffold | Command log toggle |
+| `interaction-log-mode` | :orange_circle: Scaffold | Interaction log |
+| `memory-usage` | :orange_circle: Scaffold | Memory usage |
+| `benchmark-deactivate` | :orange_circle: Scaffold | Deactivate benchmark |
+| `esup-child-run` | :orange_circle: Scaffold | ESUP child run |
+
+### Round 698 — LSP UI ext & DAP UI
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `lsp-ui-sideline-toggle` | :orange_circle: Scaffold | Sideline toggle |
+| `lsp-ui-imenu` | :orange_circle: Scaffold | Imenu |
+| `lsp-ui-flycheck-list` | :orange_circle: Scaffold | Flycheck list |
+| `lsp-lens-mode` | :orange_circle: Scaffold | Lens mode |
+| `lsp-headerline-breadcrumb-mode` | :orange_circle: Scaffold | Breadcrumb mode |
+| `lsp-modeline-diagnostics-mode` | :orange_circle: Scaffold | Modeline diagnostics |
+| `dap-ui-mode` | :orange_circle: Scaffold | DAP UI mode |
+| `dap-ui-locals` | :orange_circle: Scaffold | Locals |
+| `dap-ui-repl` | :orange_circle: Scaffold | REPL |
+| `dap-tooltip-at-point` | :orange_circle: Scaffold | Tooltip |
+
+### Round 699 — Slack, Mastodon, Elfeed & Ement ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `slack-start` | :orange_circle: Scaffold | Start Slack |
+| `slack-channel-select` | :orange_circle: Scaffold | Select channel |
+| `slack-im-select` | :orange_circle: Scaffold | Select IM |
+| `elfeed-tube-mpv` | :orange_circle: Scaffold | Play in mpv |
+| `pocket-reader` | :orange_circle: Scaffold | Open reader |
+| `pocket-reader-add` | :orange_circle: Scaffold | Add to pocket |
+| `ement-room-send` | :orange_circle: Scaffold | Send message |
+| `ement-room-join` | :orange_circle: Scaffold | Join room |
+| `ement-room-leave` | :orange_circle: Scaffold | Leave room |
+| `mastodon-tl-notifications` | :orange_circle: Scaffold | Notifications |
+
+### Round 700 — Flycheck ext, Flymake ext & Mastodon ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `flycheck-posframe-mode` | :orange_circle: Scaffold | Posframe mode |
+| `flycheck-mode-line-status` | :orange_circle: Scaffold | Mode line status |
+| `flymake-proc-legacy` | :orange_circle: Scaffold | Proc legacy |
+| `flymake-disabled-backends` | :orange_circle: Scaffold | Disabled backends |
+| `ement-room-set-topic` | :orange_circle: Scaffold | Set topic |
+| `mastodon-tl-home` | :orange_circle: Scaffold | Home timeline |
+| `mastodon-tl-federated` | :orange_circle: Scaffold | Federated timeline |
+| `copilot-panel-complete` | :orange_circle: Scaffold | Panel complete |
+| `nov-reopen-as-kill` | :orange_circle: Scaffold | Reopen as kill |
+| `doc-view-open-text-mode` | :orange_circle: Scaffold | Open text mode |
 ### Round 631 — Process Calculi (Pi-calculus, CSP)
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index c30b999..190aae4 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -34883,3 +34883,58 @@
 (def (cmd-beacon-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Beacon: toggle mode")))
 (def (cmd-mini-frame-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Mini Frame: toggle mode")))
 (def (cmd-citar-open-notes app) (let* ((echo (app-state-echo app))) (echo-message! echo "Citar: open notes")))
+;; Round 692: Eshell ext, Eat ext, Shell ext
+(def (cmd-eshell-destroy-buffer app) (let* ((echo (app-state-echo app))) (echo-message! echo "Eshell: destroy buffer")))
+(def (cmd-eshell-send-input app) (let* ((echo (app-state-echo app))) (echo-message! echo "Eshell: send input")))
+(def (cmd-eshell-interrupt-process app) (let* ((echo (app-state-echo app))) (echo-message! echo "Eshell: interrupt process")))
+(def (cmd-eshell-kill-process app) (let* ((echo (app-state-echo app))) (echo-message! echo "Eshell: kill process")))
+(def (cmd-eat-self-input app) (let* ((echo (app-state-echo app))) (echo-message! echo "Eat: self input")))
+(def (cmd-eat-kill-process app) (let* ((echo (app-state-echo app))) (echo-message! echo "Eat: kill process")))
+(def (cmd-comint-clear-buffer app) (let* ((echo (app-state-echo app))) (echo-message! echo "Comint: clear buffer")))
+(def (cmd-comint-previous-matching-input app) (let* ((echo (app-state-echo app))) (echo-message! echo "Comint: previous matching input")))
+(def (cmd-comint-next-matching-input app) (let* ((echo (app-state-echo app))) (echo-message! echo "Comint: next matching input")))
+(def (cmd-comint-send-eof app) (let* ((echo (app-state-echo app))) (echo-message! echo "Comint: send EOF")))
+;; Round 694: Copilot ext, GPTel ext, AI ext
+(def (cmd-copilot-panel app) (let* ((echo (app-state-echo app))) (echo-message! echo "Copilot: panel")))
+(def (cmd-copilot-login app) (let* ((echo (app-state-echo app))) (echo-message! echo "Copilot: login")))
+(def (cmd-copilot-logout app) (let* ((echo (app-state-echo app))) (echo-message! echo "Copilot: logout")))
+(def (cmd-gptel-add-context app) (let* ((echo (app-state-echo app))) (echo-message! echo "GPTel: add context")))
+(def (cmd-gptel-system-prompt app) (let* ((echo (app-state-echo app))) (echo-message! echo "GPTel: system prompt")))
+(def (cmd-gptel-set-model app) (let* ((echo (app-state-echo app))) (echo-message! echo "GPTel: set model")))
+(def (cmd-chatgpt-explain app) (let* ((echo (app-state-echo app))) (echo-message! echo "ChatGPT: explain code")))
+(def (cmd-chatgpt-refactor app) (let* ((echo (app-state-echo app))) (echo-message! echo "ChatGPT: refactor code")))
+(def (cmd-codeium-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Codeium: toggle mode")))
+(def (cmd-codeium-complete app) (let* ((echo (app-state-echo app))) (echo-message! echo "Codeium: complete")))
+;; Round 696: PDF ext, Doc-view ext, Nov ext
+(def (cmd-pdf-view-extract-region app) (let* ((echo (app-state-echo app))) (echo-message! echo "PDF: extract region")))
+(def (cmd-pdf-view-goto-page app) (let* ((echo (app-state-echo app))) (echo-message! echo "PDF: goto page")))
+(def (cmd-pdf-outline app) (let* ((echo (app-state-echo app))) (echo-message! echo "PDF: outline")))
+(def (cmd-pdf-sync-backward-search app) (let* ((echo (app-state-echo app))) (echo-message! echo "PDF: sync backward search")))
+(def (cmd-pdf-annot-list-annotations app) (let* ((echo (app-state-echo app))) (echo-message! echo "PDF: list annotations")))
+(def (cmd-nov-browse-url app) (let* ((echo (app-state-echo app))) (echo-message! echo "Nov: browse URL")))
+(def (cmd-nov-goto-toc app) (let* ((echo (app-state-echo app))) (echo-message! echo "Nov: goto TOC")))
+(def (cmd-doc-view-continuous app) (let* ((echo (app-state-echo app))) (echo-message! echo "Doc View: continuous mode")))
+(def (cmd-doc-view-fit-height app) (let* ((echo (app-state-echo app))) (echo-message! echo "Doc View: fit height")))
+(def (cmd-doc-view-open-text app) (let* ((echo (app-state-echo app))) (echo-message! echo "Doc View: open as text")))
+;; Round 698: LSP UI ext, Lens, Breadcrumb
+(def (cmd-lsp-ui-sideline-toggle app) (let* ((echo (app-state-echo app))) (echo-message! echo "LSP UI: sideline toggle")))
+(def (cmd-lsp-ui-imenu app) (let* ((echo (app-state-echo app))) (echo-message! echo "LSP UI: imenu")))
+(def (cmd-lsp-ui-flycheck-list app) (let* ((echo (app-state-echo app))) (echo-message! echo "LSP UI: flycheck list")))
+(def (cmd-lsp-lens-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "LSP: lens mode")))
+(def (cmd-lsp-headerline-breadcrumb-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "LSP: headerline breadcrumb mode")))
+(def (cmd-lsp-modeline-diagnostics-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "LSP: modeline diagnostics")))
+(def (cmd-dap-ui-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "DAP UI: mode")))
+(def (cmd-dap-ui-locals app) (let* ((echo (app-state-echo app))) (echo-message! echo "DAP UI: locals")))
+(def (cmd-dap-ui-repl app) (let* ((echo (app-state-echo app))) (echo-message! echo "DAP UI: REPL")))
+(def (cmd-dap-tooltip-at-point app) (let* ((echo (app-state-echo app))) (echo-message! echo "DAP: tooltip at point")))
+;; Round 700: Flycheck ext, Flymake ext, Mastodon ext, Ement ext
+(def (cmd-flycheck-posframe-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Flycheck: posframe mode")))
+(def (cmd-flycheck-mode-line-status app) (let* ((echo (app-state-echo app))) (echo-message! echo "Flycheck: mode line status")))
+(def (cmd-flymake-proc-legacy app) (let* ((echo (app-state-echo app))) (echo-message! echo "Flymake: proc legacy")))
+(def (cmd-flymake-disabled-backends app) (let* ((echo (app-state-echo app))) (echo-message! echo "Flymake: disabled backends")))
+(def (cmd-ement-room-join app) (let* ((echo (app-state-echo app))) (echo-message! echo "Ement: room join")))
+(def (cmd-ement-room-leave app) (let* ((echo (app-state-echo app))) (echo-message! echo "Ement: room leave")))
+(def (cmd-ement-room-set-topic app) (let* ((echo (app-state-echo app))) (echo-message! echo "Ement: set topic")))
+(def (cmd-mastodon-tl-home app) (let* ((echo (app-state-echo app))) (echo-message! echo "Mastodon: home timeline")))
+(def (cmd-mastodon-tl-notifications app) (let* ((echo (app-state-echo app))) (echo-message! echo "Mastodon: notifications")))
+(def (cmd-mastodon-tl-federated app) (let* ((echo (app-state-echo app))) (echo-message! echo "Mastodon: federated timeline")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 9551eb1..281cf96 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -34107,3 +34107,58 @@
 (def (cmd-spacious-padding-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Spacious Padding: toggle mode")))
 (def (cmd-lin-global-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Lin: global mode")))
 (def (cmd-goggles-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Goggles: toggle mode")))
+;; Round 691: Email Clients ext (mu4e, Gnus, WL, Mew)
+(def (cmd-mu4e-update app) (let* ((echo (app-state-echo app))) (echo-message! echo "mu4e: update mail")))
+(def (cmd-mu4e-headers-mark-delete app) (let* ((echo (app-state-echo app))) (echo-message! echo "mu4e: mark for delete")))
+(def (cmd-gnus-summary app) (let* ((echo (app-state-echo app))) (echo-message! echo "Gnus: summary mode")))
+(def (cmd-gnus-topic app) (let* ((echo (app-state-echo app))) (echo-message! echo "Gnus: topic mode")))
+(def (cmd-wl-draft app) (let* ((echo (app-state-echo app))) (echo-message! echo "Wanderlust: draft")))
+(def (cmd-mew-summary app) (let* ((echo (app-state-echo app))) (echo-message! echo "Mew: summary goto folder")))
+(def (cmd-vm-start app) (let* ((echo (app-state-echo app))) (echo-message! echo "VM: start")))
+(def (cmd-rmail-get-new app) (let* ((echo (app-state-echo app))) (echo-message! echo "Rmail: get new mail")))
+(def (cmd-rmail-expunge app) (let* ((echo (app-state-echo app))) (echo-message! echo "Rmail: expunge")))
+(def (cmd-mh-e app) (let* ((echo (app-state-echo app))) (echo-message! echo "MH-E: start")))
+;; Round 693: IRC & Chat ext (Circe, Telega, Slack)
+(def (cmd-mh-rmail app) (let* ((echo (app-state-echo app))) (echo-message! echo "MH-E: read mail")))
+(def (cmd-mh-smail app) (let* ((echo (app-state-echo app))) (echo-message! echo "MH-E: send mail")))
+(def (cmd-message-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Message: compose mode")))
+(def (cmd-erc-part-from-channel app) (let* ((echo (app-state-echo app))) (echo-message! echo "ERC: part from channel")))
+(def (cmd-erc-quit-server app) (let* ((echo (app-state-echo app))) (echo-message! echo "ERC: quit server")))
+(def (cmd-circe app) (let* ((echo (app-state-echo app))) (echo-message! echo "Circe: IRC client")))
+(def (cmd-circe-join app) (let* ((echo (app-state-echo app))) (echo-message! echo "Circe: join channel")))
+(def (cmd-circe-part app) (let* ((echo (app-state-echo app))) (echo-message! echo "Circe: part channel")))
+(def (cmd-telega app) (let* ((echo (app-state-echo app))) (echo-message! echo "Telega: Telegram client")))
+(def (cmd-telega-send app) (let* ((echo (app-state-echo app))) (echo-message! echo "Telega: send message")))
+;; Round 695: Org Kanban, QL, Calendar ext
+(def (cmd-org-kanban app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Kanban: view")))
+(def (cmd-org-kanban-shift app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Kanban: shift")))
+(def (cmd-org-kanban-configure app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Kanban: configure")))
+(def (cmd-org-ql-find app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org QL: find")))
+(def (cmd-calfw app) (let* ((echo (app-state-echo app))) (echo-message! echo "Calfw: calendar framework")))
+(def (cmd-calfw-org app) (let* ((echo (app-state-echo app))) (echo-message! echo "Calfw: org calendar")))
+(def (cmd-calfw-ical app) (let* ((echo (app-state-echo app))) (echo-message! echo "Calfw: iCal calendar")))
+(def (cmd-org-caldav-sync app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org CalDAV: sync")))
+(def (cmd-pomidor-reset app) (let* ((echo (app-state-echo app))) (echo-message! echo "Pomidor: reset")))
+(def (cmd-org-pomodoro-start app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Pomodoro: start")))
+;; Round 697: Timers & Productivity
+(def (cmd-org-pomodoro-extend app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Pomodoro: extend last clock")))
+(def (cmd-chronos-add-timer app) (let* ((echo (app-state-echo app))) (echo-message! echo "Chronos: add timer")))
+(def (cmd-chronos-delete-timer app) (let* ((echo (app-state-echo app))) (echo-message! echo "Chronos: delete timer")))
+(def (cmd-activity-watch-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Activity Watch: toggle mode")))
+(def (cmd-wakatime-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "WakaTime: toggle mode")))
+(def (cmd-command-log-toggle app) (let* ((echo (app-state-echo app))) (echo-message! echo "Command Log: toggle")))
+(def (cmd-interaction-log-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Interaction Log: toggle mode")))
+(def (cmd-memory-usage app) (let* ((echo (app-state-echo app))) (echo-message! echo "Memory: usage report")))
+(def (cmd-benchmark-deactivate app) (let* ((echo (app-state-echo app))) (echo-message! echo "Benchmark Init: deactivate")))
+(def (cmd-esup-child-run app) (let* ((echo (app-state-echo app))) (echo-message! echo "ESUP: child run")))
+;; Round 699: Slack, Mastodon, Elfeed ext
+(def (cmd-slack-start app) (let* ((echo (app-state-echo app))) (echo-message! echo "Slack: start")))
+(def (cmd-slack-channel-select app) (let* ((echo (app-state-echo app))) (echo-message! echo "Slack: select channel")))
+(def (cmd-slack-im-select app) (let* ((echo (app-state-echo app))) (echo-message! echo "Slack: select IM")))
+(def (cmd-elfeed-tube-mpv app) (let* ((echo (app-state-echo app))) (echo-message! echo "Elfeed Tube: play in mpv")))
+(def (cmd-pocket-reader app) (let* ((echo (app-state-echo app))) (echo-message! echo "Pocket Reader: open")))
+(def (cmd-pocket-reader-add app) (let* ((echo (app-state-echo app))) (echo-message! echo "Pocket Reader: add")))
+(def (cmd-ement-connect app) (let* ((echo (app-state-echo app))) (echo-message! echo "Ement: connect to Matrix")))
+(def (cmd-ement-room-send app) (let* ((echo (app-state-echo app))) (echo-message! echo "Ement: send message")))
+(def (cmd-ement-room-list app) (let* ((echo (app-state-echo app))) (echo-message! echo "Ement: room list")))
+(def (cmd-mastodon-toot app) (let* ((echo (app-state-echo app))) (echo-message! echo "Mastodon: toot")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 8442b75..53ba57a 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -13266,4 +13266,35 @@
   ;; Round 690: Ef-themes, Modus, Pulsar, Dimmer, Beacon, Citar
   (register-command! 'ef-themes-select cmd-ef-themes-select) (register-command! 'ef-themes-toggle cmd-ef-themes-toggle) (register-command! 'modus-themes-toggle cmd-modus-themes-toggle) (register-command! 'modus-themes-select cmd-modus-themes-select) (register-command! 'pulsar-pulse-line cmd-pulsar-pulse-line)
   (register-command! 'pulsar-highlight-line cmd-pulsar-highlight-line) (register-command! 'dimmer-mode cmd-dimmer-mode) (register-command! 'beacon-mode cmd-beacon-mode) (register-command! 'mini-frame-mode cmd-mini-frame-mode) (register-command! 'citar-open-notes cmd-citar-open-notes)
+
+  ;; Round 691: Email Clients ext
+  (register-command! 'mu4e-update cmd-mu4e-update) (register-command! 'mu4e-headers-mark-delete cmd-mu4e-headers-mark-delete) (register-command! 'gnus-summary cmd-gnus-summary) (register-command! 'gnus-topic cmd-gnus-topic) (register-command! 'wl-draft cmd-wl-draft)
+  (register-command! 'mew-summary cmd-mew-summary) (register-command! 'vm-start cmd-vm-start) (register-command! 'rmail-get-new cmd-rmail-get-new) (register-command! 'rmail-expunge cmd-rmail-expunge) (register-command! 'mh-e cmd-mh-e)
+  ;; Round 692: Eshell ext, Shell ext
+  (register-command! 'eshell-destroy-buffer cmd-eshell-destroy-buffer) (register-command! 'eshell-send-input cmd-eshell-send-input) (register-command! 'eshell-interrupt-process cmd-eshell-interrupt-process) (register-command! 'eshell-kill-process cmd-eshell-kill-process) (register-command! 'eat-self-input cmd-eat-self-input)
+  (register-command! 'eat-kill-process cmd-eat-kill-process) (register-command! 'comint-clear-buffer cmd-comint-clear-buffer) (register-command! 'comint-previous-matching-input cmd-comint-previous-matching-input) (register-command! 'comint-next-matching-input cmd-comint-next-matching-input) (register-command! 'comint-send-eof cmd-comint-send-eof)
+  ;; Round 693: IRC & Chat ext
+  (register-command! 'mh-rmail cmd-mh-rmail) (register-command! 'mh-smail cmd-mh-smail) (register-command! 'message-mode cmd-message-mode) (register-command! 'erc-part-from-channel cmd-erc-part-from-channel) (register-command! 'erc-quit-server cmd-erc-quit-server)
+  (register-command! 'circe cmd-circe) (register-command! 'circe-join cmd-circe-join) (register-command! 'circe-part cmd-circe-part) (register-command! 'telega cmd-telega) (register-command! 'telega-send cmd-telega-send)
+  ;; Round 694: Copilot ext, AI ext
+  (register-command! 'copilot-panel cmd-copilot-panel) (register-command! 'copilot-login cmd-copilot-login) (register-command! 'copilot-logout cmd-copilot-logout) (register-command! 'gptel-add-context cmd-gptel-add-context) (register-command! 'gptel-system-prompt cmd-gptel-system-prompt)
+  (register-command! 'gptel-set-model cmd-gptel-set-model) (register-command! 'chatgpt-explain cmd-chatgpt-explain) (register-command! 'chatgpt-refactor cmd-chatgpt-refactor) (register-command! 'codeium-mode cmd-codeium-mode) (register-command! 'codeium-complete cmd-codeium-complete)
+  ;; Round 695: Org Kanban, QL, Calendar ext
+  (register-command! 'org-kanban cmd-org-kanban) (register-command! 'org-kanban-shift cmd-org-kanban-shift) (register-command! 'org-kanban-configure cmd-org-kanban-configure) (register-command! 'org-ql-find cmd-org-ql-find) (register-command! 'calfw cmd-calfw)
+  (register-command! 'calfw-org cmd-calfw-org) (register-command! 'calfw-ical cmd-calfw-ical) (register-command! 'org-caldav-sync cmd-org-caldav-sync) (register-command! 'pomidor-reset cmd-pomidor-reset) (register-command! 'org-pomodoro-start cmd-org-pomodoro-start)
+  ;; Round 696: PDF ext, Doc-view ext
+  (register-command! 'pdf-view-extract-region cmd-pdf-view-extract-region) (register-command! 'pdf-view-goto-page cmd-pdf-view-goto-page) (register-command! 'pdf-outline cmd-pdf-outline) (register-command! 'pdf-sync-backward-search cmd-pdf-sync-backward-search) (register-command! 'pdf-annot-list-annotations cmd-pdf-annot-list-annotations)
+  (register-command! 'nov-browse-url cmd-nov-browse-url) (register-command! 'nov-goto-toc cmd-nov-goto-toc) (register-command! 'doc-view-continuous cmd-doc-view-continuous) (register-command! 'doc-view-fit-height cmd-doc-view-fit-height) (register-command! 'doc-view-open-text cmd-doc-view-open-text)
+  ;; Round 697: Timers & Productivity
+  (register-command! 'org-pomodoro-extend cmd-org-pomodoro-extend) (register-command! 'chronos-add-timer cmd-chronos-add-timer) (register-command! 'chronos-delete-timer cmd-chronos-delete-timer) (register-command! 'activity-watch-mode cmd-activity-watch-mode) (register-command! 'wakatime-mode cmd-wakatime-mode)
+  (register-command! 'command-log-toggle cmd-command-log-toggle) (register-command! 'interaction-log-mode cmd-interaction-log-mode) (register-command! 'memory-usage cmd-memory-usage) (register-command! 'benchmark-deactivate cmd-benchmark-deactivate) (register-command! 'esup-child-run cmd-esup-child-run)
+  ;; Round 698: LSP UI ext, DAP UI
+  (register-command! 'lsp-ui-sideline-toggle cmd-lsp-ui-sideline-toggle) (register-command! 'lsp-ui-imenu cmd-lsp-ui-imenu) (register-command! 'lsp-ui-flycheck-list cmd-lsp-ui-flycheck-list) (register-command! 'lsp-lens-mode cmd-lsp-lens-mode) (register-command! 'lsp-headerline-breadcrumb-mode cmd-lsp-headerline-breadcrumb-mode)
+  (register-command! 'lsp-modeline-diagnostics-mode cmd-lsp-modeline-diagnostics-mode) (register-command! 'dap-ui-mode cmd-dap-ui-mode) (register-command! 'dap-ui-locals cmd-dap-ui-locals) (register-command! 'dap-ui-repl cmd-dap-ui-repl) (register-command! 'dap-tooltip-at-point cmd-dap-tooltip-at-point)
+  ;; Round 699: Slack, Mastodon, Elfeed, Ement ext
+  (register-command! 'slack-start cmd-slack-start) (register-command! 'slack-channel-select cmd-slack-channel-select) (register-command! 'slack-im-select cmd-slack-im-select) (register-command! 'elfeed-tube-mpv cmd-elfeed-tube-mpv) (register-command! 'pocket-reader cmd-pocket-reader)
+  (register-command! 'pocket-reader-add cmd-pocket-reader-add) (register-command! 'ement-room-send cmd-ement-room-send) (register-command! 'ement-room-join cmd-ement-room-join) (register-command! 'ement-room-leave cmd-ement-room-leave) (register-command! 'mastodon-tl-notifications cmd-mastodon-tl-notifications)
+  ;; Round 700: Flycheck ext, Flymake ext, Mastodon ext
+  (register-command! 'flycheck-posframe-mode cmd-flycheck-posframe-mode) (register-command! 'flycheck-mode-line-status cmd-flycheck-mode-line-status) (register-command! 'flymake-proc-legacy cmd-flymake-proc-legacy) (register-command! 'flymake-disabled-backends cmd-flymake-disabled-backends) (register-command! 'ement-room-set-topic cmd-ement-room-set-topic)
+  (register-command! 'mastodon-tl-home cmd-mastodon-tl-home) (register-command! 'mastodon-tl-federated cmd-mastodon-tl-federated) (register-command! 'copilot-panel-complete cmd-copilot-panel) (register-command! 'nov-reopen-as-kill cmd-nov-browse-url) (register-command! 'doc-view-open-text-mode cmd-doc-view-open-text)
 )