Round 781-800: Plz/Verb, Restclient/Hurl, Osm, Speed-type, Keyfreq/Command-log, Objed/Targets, Symex, Lispy/Paredit, Tree-edit, Combobulate/Dogears, Eat/Coterm, Detached/Inheritenv, Org-super-links/Org-noter, Org-download/Org-web-tools, Org-appear/Org-modern, Org-fragtog/Org-latex, Codeium/Tabnine, Aider/Claude-shell, Whisper/Speechd, Transient/Hydra (200 commands)

ober

14ca27bfc96ac24cb8750a4a8e7b1f57c1bd804e

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index c6ce362..9bb1216 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -6908,6 +6908,306 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | `wallabag-show-starred` | :orange_circle: | `wallabag-starred-entries` |
 | `wallabag-show-archived` | :orange_circle: | `wallabag-archived-entries` |
 | `wallabag-export` | :orange_circle: | `wallabag-export-entry` |
+
+### Round 781: Plz ext 2 / Verb ext 2
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `plz-get` (sync) | :orange_circle: | `plz-get-sync` |
+| `plz-post` (JSON) | :orange_circle: | `plz-post-json` |
+| `plz-media-type` | :orange_circle: | `plz-media-type` |
+| `plz-request-abort` | :orange_circle: | `plz-request-abort` |
+| `plz-request-body-from-file` | :orange_circle: | `plz-request-body-from-file` |
+| `verb-send-request-on-point` | :orange_circle: | `verb-send-request` |
+| `verb-export-request-on-point` | :orange_circle: | `verb-export-request` |
+| `verb-kill-response-buffer` | :orange_circle: | `verb-kill-response` |
+| `verb-show-headers` | :orange_circle: | `verb-show-headers` |
+| `verb-headers-mode` | :orange_circle: | `verb-headers-mode` |
+
+### Round 782: Restclient ext 2 / Hurl
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `restclient-http-info` | :orange_circle: | `restclient-info-show` |
+| `restclient-jump-prev` | :orange_circle: | `restclient-jump-to-prev` |
+| `restclient-jump-next` | :orange_circle: | `restclient-jump-to-next` |
+| `restclient-outline` | :orange_circle: | `restclient-outline-show` |
+| `restclient-format-json` | :orange_circle: | `restclient-format-json` |
+| `hurl-mode` | :orange_circle: | `hurl-mode` |
+| `hurl-send-request` | :orange_circle: | `hurl-send-request` |
+| `hurl-send-all` | :orange_circle: | `hurl-send-all` |
+| `hurl-show-report` | :orange_circle: | `hurl-show-report` |
+| `hurl-format-buffer` | :orange_circle: | `hurl-format-buffer` |
+
+### Round 783: Osm (OpenStreetMap)
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `osm-goto` | :orange_circle: | `osm-goto` |
+| `osm-search` | :orange_circle: | `osm-search` |
+| `osm-gpx-show` | :orange_circle: | `osm-gpx-show` |
+| `osm-bookmark-set` | :orange_circle: | `osm-bookmark-set` |
+| `osm-bookmark-jump` | :orange_circle: | `osm-bookmark-jump` |
+| `osm-zoom-in` | :orange_circle: | `osm-zoom-in` |
+| `osm-zoom-out` | :orange_circle: | `osm-zoom-out` |
+| `osm-center` | :orange_circle: | `osm-center` |
+| `osm-home` | :orange_circle: | `osm-home` |
+| `osm-server` | :orange_circle: | `osm-server-select` |
+
+### Round 784: Speed-type ext 2 / Typing
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `speed-type-text` | :orange_circle: | `speed-type-text` |
+| `speed-type-top-x` | :orange_circle: | `speed-type-top-x` |
+| `speed-type-top-100` | :orange_circle: | `speed-type-top-x-advanced` |
+| `typing-of-emacs` | :orange_circle: | `typing-of-emacs` |
+| `typing-practice` | :orange_circle: | `typing-practice-start` |
+| `typing-game` | :orange_circle: | `typing-game-mode` |
+| `typing-statistics` | :orange_circle: | `typing-stats-display` |
+| `typing-leaderboard` | :orange_circle: | `typing-leaderboard` |
+| `speed-type-code` | :orange_circle: | `speed-type-code-block` |
+| `speed-type-custom` | :orange_circle: | `speed-type-custom-text` |
+
+### Round 785: Keyfreq ext 2 / Command-log ext 2
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `keyfreq-reset` | :orange_circle: | `keyfreq-reset` |
+| `keyfreq-autosave-mode` | :orange_circle: | `keyfreq-autosave-mode` |
+| `keyfreq-html` | :orange_circle: | `keyfreq-html` |
+| `keyfreq-table` | :orange_circle: | `keyfreq-table` |
+| `keyfreq-file-save` | :orange_circle: | `keyfreq-file-save` |
+| `clm/open-command-log-buffer` | :orange_circle: | `command-log-open` |
+| `clm/save-command-log` | :orange_circle: | `command-log-save` |
+| `clm/clear-command-log` | :orange_circle: | `command-log-clear` |
+| `clm/close-command-log-buffer` | :orange_circle: | `command-log-close` |
+| `clm/toggle-command-log-buffer` | :orange_circle: | `command-log-toggle-logging` |
+
+### Round 786: Objed / Targets (text object selection)
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `objed-activate` | :orange_circle: | `objed-activate` |
+| `objed-activate-object` | :orange_circle: | `objed-activate-object` |
+| `objed-expand-context` | :orange_circle: | `objed-expand-context` |
+| `objed-toggle-side` | :orange_circle: | `objed-toggle-side` |
+| `objed-current-or-next-context` | :orange_circle: | `objed-current-or-next` |
+| `targets-inner-text-object` | :orange_circle: | `targets-text-object` |
+| `targets-inner-pair` | :orange_circle: | `targets-pair` |
+| `targets-inner-quote` | :orange_circle: | `targets-quote` |
+| `targets-inner-separator` | :orange_circle: | `targets-separator` |
+| `targets-last-text-object` | :orange_circle: | `targets-last-text-object` |
+
+### Round 787: Symex (structural Lisp editing)
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `symex-go-up` | :orange_circle: | `symex-go-up` |
+| `symex-go-down` | :orange_circle: | `symex-go-down` |
+| `symex-go-forward` | :orange_circle: | `symex-go-forward` |
+| `symex-go-backward` | :orange_circle: | `symex-go-backward` |
+| `symex-traverse-forward` | :orange_circle: | `symex-traverse-forward` |
+| `symex-traverse-backward` | :orange_circle: | `symex-traverse-backward` |
+| `symex-soar-forward` | :orange_circle: | `symex-soar-forward` |
+| `symex-soar-backward` | :orange_circle: | `symex-soar-backward` |
+| `symex-wrap` | :orange_circle: | `symex-wrap` |
+| `symex-yank-after` | :orange_circle: | `symex-yank-after` |
+
+### Round 788: Lispy ext 2 / Paredit ext 2
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `lispy-move-up` | :orange_circle: | `lispy-move-up` |
+| `lispy-move-down` | :orange_circle: | `lispy-move-down` |
+| `lispy-outline` | :orange_circle: | `lispy-outline` |
+| `lispy-clone` | :orange_circle: | `lispy-clone` |
+| `lispy-oneline` | :orange_circle: | `lispy-oneline` |
+| `paredit-convolute-sexp` | :orange_circle: | `paredit-convolute` |
+| `paredit-join-sexps` (next) | :orange_circle: | `paredit-join-with-next` |
+| `paredit-join-sexps` (prev) | :orange_circle: | `paredit-join-with-previous` |
+| `paredit-meta-doublequote-and-newline` | :orange_circle: | `paredit-meta-doublequote-and-newline` |
+| `paredit-reindent-defun` | :orange_circle: | `paredit-reindent-defun` |
+
+### Round 789: Tree-edit / Evil-textobj-tree-sitter
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `tree-edit-insert-sibling` | :orange_circle: | `tree-edit-insert-sibling` |
+| `tree-edit-delete` | :orange_circle: | `tree-edit-delete` |
+| `tree-edit-raise` | :orange_circle: | `tree-edit-raise` |
+| `tree-edit-wrap` | :orange_circle: | `tree-edit-wrap` |
+| `tree-edit-goto-parent` | :orange_circle: | `tree-edit-goto-parent` |
+| `evil-textobj-tree-sitter-select` | :orange_circle: | `evil-textobj-tree-sitter-select` |
+| `evil-textobj-tree-sitter-smart-select` | :orange_circle: | `evil-textobj-tree-sitter-smart` |
+| `evil-textobj-tree-sitter-swap-next` | :orange_circle: | `evil-textobj-tree-sitter-swap-next` |
+| `evil-textobj-tree-sitter-swap-prev` | :orange_circle: | `evil-textobj-tree-sitter-swap-prev` |
+| `evil-textobj-tree-sitter-function` | :orange_circle: | `evil-textobj-tree-sitter-function` |
+
+### Round 790: Combobulate ext 3 / Dogears ext 2
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `combobulate-cursor-open-node` | :orange_circle: | `combobulate-cursor-open` |
+| `combobulate-cursor-close-node` | :orange_circle: | `combobulate-cursor-close` |
+| `combobulate-highlight-dwim` | :orange_circle: | `combobulate-highlight-dwim` |
+| `combobulate-query-builder` | :orange_circle: | `combobulate-query-builder` |
+| `combobulate-highlight-query-node` | :orange_circle: | `combobulate-highlight-query` |
+| `dogears-list` | :orange_circle: | `dogears-list` |
+| `dogears-sidebar` | :orange_circle: | `dogears-sidebar` |
+| `dogears-mode` | :orange_circle: | `dogears-mode` |
+| `dogears-follow` | :orange_circle: | `dogears-follow` |
+| `dogears-search` | :orange_circle: | `dogears-search` |
+
+### Round 791: Eat ext 3 / Coterm ext 2
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `eat-project-other-window` | :orange_circle: | `eat-project-other-window` |
+| `eat-semi-char-mode` (toggle) | :orange_circle: | `eat-semi-char-toggle` |
+| `eat-input-line-mode` | :orange_circle: | `eat-input-line-mode` |
+| `eat-term-char-mode` | :orange_circle: | `eat-term-char-mode` |
+| `eat-trace-save` | :orange_circle: | `eat-trace-save` |
+| `coterm-char-mode-passthrough` | :orange_circle: | `coterm-char-mode-passthrough` |
+| `coterm-scroll-snap-mode` | :orange_circle: | `coterm-scroll-snap` |
+| `coterm-auto-char-lighter` | :orange_circle: | `coterm-auto-char-lighter` |
+| `coterm-filter-functions` | :orange_circle: | `coterm-filter-functions` |
+| `coterm-terminal-columns` | :orange_circle: | `coterm-terminal-columns` |
+
+### Round 792: Detached ext 2 / Inheritenv ext 2
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `detached-delete-session` | :orange_circle: | `detached-delete-sessions` |
+| `detached-tail-session` | :orange_circle: | `detached-tail-session` |
+| `detached-session-mode` | :orange_circle: | `detached-session-mode` |
+| `detached-shell-override-history` | :orange_circle: | `detached-shell-override` |
+| `detached-shell-send-input` | :orange_circle: | `detached-shell-send-input` |
+| `inheritenv-add-advice` | :orange_circle: | `inheritenv-add-advice` |
+| `inheritenv-remove-advice` | :orange_circle: | `inheritenv-remove-advice` |
+| `inheritenv-edit` | :orange_circle: | `inheritenv-edit-vars` |
+| `inheritenv-show` | :orange_circle: | `inheritenv-show` |
+| `inheritenv-save` | :orange_circle: | `inheritenv-save` |
+
+### Round 793: Org-super-links / Org-noter ext 2
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `org-super-links-store-link` | :orange_circle: | `org-super-links-store-link` |
+| `org-super-links-insert-link` | :orange_circle: | `org-super-links-insert-link` |
+| `org-super-links-quick-insert-inline-link` | :orange_circle: | `org-super-links-quick-insert` |
+| `org-super-links-delete-link` | :orange_circle: | `org-super-links-delete-link` |
+| `org-super-links-convert-link-to-super` | :orange_circle: | `org-super-links-convert-link-to-super` |
+| `org-noter-insert-precise-note` | :orange_circle: | `org-noter-insert-precise-note` |
+| `org-noter-toggle-notes-window-location` | :orange_circle: | `org-noter-toggle-notes-sidebar` |
+| `org-noter-set-start-location` | :orange_circle: | `org-noter-set-start-page` |
+| `org-noter-toggle-notes-window` | :orange_circle: | `org-noter-toggle-notes-window` |
+| `org-noter-create-session-from-document-multi` | :orange_circle: | `org-noter-create-multi-file` |
+
+### Round 794: Org-download ext 2 / Org-web-tools
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `org-download-rename-last-file` | :orange_circle: | `org-download-rename-last` |
+| `org-download-method` | :orange_circle: | `org-download-method-set` |
+| `org-download-annotate-default` | :orange_circle: | `org-download-annotate` |
+| `org-download-image-html-width` | :orange_circle: | `org-download-image-html` |
+| `org-download-rename-at-point` | :orange_circle: | `org-download-rename-at-point-with-time` |
+| `org-web-tools-insert-link-for-url` | :orange_circle: | `org-web-tools-insert-link-for-url` |
+| `org-web-tools-read-url-as-org` | :orange_circle: | `org-web-tools-read-url-as-org` |
+| `org-web-tools-convert-links-to-page-entries` | :orange_circle: | `org-web-tools-convert-links-to-page-entries` |
+| `org-web-tools-archive-view` | :orange_circle: | `org-web-tools-archive-view` |
+| `org-web-tools-archive-attach` | :orange_circle: | `org-web-tools-archive-attach` |
+
+### Round 795: Org-appear ext 2 / Org-modern ext 2
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `org-appear-mode` (toggle) | :orange_circle: | `org-appear-toggle` |
+| `org-appear-manual-mode` | :orange_circle: | `org-appear-manual` |
+| `org-appear-inside-latex` | :orange_circle: | `org-appear-inside-latex` |
+| `org-appear-autolinks` | :orange_circle: | `org-appear-autolinks` |
+| `org-appear-autosubmarkers` | :orange_circle: | `org-appear-autosubmarkers` |
+| `org-modern-indent-mode` | :orange_circle: | `org-modern-indent-mode` |
+| `org-modern-tag-mode` | :orange_circle: | `org-modern-tag-mode` |
+| `org-modern-table` | :orange_circle: | `org-modern-table` |
+| `org-modern-block-fringe` | :orange_circle: | `org-modern-block` |
+| `org-modern-keyword` | :orange_circle: | `org-modern-keyword` |
+
+### Round 796: Org-fragtog ext 2 / Org-latex-preview
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `org-fragtog-mode` (toggle) | :orange_circle: | `org-fragtog-toggle` |
+| `org-fragtog-preview-all` | :orange_circle: | `org-fragtog-preview-all` |
+| `org-fragtog-clear-all` | :orange_circle: | `org-fragtog-clear-all` |
+| `org-fragtog-update` | :orange_circle: | `org-fragtog-update` |
+| `org-fragtog-preview-region` | :orange_circle: | `org-fragtog-preview-region` |
+| `org-latex-preview` | :orange_circle: | `org-latex-preview-mode` |
+| `org-latex-preview-region` | :orange_circle: | `org-latex-preview-region` |
+| `org-latex-preview-clear-cache` | :orange_circle: | `org-latex-preview-clear-cache` |
+| `org-latex-preview-rebuild` | :orange_circle: | `org-latex-preview-rebuild` |
+| `org-latex-preview-preamble` | :orange_circle: | `org-latex-preview-preamble` |
+
+### Round 797: Codeium ext 2 / Tabnine
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `codeium-reject-completion` | :orange_circle: | `codeium-reject-completion` |
+| `codeium-toggle` | :orange_circle: | `codeium-toggle` |
+| `codeium-chat` | :orange_circle: | `codeium-chat` |
+| `codeium-explain` | :orange_circle: | `codeium-explain` |
+| `codeium-generate` | :orange_circle: | `codeium-generate` |
+| `tabnine-complete` | :orange_circle: | `tabnine-complete` |
+| `tabnine-accept-completion` | :orange_circle: | `tabnine-accept` |
+| `tabnine-next-completion` | :orange_circle: | `tabnine-next` |
+| `tabnine-previous-completion` | :orange_circle: | `tabnine-previous` |
+| `tabnine-chat` | :orange_circle: | `tabnine-chat` |
+
+### Round 798: Aider / Claude-shell
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `aider-run-aider` | :orange_circle: | `aider-run` |
+| `aider-send-line` | :orange_circle: | `aider-send-line` |
+| `aider-send-region` | :orange_circle: | `aider-send-region` |
+| `aider-architect-mode` | :orange_circle: | `aider-architect-mode` |
+| `aider-drop-file` | :orange_circle: | `aider-drop-file` |
+| `claude-shell-send-input` | :orange_circle: | `claude-shell-send` |
+| `claude-shell-clear` | :orange_circle: | `claude-shell-clear` |
+| `claude-shell-rename-buffer` | :orange_circle: | `claude-shell-rename` |
+| `claude-shell-abort` | :orange_circle: | `claude-shell-abort` |
+| `claude-shell-toggle` | :orange_circle: | `claude-shell-toggle` |
+
+### Round 799: Whisper / Speechd
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `whisper-run` | :orange_circle: | `whisper-run` |
+| `whisper-transcribe-buffer` | :orange_circle: | `whisper-transcribe-buffer` |
+| `whisper-select-model` | :orange_circle: | `whisper-select-model` |
+| `whisper-insert-transcription` | :orange_circle: | `whisper-insert-transcription` |
+| `whisper-abort` | :orange_circle: | `whisper-abort` |
+| `speechd-say-text` | :orange_circle: | `speechd-say` |
+| `speechd-cancel` | :orange_circle: | `speechd-cancel` |
+| `speechd-pause` | :orange_circle: | `speechd-pause` |
+| `speechd-resume` | :orange_circle: | `speechd-resume` |
+| `speechd-set-rate` | :orange_circle: | `speechd-set-rate` |
+
+### Round 800: Transient ext 2 / Hydra ext 2
+
+| Emacs Feature | Status | jemacs Command |
+|---|---|---|
+| `transient-show-help` | :orange_circle: | `transient-show-help` |
+| `transient-show-common-commands` | :orange_circle: | `transient-show-common` |
+| `transient-toggle-debug` | :orange_circle: | `transient-toggle-debug` |
+| `transient-toggle-level-limit` | :orange_circle: | `transient-toggle-level-limits` |
+| `transient-insert-suffix` | :orange_circle: | `transient-insert-suffix` |
+| `hydra-toggle-body-visibility` | :orange_circle: | `hydra-toggle-body` |
+| `hydra-keyboard-escape` | :orange_circle: | `hydra-keyboard-escape` |
+| `hydra-repeat` | :orange_circle: | `hydra-repeat` |
+| `hydra-set-property` | :orange_circle: | `hydra-set-property` |
+| `hydra-idle-message` | :orange_circle: | `hydra-idle-message` |
 ### 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 24ca330..175f01e 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -35393,3 +35393,123 @@
 (def (cmd-wallabag-starred-entries app) (let* ((echo (app-state-echo app))) (echo-message! echo "Wallabag: starred entries")))
 (def (cmd-wallabag-archived-entries app) (let* ((echo (app-state-echo app))) (echo-message! echo "Wallabag: archived entries")))
 (def (cmd-wallabag-export-entry app) (let* ((echo (app-state-echo app))) (echo-message! echo "Wallabag: export entry")))
+
+;; Round 782: Restclient ext 2 / Hurl
+(def (cmd-restclient-info-show app) (let* ((echo (app-state-echo app))) (echo-message! echo "Restclient: info show")))
+(def (cmd-restclient-jump-to-prev app) (let* ((echo (app-state-echo app))) (echo-message! echo "Restclient: jump to prev")))
+(def (cmd-restclient-jump-to-next app) (let* ((echo (app-state-echo app))) (echo-message! echo "Restclient: jump to next")))
+(def (cmd-restclient-outline-show app) (let* ((echo (app-state-echo app))) (echo-message! echo "Restclient: outline show")))
+(def (cmd-restclient-format-json app) (let* ((echo (app-state-echo app))) (echo-message! echo "Restclient: format JSON")))
+(def (cmd-hurl-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Hurl: mode")))
+(def (cmd-hurl-send-request app) (let* ((echo (app-state-echo app))) (echo-message! echo "Hurl: send request")))
+(def (cmd-hurl-send-all app) (let* ((echo (app-state-echo app))) (echo-message! echo "Hurl: send all")))
+(def (cmd-hurl-show-report app) (let* ((echo (app-state-echo app))) (echo-message! echo "Hurl: show report")))
+(def (cmd-hurl-format-buffer app) (let* ((echo (app-state-echo app))) (echo-message! echo "Hurl: format buffer")))
+
+;; Round 784: Speed-type ext 2 / Typing
+(def (cmd-speed-type-text app) (let* ((echo (app-state-echo app))) (echo-message! echo "Speed-type: text")))
+(def (cmd-speed-type-top-x app) (let* ((echo (app-state-echo app))) (echo-message! echo "Speed-type: top X")))
+(def (cmd-speed-type-top-x-advanced app) (let* ((echo (app-state-echo app))) (echo-message! echo "Speed-type: top X advanced")))
+(def (cmd-typing-of-emacs app) (let* ((echo (app-state-echo app))) (echo-message! echo "Typing-of-Emacs: start")))
+(def (cmd-typing-practice-start app) (let* ((echo (app-state-echo app))) (echo-message! echo "Typing: practice start")))
+(def (cmd-typing-game-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Typing: game mode")))
+(def (cmd-typing-stats-display app) (let* ((echo (app-state-echo app))) (echo-message! echo "Typing: stats display")))
+(def (cmd-typing-leaderboard app) (let* ((echo (app-state-echo app))) (echo-message! echo "Typing: leaderboard")))
+(def (cmd-speed-type-code-block app) (let* ((echo (app-state-echo app))) (echo-message! echo "Speed-type: code block")))
+(def (cmd-speed-type-custom-text app) (let* ((echo (app-state-echo app))) (echo-message! echo "Speed-type: custom text")))
+
+;; Round 786: Objed / Targets (text object selection)
+(def (cmd-objed-activate app) (let* ((echo (app-state-echo app))) (echo-message! echo "Objed: activate")))
+(def (cmd-objed-activate-object app) (let* ((echo (app-state-echo app))) (echo-message! echo "Objed: activate object")))
+(def (cmd-objed-expand-context app) (let* ((echo (app-state-echo app))) (echo-message! echo "Objed: expand context")))
+(def (cmd-objed-toggle-side app) (let* ((echo (app-state-echo app))) (echo-message! echo "Objed: toggle side")))
+(def (cmd-objed-current-or-next app) (let* ((echo (app-state-echo app))) (echo-message! echo "Objed: current or next")))
+(def (cmd-targets-text-object app) (let* ((echo (app-state-echo app))) (echo-message! echo "Targets: text object")))
+(def (cmd-targets-pair app) (let* ((echo (app-state-echo app))) (echo-message! echo "Targets: pair")))
+(def (cmd-targets-quote app) (let* ((echo (app-state-echo app))) (echo-message! echo "Targets: quote")))
+(def (cmd-targets-separator app) (let* ((echo (app-state-echo app))) (echo-message! echo "Targets: separator")))
+(def (cmd-targets-last-text-object app) (let* ((echo (app-state-echo app))) (echo-message! echo "Targets: last text object")))
+
+;; Round 788: Lispy ext 2 / Paredit ext 2
+(def (cmd-lispy-move-up app) (let* ((echo (app-state-echo app))) (echo-message! echo "Lispy: move up")))
+(def (cmd-lispy-move-down app) (let* ((echo (app-state-echo app))) (echo-message! echo "Lispy: move down")))
+(def (cmd-lispy-outline app) (let* ((echo (app-state-echo app))) (echo-message! echo "Lispy: outline")))
+(def (cmd-lispy-clone app) (let* ((echo (app-state-echo app))) (echo-message! echo "Lispy: clone")))
+(def (cmd-lispy-oneline app) (let* ((echo (app-state-echo app))) (echo-message! echo "Lispy: oneline")))
+(def (cmd-paredit-convolute app) (let* ((echo (app-state-echo app))) (echo-message! echo "Paredit: convolute sexp")))
+(def (cmd-paredit-join-with-next app) (let* ((echo (app-state-echo app))) (echo-message! echo "Paredit: join with next")))
+(def (cmd-paredit-join-with-previous app) (let* ((echo (app-state-echo app))) (echo-message! echo "Paredit: join with previous")))
+(def (cmd-paredit-meta-doublequote-and-newline app) (let* ((echo (app-state-echo app))) (echo-message! echo "Paredit: meta doublequote and newline")))
+(def (cmd-paredit-reindent-defun app) (let* ((echo (app-state-echo app))) (echo-message! echo "Paredit: reindent defun")))
+
+;; Round 790: Combobulate ext 3 / Dogears ext 2
+(def (cmd-combobulate-cursor-open app) (let* ((echo (app-state-echo app))) (echo-message! echo "Combobulate: cursor open")))
+(def (cmd-combobulate-cursor-close app) (let* ((echo (app-state-echo app))) (echo-message! echo "Combobulate: cursor close")))
+(def (cmd-combobulate-highlight-dwim app) (let* ((echo (app-state-echo app))) (echo-message! echo "Combobulate: highlight dwim")))
+(def (cmd-combobulate-query-builder app) (let* ((echo (app-state-echo app))) (echo-message! echo "Combobulate: query builder")))
+(def (cmd-combobulate-highlight-query app) (let* ((echo (app-state-echo app))) (echo-message! echo "Combobulate: highlight query")))
+(def (cmd-dogears-list app) (let* ((echo (app-state-echo app))) (echo-message! echo "Dogears: list")))
+(def (cmd-dogears-sidebar app) (let* ((echo (app-state-echo app))) (echo-message! echo "Dogears: sidebar")))
+(def (cmd-dogears-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Dogears: mode")))
+(def (cmd-dogears-follow app) (let* ((echo (app-state-echo app))) (echo-message! echo "Dogears: follow")))
+(def (cmd-dogears-search app) (let* ((echo (app-state-echo app))) (echo-message! echo "Dogears: search")))
+
+;; Round 792: Detached ext 2 / Inheritenv ext 2
+(def (cmd-detached-delete-sessions app) (let* ((echo (app-state-echo app))) (echo-message! echo "Detached: delete sessions")))
+(def (cmd-detached-tail-session app) (let* ((echo (app-state-echo app))) (echo-message! echo "Detached: tail session")))
+(def (cmd-detached-session-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Detached: session mode")))
+(def (cmd-detached-shell-override app) (let* ((echo (app-state-echo app))) (echo-message! echo "Detached: shell override")))
+(def (cmd-detached-shell-send-input app) (let* ((echo (app-state-echo app))) (echo-message! echo "Detached: shell send input")))
+(def (cmd-inheritenv-add-advice app) (let* ((echo (app-state-echo app))) (echo-message! echo "Inheritenv: add advice")))
+(def (cmd-inheritenv-remove-advice app) (let* ((echo (app-state-echo app))) (echo-message! echo "Inheritenv: remove advice")))
+(def (cmd-inheritenv-edit-vars app) (let* ((echo (app-state-echo app))) (echo-message! echo "Inheritenv: edit vars")))
+(def (cmd-inheritenv-show app) (let* ((echo (app-state-echo app))) (echo-message! echo "Inheritenv: show")))
+(def (cmd-inheritenv-save app) (let* ((echo (app-state-echo app))) (echo-message! echo "Inheritenv: save")))
+
+;; Round 794: Org-download ext 2 / Org-web-tools
+(def (cmd-org-download-rename-last app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-download: rename last")))
+(def (cmd-org-download-method-set app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-download: set method")))
+(def (cmd-org-download-annotate app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-download: annotate")))
+(def (cmd-org-download-image-html app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-download: image HTML")))
+(def (cmd-org-download-rename-at-point-with-time app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-download: rename at point with time")))
+(def (cmd-org-web-tools-insert-link-for-url app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-web-tools: insert link for URL")))
+(def (cmd-org-web-tools-read-url-as-org app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-web-tools: read URL as org")))
+(def (cmd-org-web-tools-convert-links-to-page-entries app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-web-tools: convert links to page entries")))
+(def (cmd-org-web-tools-archive-view app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-web-tools: archive view")))
+(def (cmd-org-web-tools-archive-attach app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-web-tools: archive attach")))
+
+;; Round 796: Org-fragtog ext 2 / Org-latex-preview
+(def (cmd-org-fragtog-toggle app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-fragtog: toggle")))
+(def (cmd-org-fragtog-preview-all app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-fragtog: preview all")))
+(def (cmd-org-fragtog-clear-all app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-fragtog: clear all")))
+(def (cmd-org-fragtog-update app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-fragtog: update")))
+(def (cmd-org-fragtog-preview-region app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-fragtog: preview region")))
+(def (cmd-org-latex-preview-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-latex-preview: mode")))
+(def (cmd-org-latex-preview-region app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-latex-preview: region")))
+(def (cmd-org-latex-preview-clear-cache app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-latex-preview: clear cache")))
+(def (cmd-org-latex-preview-rebuild app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-latex-preview: rebuild")))
+(def (cmd-org-latex-preview-preamble app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-latex-preview: preamble")))
+
+;; Round 798: Aider / Claude-shell
+(def (cmd-aider-run app) (let* ((echo (app-state-echo app))) (echo-message! echo "Aider: run")))
+(def (cmd-aider-send-line app) (let* ((echo (app-state-echo app))) (echo-message! echo "Aider: send line")))
+(def (cmd-aider-send-region app) (let* ((echo (app-state-echo app))) (echo-message! echo "Aider: send region")))
+(def (cmd-aider-architect-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Aider: architect mode")))
+(def (cmd-aider-drop-file app) (let* ((echo (app-state-echo app))) (echo-message! echo "Aider: drop file")))
+(def (cmd-claude-shell-send app) (let* ((echo (app-state-echo app))) (echo-message! echo "Claude-shell: send")))
+(def (cmd-claude-shell-clear app) (let* ((echo (app-state-echo app))) (echo-message! echo "Claude-shell: clear")))
+(def (cmd-claude-shell-rename app) (let* ((echo (app-state-echo app))) (echo-message! echo "Claude-shell: rename")))
+(def (cmd-claude-shell-abort app) (let* ((echo (app-state-echo app))) (echo-message! echo "Claude-shell: abort")))
+(def (cmd-claude-shell-toggle app) (let* ((echo (app-state-echo app))) (echo-message! echo "Claude-shell: toggle")))
+
+;; Round 800: Transient ext 2 / Hydra ext 2
+(def (cmd-transient-show-help app) (let* ((echo (app-state-echo app))) (echo-message! echo "Transient: show help")))
+(def (cmd-transient-show-common app) (let* ((echo (app-state-echo app))) (echo-message! echo "Transient: show common")))
+(def (cmd-transient-toggle-debug app) (let* ((echo (app-state-echo app))) (echo-message! echo "Transient: toggle debug")))
+(def (cmd-transient-toggle-level-limits app) (let* ((echo (app-state-echo app))) (echo-message! echo "Transient: toggle level limits")))
+(def (cmd-transient-insert-suffix app) (let* ((echo (app-state-echo app))) (echo-message! echo "Transient: insert suffix")))
+(def (cmd-hydra-toggle-body app) (let* ((echo (app-state-echo app))) (echo-message! echo "Hydra: toggle body")))
+(def (cmd-hydra-keyboard-escape app) (let* ((echo (app-state-echo app))) (echo-message! echo "Hydra: keyboard escape")))
+(def (cmd-hydra-repeat app) (let* ((echo (app-state-echo app))) (echo-message! echo "Hydra: repeat")))
+(def (cmd-hydra-set-property app) (let* ((echo (app-state-echo app))) (echo-message! echo "Hydra: set property")))
+(def (cmd-hydra-idle-message app) (let* ((echo (app-state-echo app))) (echo-message! echo "Hydra: idle message")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 9eb4b80..86355e5 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -34617,3 +34617,123 @@
 (def (cmd-calibredb-show-metadata app) (let* ((echo (app-state-echo app))) (echo-message! echo "Calibredb: show metadata")))
 (def (cmd-calibredb-edit-annotation app) (let* ((echo (app-state-echo app))) (echo-message! echo "Calibredb: edit annotation")))
 (def (cmd-calibredb-open-with-default app) (let* ((echo (app-state-echo app))) (echo-message! echo "Calibredb: open with default")))
+
+;; Round 781: Plz ext 2 / Verb ext 2
+(def (cmd-plz-get-sync app) (let* ((echo (app-state-echo app))) (echo-message! echo "Plz: GET sync")))
+(def (cmd-plz-post-json app) (let* ((echo (app-state-echo app))) (echo-message! echo "Plz: POST JSON")))
+(def (cmd-plz-media-type app) (let* ((echo (app-state-echo app))) (echo-message! echo "Plz: media type")))
+(def (cmd-plz-request-abort app) (let* ((echo (app-state-echo app))) (echo-message! echo "Plz: request abort")))
+(def (cmd-plz-request-body-from-file app) (let* ((echo (app-state-echo app))) (echo-message! echo "Plz: request body from file")))
+(def (cmd-verb-send-request app) (let* ((echo (app-state-echo app))) (echo-message! echo "Verb: send request")))
+(def (cmd-verb-export-request app) (let* ((echo (app-state-echo app))) (echo-message! echo "Verb: export request")))
+(def (cmd-verb-kill-response app) (let* ((echo (app-state-echo app))) (echo-message! echo "Verb: kill response")))
+(def (cmd-verb-show-headers app) (let* ((echo (app-state-echo app))) (echo-message! echo "Verb: show headers")))
+(def (cmd-verb-headers-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Verb: headers mode")))
+
+;; Round 783: Osm (OpenStreetMap)
+(def (cmd-osm-goto app) (let* ((echo (app-state-echo app))) (echo-message! echo "Osm: goto coordinates")))
+(def (cmd-osm-search app) (let* ((echo (app-state-echo app))) (echo-message! echo "Osm: search")))
+(def (cmd-osm-gpx-show app) (let* ((echo (app-state-echo app))) (echo-message! echo "Osm: show GPX")))
+(def (cmd-osm-bookmark-set app) (let* ((echo (app-state-echo app))) (echo-message! echo "Osm: bookmark set")))
+(def (cmd-osm-bookmark-jump app) (let* ((echo (app-state-echo app))) (echo-message! echo "Osm: bookmark jump")))
+(def (cmd-osm-zoom-in app) (let* ((echo (app-state-echo app))) (echo-message! echo "Osm: zoom in")))
+(def (cmd-osm-zoom-out app) (let* ((echo (app-state-echo app))) (echo-message! echo "Osm: zoom out")))
+(def (cmd-osm-center app) (let* ((echo (app-state-echo app))) (echo-message! echo "Osm: center")))
+(def (cmd-osm-home app) (let* ((echo (app-state-echo app))) (echo-message! echo "Osm: home")))
+(def (cmd-osm-server-select app) (let* ((echo (app-state-echo app))) (echo-message! echo "Osm: server select")))
+
+;; Round 785: Keyfreq ext 2 / Command-log ext 2
+(def (cmd-keyfreq-reset app) (let* ((echo (app-state-echo app))) (echo-message! echo "Keyfreq: reset")))
+(def (cmd-keyfreq-autosave-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Keyfreq: autosave mode")))
+(def (cmd-keyfreq-html app) (let* ((echo (app-state-echo app))) (echo-message! echo "Keyfreq: export HTML")))
+(def (cmd-keyfreq-table app) (let* ((echo (app-state-echo app))) (echo-message! echo "Keyfreq: table")))
+(def (cmd-keyfreq-file-save app) (let* ((echo (app-state-echo app))) (echo-message! echo "Keyfreq: file save")))
+(def (cmd-command-log-open app) (let* ((echo (app-state-echo app))) (echo-message! echo "Command-log: open")))
+(def (cmd-command-log-save app) (let* ((echo (app-state-echo app))) (echo-message! echo "Command-log: save")))
+(def (cmd-command-log-clear app) (let* ((echo (app-state-echo app))) (echo-message! echo "Command-log: clear")))
+(def (cmd-command-log-close app) (let* ((echo (app-state-echo app))) (echo-message! echo "Command-log: close")))
+(def (cmd-command-log-toggle-logging app) (let* ((echo (app-state-echo app))) (echo-message! echo "Command-log: toggle logging")))
+
+;; Round 787: Symex (structural Lisp editing)
+(def (cmd-symex-go-up app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symex: go up")))
+(def (cmd-symex-go-down app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symex: go down")))
+(def (cmd-symex-go-forward app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symex: go forward")))
+(def (cmd-symex-go-backward app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symex: go backward")))
+(def (cmd-symex-traverse-forward app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symex: traverse forward")))
+(def (cmd-symex-traverse-backward app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symex: traverse backward")))
+(def (cmd-symex-soar-forward app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symex: soar forward")))
+(def (cmd-symex-soar-backward app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symex: soar backward")))
+(def (cmd-symex-wrap app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symex: wrap")))
+(def (cmd-symex-yank-after app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symex: yank after")))
+
+;; Round 789: Tree-edit / Evil-textobj-tree-sitter
+(def (cmd-tree-edit-insert-sibling app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tree-edit: insert sibling")))
+(def (cmd-tree-edit-delete app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tree-edit: delete")))
+(def (cmd-tree-edit-raise app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tree-edit: raise")))
+(def (cmd-tree-edit-wrap app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tree-edit: wrap")))
+(def (cmd-tree-edit-goto-parent app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tree-edit: goto parent")))
+(def (cmd-evil-textobj-tree-sitter-select app) (let* ((echo (app-state-echo app))) (echo-message! echo "Evil-textobj: tree-sitter select")))
+(def (cmd-evil-textobj-tree-sitter-smart app) (let* ((echo (app-state-echo app))) (echo-message! echo "Evil-textobj: tree-sitter smart")))
+(def (cmd-evil-textobj-tree-sitter-swap-next app) (let* ((echo (app-state-echo app))) (echo-message! echo "Evil-textobj: tree-sitter swap next")))
+(def (cmd-evil-textobj-tree-sitter-swap-prev app) (let* ((echo (app-state-echo app))) (echo-message! echo "Evil-textobj: tree-sitter swap prev")))
+(def (cmd-evil-textobj-tree-sitter-function app) (let* ((echo (app-state-echo app))) (echo-message! echo "Evil-textobj: tree-sitter function")))
+
+;; Round 791: Eat ext 3 / Coterm ext 2
+(def (cmd-eat-project-other-window app) (let* ((echo (app-state-echo app))) (echo-message! echo "Eat: project other window")))
+(def (cmd-eat-semi-char-toggle app) (let* ((echo (app-state-echo app))) (echo-message! echo "Eat: semi char toggle")))
+(def (cmd-eat-input-line-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Eat: input line mode")))
+(def (cmd-eat-term-char-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Eat: term char mode")))
+(def (cmd-eat-trace-save app) (let* ((echo (app-state-echo app))) (echo-message! echo "Eat: trace save")))
+(def (cmd-coterm-char-mode-passthrough app) (let* ((echo (app-state-echo app))) (echo-message! echo "Coterm: char mode passthrough")))
+(def (cmd-coterm-scroll-snap app) (let* ((echo (app-state-echo app))) (echo-message! echo "Coterm: scroll snap")))
+(def (cmd-coterm-auto-char-lighter app) (let* ((echo (app-state-echo app))) (echo-message! echo "Coterm: auto char lighter")))
+(def (cmd-coterm-filter-functions app) (let* ((echo (app-state-echo app))) (echo-message! echo "Coterm: filter functions")))
+(def (cmd-coterm-terminal-columns app) (let* ((echo (app-state-echo app))) (echo-message! echo "Coterm: terminal columns")))
+
+;; Round 793: Org-super-links / Org-noter ext 2
+(def (cmd-org-super-links-store-link app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-super-links: store link")))
+(def (cmd-org-super-links-insert-link app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-super-links: insert link")))
+(def (cmd-org-super-links-quick-insert app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-super-links: quick insert")))
+(def (cmd-org-super-links-delete-link app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-super-links: delete link")))
+(def (cmd-org-super-links-convert-link-to-super app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-super-links: convert to super")))
+(def (cmd-org-noter-insert-precise-note app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-noter: insert precise note")))
+(def (cmd-org-noter-toggle-notes-sidebar app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-noter: toggle notes sidebar")))
+(def (cmd-org-noter-set-start-page app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-noter: set start page")))
+(def (cmd-org-noter-toggle-notes-window app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-noter: toggle notes window")))
+(def (cmd-org-noter-create-multi-file app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-noter: create multi-file")))
+
+;; Round 795: Org-appear ext 2 / Org-modern ext 2
+(def (cmd-org-appear-toggle app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-appear: toggle")))
+(def (cmd-org-appear-manual app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-appear: manual")))
+(def (cmd-org-appear-inside-latex app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-appear: inside latex")))
+(def (cmd-org-appear-autolinks app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-appear: autolinks")))
+(def (cmd-org-appear-autosubmarkers app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-appear: autosubmarkers")))
+(def (cmd-org-modern-indent-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-modern: indent mode")))
+(def (cmd-org-modern-tag-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-modern: tag mode")))
+(def (cmd-org-modern-table app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-modern: table")))
+(def (cmd-org-modern-block app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-modern: block")))
+(def (cmd-org-modern-keyword app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org-modern: keyword")))
+
+;; Round 797: Codeium ext 2 / Tabnine
+(def (cmd-codeium-reject-completion app) (let* ((echo (app-state-echo app))) (echo-message! echo "Codeium: reject completion")))
+(def (cmd-codeium-toggle app) (let* ((echo (app-state-echo app))) (echo-message! echo "Codeium: toggle")))
+(def (cmd-codeium-chat app) (let* ((echo (app-state-echo app))) (echo-message! echo "Codeium: chat")))
+(def (cmd-codeium-explain app) (let* ((echo (app-state-echo app))) (echo-message! echo "Codeium: explain")))
+(def (cmd-codeium-generate app) (let* ((echo (app-state-echo app))) (echo-message! echo "Codeium: generate")))
+(def (cmd-tabnine-complete app) (let* ((echo (app-state-echo app))) (echo-message! echo "TabNine: complete")))
+(def (cmd-tabnine-accept app) (let* ((echo (app-state-echo app))) (echo-message! echo "TabNine: accept")))
+(def (cmd-tabnine-next app) (let* ((echo (app-state-echo app))) (echo-message! echo "TabNine: next")))
+(def (cmd-tabnine-previous app) (let* ((echo (app-state-echo app))) (echo-message! echo "TabNine: previous")))
+(def (cmd-tabnine-chat app) (let* ((echo (app-state-echo app))) (echo-message! echo "TabNine: chat")))
+
+;; Round 799: Whisper / Speechd
+(def (cmd-whisper-run app) (let* ((echo (app-state-echo app))) (echo-message! echo "Whisper: run")))
+(def (cmd-whisper-transcribe-buffer app) (let* ((echo (app-state-echo app))) (echo-message! echo "Whisper: transcribe buffer")))
+(def (cmd-whisper-select-model app) (let* ((echo (app-state-echo app))) (echo-message! echo "Whisper: select model")))
+(def (cmd-whisper-insert-transcription app) (let* ((echo (app-state-echo app))) (echo-message! echo "Whisper: insert transcription")))
+(def (cmd-whisper-abort app) (let* ((echo (app-state-echo app))) (echo-message! echo "Whisper: abort")))
+(def (cmd-speechd-say app) (let* ((echo (app-state-echo app))) (echo-message! echo "Speechd: say")))
+(def (cmd-speechd-cancel app) (let* ((echo (app-state-echo app))) (echo-message! echo "Speechd: cancel")))
+(def (cmd-speechd-pause app) (let* ((echo (app-state-echo app))) (echo-message! echo "Speechd: pause")))
+(def (cmd-speechd-resume app) (let* ((echo (app-state-echo app))) (echo-message! echo "Speechd: resume")))
+(def (cmd-speechd-set-rate app) (let* ((echo (app-state-echo app))) (echo-message! echo "Speechd: set rate")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 7beda5c..c024d14 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -13545,4 +13545,66 @@
   ;; Round 780: Pocket-Reader / Wallabag
   (register-command! 'pocket-reader-refresh cmd-pocket-reader-refresh) (register-command! 'pocket-reader-add-url cmd-pocket-reader-add-url) (register-command! 'pocket-reader-tag cmd-pocket-reader-tag) (register-command! 'pocket-reader-readd cmd-pocket-reader-readd) (register-command! 'pocket-reader-browse-url cmd-pocket-reader-browse-url)
   (register-command! 'wallabag-tag-entry cmd-wallabag-tag-entry) (register-command! 'wallabag-full-update cmd-wallabag-full-update) (register-command! 'wallabag-starred-entries cmd-wallabag-starred-entries) (register-command! 'wallabag-archived-entries cmd-wallabag-archived-entries) (register-command! 'wallabag-export-entry cmd-wallabag-export-entry)
+
+  ;; Round 781: Plz ext 2 / Verb ext 2
+  (register-command! 'plz-get-sync cmd-plz-get-sync) (register-command! 'plz-post-json cmd-plz-post-json) (register-command! 'plz-media-type cmd-plz-media-type) (register-command! 'plz-request-abort cmd-plz-request-abort) (register-command! 'plz-request-body-from-file cmd-plz-request-body-from-file)
+  (register-command! 'verb-send-request cmd-verb-send-request) (register-command! 'verb-export-request cmd-verb-export-request) (register-command! 'verb-kill-response cmd-verb-kill-response) (register-command! 'verb-show-headers cmd-verb-show-headers) (register-command! 'verb-headers-mode cmd-verb-headers-mode)
+  ;; Round 782: Restclient ext 2 / Hurl
+  (register-command! 'restclient-info-show cmd-restclient-info-show) (register-command! 'restclient-jump-to-prev cmd-restclient-jump-to-prev) (register-command! 'restclient-jump-to-next cmd-restclient-jump-to-next) (register-command! 'restclient-outline-show cmd-restclient-outline-show) (register-command! 'restclient-format-json cmd-restclient-format-json)
+  (register-command! 'hurl-mode cmd-hurl-mode) (register-command! 'hurl-send-request cmd-hurl-send-request) (register-command! 'hurl-send-all cmd-hurl-send-all) (register-command! 'hurl-show-report cmd-hurl-show-report) (register-command! 'hurl-format-buffer cmd-hurl-format-buffer)
+  ;; Round 783: Osm (OpenStreetMap)
+  (register-command! 'osm-goto cmd-osm-goto) (register-command! 'osm-search cmd-osm-search) (register-command! 'osm-gpx-show cmd-osm-gpx-show) (register-command! 'osm-bookmark-set cmd-osm-bookmark-set) (register-command! 'osm-bookmark-jump cmd-osm-bookmark-jump)
+  (register-command! 'osm-zoom-in cmd-osm-zoom-in) (register-command! 'osm-zoom-out cmd-osm-zoom-out) (register-command! 'osm-center cmd-osm-center) (register-command! 'osm-home cmd-osm-home) (register-command! 'osm-server-select cmd-osm-server-select)
+  ;; Round 784: Speed-type ext 2 / Typing
+  (register-command! 'speed-type-text cmd-speed-type-text) (register-command! 'speed-type-top-x cmd-speed-type-top-x) (register-command! 'speed-type-top-x-advanced cmd-speed-type-top-x-advanced) (register-command! 'typing-of-emacs cmd-typing-of-emacs) (register-command! 'typing-practice-start cmd-typing-practice-start)
+  (register-command! 'typing-game-mode cmd-typing-game-mode) (register-command! 'typing-stats-display cmd-typing-stats-display) (register-command! 'typing-leaderboard cmd-typing-leaderboard) (register-command! 'speed-type-code-block cmd-speed-type-code-block) (register-command! 'speed-type-custom-text cmd-speed-type-custom-text)
+  ;; Round 785: Keyfreq ext 2 / Command-log ext 2
+  (register-command! 'keyfreq-reset cmd-keyfreq-reset) (register-command! 'keyfreq-autosave-mode cmd-keyfreq-autosave-mode) (register-command! 'keyfreq-html cmd-keyfreq-html) (register-command! 'keyfreq-table cmd-keyfreq-table) (register-command! 'keyfreq-file-save cmd-keyfreq-file-save)
+  (register-command! 'command-log-open cmd-command-log-open) (register-command! 'command-log-save cmd-command-log-save) (register-command! 'command-log-clear cmd-command-log-clear) (register-command! 'command-log-close cmd-command-log-close) (register-command! 'command-log-toggle-logging cmd-command-log-toggle-logging)
+  ;; Round 786: Objed / Targets
+  (register-command! 'objed-activate cmd-objed-activate) (register-command! 'objed-activate-object cmd-objed-activate-object) (register-command! 'objed-expand-context cmd-objed-expand-context) (register-command! 'objed-toggle-side cmd-objed-toggle-side) (register-command! 'objed-current-or-next cmd-objed-current-or-next)
+  (register-command! 'targets-text-object cmd-targets-text-object) (register-command! 'targets-pair cmd-targets-pair) (register-command! 'targets-quote cmd-targets-quote) (register-command! 'targets-separator cmd-targets-separator) (register-command! 'targets-last-text-object cmd-targets-last-text-object)
+  ;; Round 787: Symex
+  (register-command! 'symex-go-up cmd-symex-go-up) (register-command! 'symex-go-down cmd-symex-go-down) (register-command! 'symex-go-forward cmd-symex-go-forward) (register-command! 'symex-go-backward cmd-symex-go-backward) (register-command! 'symex-traverse-forward cmd-symex-traverse-forward)
+  (register-command! 'symex-traverse-backward cmd-symex-traverse-backward) (register-command! 'symex-soar-forward cmd-symex-soar-forward) (register-command! 'symex-soar-backward cmd-symex-soar-backward) (register-command! 'symex-wrap cmd-symex-wrap) (register-command! 'symex-yank-after cmd-symex-yank-after)
+  ;; Round 788: Lispy ext 2 / Paredit ext 2
+  (register-command! 'lispy-move-up cmd-lispy-move-up) (register-command! 'lispy-move-down cmd-lispy-move-down) (register-command! 'lispy-outline cmd-lispy-outline) (register-command! 'lispy-clone cmd-lispy-clone) (register-command! 'lispy-oneline cmd-lispy-oneline)
+  (register-command! 'paredit-convolute cmd-paredit-convolute) (register-command! 'paredit-join-with-next cmd-paredit-join-with-next) (register-command! 'paredit-join-with-previous cmd-paredit-join-with-previous) (register-command! 'paredit-meta-doublequote-and-newline cmd-paredit-meta-doublequote-and-newline) (register-command! 'paredit-reindent-defun cmd-paredit-reindent-defun)
+  ;; Round 789: Tree-edit / Evil-textobj-tree-sitter
+  (register-command! 'tree-edit-insert-sibling cmd-tree-edit-insert-sibling) (register-command! 'tree-edit-delete cmd-tree-edit-delete) (register-command! 'tree-edit-raise cmd-tree-edit-raise) (register-command! 'tree-edit-wrap cmd-tree-edit-wrap) (register-command! 'tree-edit-goto-parent cmd-tree-edit-goto-parent)
+  (register-command! 'evil-textobj-tree-sitter-select cmd-evil-textobj-tree-sitter-select) (register-command! 'evil-textobj-tree-sitter-smart cmd-evil-textobj-tree-sitter-smart) (register-command! 'evil-textobj-tree-sitter-swap-next cmd-evil-textobj-tree-sitter-swap-next) (register-command! 'evil-textobj-tree-sitter-swap-prev cmd-evil-textobj-tree-sitter-swap-prev) (register-command! 'evil-textobj-tree-sitter-function cmd-evil-textobj-tree-sitter-function)
+  ;; Round 790: Combobulate ext 3 / Dogears ext 2
+  (register-command! 'combobulate-cursor-open cmd-combobulate-cursor-open) (register-command! 'combobulate-cursor-close cmd-combobulate-cursor-close) (register-command! 'combobulate-highlight-dwim cmd-combobulate-highlight-dwim) (register-command! 'combobulate-query-builder cmd-combobulate-query-builder) (register-command! 'combobulate-highlight-query cmd-combobulate-highlight-query)
+  (register-command! 'dogears-list cmd-dogears-list) (register-command! 'dogears-sidebar cmd-dogears-sidebar) (register-command! 'dogears-mode cmd-dogears-mode) (register-command! 'dogears-follow cmd-dogears-follow) (register-command! 'dogears-search cmd-dogears-search)
+
+  ;; Round 791: Eat ext 3 / Coterm ext 2
+  (register-command! 'eat-project-other-window cmd-eat-project-other-window) (register-command! 'eat-semi-char-toggle cmd-eat-semi-char-toggle) (register-command! 'eat-input-line-mode cmd-eat-input-line-mode) (register-command! 'eat-term-char-mode cmd-eat-term-char-mode) (register-command! 'eat-trace-save cmd-eat-trace-save)
+  (register-command! 'coterm-char-mode-passthrough cmd-coterm-char-mode-passthrough) (register-command! 'coterm-scroll-snap cmd-coterm-scroll-snap) (register-command! 'coterm-auto-char-lighter cmd-coterm-auto-char-lighter) (register-command! 'coterm-filter-functions cmd-coterm-filter-functions) (register-command! 'coterm-terminal-columns cmd-coterm-terminal-columns)
+  ;; Round 792: Detached ext 2 / Inheritenv ext 2
+  (register-command! 'detached-delete-sessions cmd-detached-delete-sessions) (register-command! 'detached-tail-session cmd-detached-tail-session) (register-command! 'detached-session-mode cmd-detached-session-mode) (register-command! 'detached-shell-override cmd-detached-shell-override) (register-command! 'detached-shell-send-input cmd-detached-shell-send-input)
+  (register-command! 'inheritenv-add-advice cmd-inheritenv-add-advice) (register-command! 'inheritenv-remove-advice cmd-inheritenv-remove-advice) (register-command! 'inheritenv-edit-vars cmd-inheritenv-edit-vars) (register-command! 'inheritenv-show cmd-inheritenv-show) (register-command! 'inheritenv-save cmd-inheritenv-save)
+  ;; Round 793: Org-super-links / Org-noter ext 2
+  (register-command! 'org-super-links-store-link cmd-org-super-links-store-link) (register-command! 'org-super-links-insert-link cmd-org-super-links-insert-link) (register-command! 'org-super-links-quick-insert cmd-org-super-links-quick-insert) (register-command! 'org-super-links-delete-link cmd-org-super-links-delete-link) (register-command! 'org-super-links-convert-link-to-super cmd-org-super-links-convert-link-to-super)
+  (register-command! 'org-noter-insert-precise-note cmd-org-noter-insert-precise-note) (register-command! 'org-noter-toggle-notes-sidebar cmd-org-noter-toggle-notes-sidebar) (register-command! 'org-noter-set-start-page cmd-org-noter-set-start-page) (register-command! 'org-noter-toggle-notes-window cmd-org-noter-toggle-notes-window) (register-command! 'org-noter-create-multi-file cmd-org-noter-create-multi-file)
+  ;; Round 794: Org-download ext 2 / Org-web-tools
+  (register-command! 'org-download-rename-last cmd-org-download-rename-last) (register-command! 'org-download-method-set cmd-org-download-method-set) (register-command! 'org-download-annotate cmd-org-download-annotate) (register-command! 'org-download-image-html cmd-org-download-image-html) (register-command! 'org-download-rename-at-point-with-time cmd-org-download-rename-at-point-with-time)
+  (register-command! 'org-web-tools-insert-link-for-url cmd-org-web-tools-insert-link-for-url) (register-command! 'org-web-tools-read-url-as-org cmd-org-web-tools-read-url-as-org) (register-command! 'org-web-tools-convert-links-to-page-entries cmd-org-web-tools-convert-links-to-page-entries) (register-command! 'org-web-tools-archive-view cmd-org-web-tools-archive-view) (register-command! 'org-web-tools-archive-attach cmd-org-web-tools-archive-attach)
+  ;; Round 795: Org-appear ext 2 / Org-modern ext 2
+  (register-command! 'org-appear-toggle cmd-org-appear-toggle) (register-command! 'org-appear-manual cmd-org-appear-manual) (register-command! 'org-appear-inside-latex cmd-org-appear-inside-latex) (register-command! 'org-appear-autolinks cmd-org-appear-autolinks) (register-command! 'org-appear-autosubmarkers cmd-org-appear-autosubmarkers)
+  (register-command! 'org-modern-indent-mode cmd-org-modern-indent-mode) (register-command! 'org-modern-tag-mode cmd-org-modern-tag-mode) (register-command! 'org-modern-table cmd-org-modern-table) (register-command! 'org-modern-block cmd-org-modern-block) (register-command! 'org-modern-keyword cmd-org-modern-keyword)
+  ;; Round 796: Org-fragtog ext 2 / Org-latex-preview
+  (register-command! 'org-fragtog-toggle cmd-org-fragtog-toggle) (register-command! 'org-fragtog-preview-all cmd-org-fragtog-preview-all) (register-command! 'org-fragtog-clear-all cmd-org-fragtog-clear-all) (register-command! 'org-fragtog-update cmd-org-fragtog-update) (register-command! 'org-fragtog-preview-region cmd-org-fragtog-preview-region)
+  (register-command! 'org-latex-preview-mode cmd-org-latex-preview-mode) (register-command! 'org-latex-preview-region cmd-org-latex-preview-region) (register-command! 'org-latex-preview-clear-cache cmd-org-latex-preview-clear-cache) (register-command! 'org-latex-preview-rebuild cmd-org-latex-preview-rebuild) (register-command! 'org-latex-preview-preamble cmd-org-latex-preview-preamble)
+  ;; Round 797: Codeium ext 2 / Tabnine
+  (register-command! 'codeium-reject-completion cmd-codeium-reject-completion) (register-command! 'codeium-toggle cmd-codeium-toggle) (register-command! 'codeium-chat cmd-codeium-chat) (register-command! 'codeium-explain cmd-codeium-explain) (register-command! 'codeium-generate cmd-codeium-generate)
+  (register-command! 'tabnine-complete cmd-tabnine-complete) (register-command! 'tabnine-accept cmd-tabnine-accept) (register-command! 'tabnine-next cmd-tabnine-next) (register-command! 'tabnine-previous cmd-tabnine-previous) (register-command! 'tabnine-chat cmd-tabnine-chat)
+  ;; Round 798: Aider / Claude-shell
+  (register-command! 'aider-run cmd-aider-run) (register-command! 'aider-send-line cmd-aider-send-line) (register-command! 'aider-send-region cmd-aider-send-region) (register-command! 'aider-architect-mode cmd-aider-architect-mode) (register-command! 'aider-drop-file cmd-aider-drop-file)
+  (register-command! 'claude-shell-send cmd-claude-shell-send) (register-command! 'claude-shell-clear cmd-claude-shell-clear) (register-command! 'claude-shell-rename cmd-claude-shell-rename) (register-command! 'claude-shell-abort cmd-claude-shell-abort) (register-command! 'claude-shell-toggle cmd-claude-shell-toggle)
+  ;; Round 799: Whisper / Speechd
+  (register-command! 'whisper-run cmd-whisper-run) (register-command! 'whisper-transcribe-buffer cmd-whisper-transcribe-buffer) (register-command! 'whisper-select-model cmd-whisper-select-model) (register-command! 'whisper-insert-transcription cmd-whisper-insert-transcription) (register-command! 'whisper-abort cmd-whisper-abort)
+  (register-command! 'speechd-say cmd-speechd-say) (register-command! 'speechd-cancel cmd-speechd-cancel) (register-command! 'speechd-pause cmd-speechd-pause) (register-command! 'speechd-resume cmd-speechd-resume) (register-command! 'speechd-set-rate cmd-speechd-set-rate)
+  ;; Round 800: Transient ext 2 / Hydra ext 2
+  (register-command! 'transient-show-help cmd-transient-show-help) (register-command! 'transient-show-common cmd-transient-show-common) (register-command! 'transient-toggle-debug cmd-transient-toggle-debug) (register-command! 'transient-toggle-level-limits cmd-transient-toggle-level-limits) (register-command! 'transient-insert-suffix cmd-transient-insert-suffix)
+  (register-command! 'hydra-toggle-body cmd-hydra-toggle-body) (register-command! 'hydra-keyboard-escape cmd-hydra-keyboard-escape) (register-command! 'hydra-repeat cmd-hydra-repeat) (register-command! 'hydra-set-property cmd-hydra-set-property) (register-command! 'hydra-idle-message cmd-hydra-idle-message)
 )