Round 661-670: Org Table, Tab Bar, Smartparens, Ivy/Counsel, Embark, Perspective (100 commands)

ober

506e4cb701a53b46c172a30631b89bb07ce0b459

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index f166fed..2454604 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -5108,6 +5108,156 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | `five-by-five` | :orange_circle: Scaffold | 5x5 puzzle game |
 | `five-by-five-crack-mutating` | :orange_circle: Scaffold | 5x5 crack mutating |
 | `five-by-five-crack-xoring` | :orange_circle: Scaffold | 5x5 crack xoring |
+
+### Round 661 — Org Table Extensions
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `org-table-create-or-convert` | :orange_circle: Scaffold | Create or convert from region |
+| `org-table-export` | :orange_circle: Scaffold | Export table |
+| `org-table-import` | :orange_circle: Scaffold | Import table |
+| `org-table-fedit-abort` | :orange_circle: Scaffold | Formula edit abort |
+| `org-table-fedit-finish` | :orange_circle: Scaffold | Formula edit finish |
+| `org-table-wrap-region` | :orange_circle: Scaffold | Wrap region |
+| `org-table-iterate-buffer` | :orange_circle: Scaffold | Iterate buffer tables |
+| `org-table-edit-formulas` | :orange_circle: Scaffold | Edit formulas |
+| `org-table-insert-hline` | :orange_circle: Scaffold | Insert hline |
+| `org-table-toggle-column-width` | :orange_circle: Scaffold | Toggle column width |
+
+### Round 662 — Tab Bar & Winner
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `tab-new` | :orange_circle: Scaffold | New tab |
+| `tab-close` | :orange_circle: Scaffold | Close tab |
+| `tab-next` | :orange_circle: Scaffold | Next tab |
+| `tab-previous` | :orange_circle: Scaffold | Previous tab |
+| `tab-rename` | :orange_circle: Scaffold | Rename tab |
+| `tab-move` | :orange_circle: Scaffold | Move tab |
+| `tab-undo-close` | :orange_circle: Scaffold | Undo close tab |
+| `winner-mode` | :orange_circle: Scaffold | Toggle winner mode |
+| `winner-save-config` | :orange_circle: Scaffold | Save window config |
+| `winner-restore-config` | :orange_circle: Scaffold | Restore window config |
+
+### Round 663 — Org Publish & Visual Modes
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `org-publish` | :orange_circle: Scaffold | Publish |
+| `org-publish-current-project` | :orange_circle: Scaffold | Publish current project |
+| `org-indent-item` | :orange_circle: Scaffold | Indent item |
+| `org-indent-item-tree` | :orange_circle: Scaffold | Indent item tree |
+| `org-num-mode` | :orange_circle: Scaffold | Numbering mode |
+| `org-superstar-mode` | :orange_circle: Scaffold | Pretty bullets |
+| `org-appear-mode` | :orange_circle: Scaffold | Auto-unhide markers |
+| `org-modern-mode` | :orange_circle: Scaffold | Modern styling |
+| `org-fragtog-mode` | :orange_circle: Scaffold | Auto LaTeX fragments |
+| `org-variable-pitch-mode` | :orange_circle: Scaffold | Variable pitch |
+
+### Round 664 — Expand Region & Multiple Cursors ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `expand-region` | :orange_circle: Scaffold | Expand region |
+| `er-expand-region` | :orange_circle: Scaffold | Expand (er/) |
+| `er-contract-region` | :orange_circle: Scaffold | Contract region |
+| `er-mark-word` | :orange_circle: Scaffold | Mark word |
+| `er-mark-symbol` | :orange_circle: Scaffold | Mark symbol |
+| `er-mark-inside-pairs` | :orange_circle: Scaffold | Mark inside pairs |
+| `mc-mark-next-like-this` | :orange_circle: Scaffold | MC mark next like this |
+| `mc-mark-previous-like-this` | :orange_circle: Scaffold | MC mark previous like this |
+| `mc-mark-all-like-this` | :orange_circle: Scaffold | MC mark all like this |
+| `mc-edit-lines` | :orange_circle: Scaffold | MC edit lines |
+
+### Round 665 — Smartparens Extensions
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `sp-forward-slurp` | :orange_circle: Scaffold | Forward slurp sexp |
+| `sp-backward-slurp` | :orange_circle: Scaffold | Backward slurp sexp |
+| `sp-forward-barf` | :orange_circle: Scaffold | Forward barf sexp |
+| `sp-backward-barf` | :orange_circle: Scaffold | Backward barf sexp |
+| `sp-splice` | :orange_circle: Scaffold | Splice sexp |
+| `sp-unwrap` | :orange_circle: Scaffold | Unwrap sexp |
+| `sp-rewrap` | :orange_circle: Scaffold | Rewrap sexp |
+| `sp-select-next` | :orange_circle: Scaffold | Select next sexp |
+| `sp-select-previous` | :orange_circle: Scaffold | Select previous sexp |
+| `sp-join` | :orange_circle: Scaffold | Join sexps |
+
+### Round 666 — Helm ext, Orderless & Embark
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `helm-M-x` | :orange_circle: Scaffold | Helm M-x |
+| `helm-mini` | :orange_circle: Scaffold | Helm mini |
+| `helm-resume` | :orange_circle: Scaffold | Helm resume |
+| `helm-show-kill-ring` | :orange_circle: Scaffold | Helm kill ring |
+| `helm-mark-ring` | :orange_circle: Scaffold | Helm mark ring |
+| `helm-all-mark-rings` | :orange_circle: Scaffold | Helm all mark rings |
+| `orderless-mode` | :orange_circle: Scaffold | Orderless mode |
+| `embark-act` | :orange_circle: Scaffold | Embark act |
+| `embark-dwim-action` | :orange_circle: Scaffold | Embark DWIM |
+| `embark-collect-completions` | :orange_circle: Scaffold | Embark collect |
+
+### Round 667 — Ivy, Counsel & Swiper ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `ivy-mode` | :orange_circle: Scaffold | Toggle ivy mode |
+| `counsel-M-x` | :orange_circle: Scaffold | Counsel M-x |
+| `counsel-describe-function` | :orange_circle: Scaffold | Describe function |
+| `counsel-describe-variable` | :orange_circle: Scaffold | Describe variable |
+| `swiper-all` | :orange_circle: Scaffold | Search all buffers |
+| `counsel-ag` | :orange_circle: Scaffold | Ag search |
+| `counsel-fzf` | :orange_circle: Scaffold | Fzf find |
+| `counsel-recentf` | :orange_circle: Scaffold | Recent files |
+| `counsel-yank-pop` | :orange_circle: Scaffold | Yank pop |
+| `counsel-bookmark` | :orange_circle: Scaffold | Bookmarks |
+
+### Round 668 — Company, Flyspell, Eglot & Project ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `company-complete` | :orange_circle: Scaffold | Company complete |
+| `company-select-next` | :orange_circle: Scaffold | Select next |
+| `company-select-previous` | :orange_circle: Scaffold | Select previous |
+| `company-abort` | :orange_circle: Scaffold | Abort completion |
+| `company-show-doc` | :orange_circle: Scaffold | Show documentation |
+| `flyspell-buffer` | :orange_circle: Scaffold | Check buffer |
+| `flyspell-auto-correct` | :orange_circle: Scaffold | Auto correct word |
+| `eglot-find-type-definition` | :orange_circle: Scaffold | Find type definition |
+| `project-eshell` | :orange_circle: Scaffold | Project eshell |
+| `project-shell` | :orange_circle: Scaffold | Project shell |
+
+### Round 669 — Perspective & Eyebrowse
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `perspective-mode` | :orange_circle: Scaffold | Toggle mode |
+| `persp-switch` | :orange_circle: Scaffold | Switch perspective |
+| `persp-rename` | :orange_circle: Scaffold | Rename perspective |
+| `persp-add-buffer` | :orange_circle: Scaffold | Add buffer |
+| `persp-remove-buffer` | :orange_circle: Scaffold | Remove buffer |
+| `persp-set-buffer` | :orange_circle: Scaffold | Set buffer |
+| `eyebrowse-switch-config` | :orange_circle: Scaffold | Switch config |
+| `eyebrowse-create-config` | :orange_circle: Scaffold | Create config |
+| `eyebrowse-close-config` | :orange_circle: Scaffold | Close config |
+| `eyebrowse-rename-config` | :orange_circle: Scaffold | Rename config |
+
+### Round 670 — Which-key, Doom UI, Icons & Misc
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `which-key-mode` | :orange_circle: Scaffold | Toggle which-key |
+| `doom-themes-toggle` | :orange_circle: Scaffold | Toggle doom themes |
+| `doom-modeline-toggle` | :orange_circle: Scaffold | Toggle doom modeline |
+| `all-the-icons-install` | :orange_circle: Scaffold | Install icon fonts |
+| `imenu-list-toggle` | :orange_circle: Scaffold | Toggle imenu list |
+| `whitespace-toggle-options` | :orange_circle: Scaffold | Toggle whitespace options |
+| `goto-address-prog` | :orange_circle: Scaffold | Goto address prog mode |
+| `bug-reference-prog` | :orange_circle: Scaffold | Bug reference prog mode |
+| `lsp-restart-workspace` | :orange_circle: Scaffold | LSP restart workspace |
+| `vterm-new-session` | :orange_circle: Scaffold | VTerm new session |
 ### 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 bd72421..d04b328 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -34718,3 +34718,58 @@
 (def (cmd-5x5 app) (let* ((echo (app-state-echo app))) (echo-message! echo "5x5: puzzle game")))
 (def (cmd-5x5-crack-mutating app) (let* ((echo (app-state-echo app))) (echo-message! echo "5x5: crack mutating")))
 (def (cmd-5x5-crack-xoring app) (let* ((echo (app-state-echo app))) (echo-message! echo "5x5: crack xoring")))
+;; Round 662: Tab Bar & Winner
+(def (cmd-tab-new app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tab Bar: new tab")))
+(def (cmd-tab-close app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tab Bar: close tab")))
+(def (cmd-tab-next app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tab Bar: next tab")))
+(def (cmd-tab-previous app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tab Bar: previous tab")))
+(def (cmd-tab-rename app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tab Bar: rename tab")))
+(def (cmd-tab-move app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tab Bar: move tab")))
+(def (cmd-tab-undo-close app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tab Bar: undo close")))
+(def (cmd-winner-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Winner: toggle mode")))
+(def (cmd-winner-save-config app) (let* ((echo (app-state-echo app))) (echo-message! echo "Winner: save config")))
+(def (cmd-winner-restore-config app) (let* ((echo (app-state-echo app))) (echo-message! echo "Winner: restore config")))
+;; Round 664: Expand Region & Multiple Cursors ext
+(def (cmd-expand-region app) (let* ((echo (app-state-echo app))) (echo-message! echo "Expand Region: expand")))
+(def (cmd-er-expand-region app) (let* ((echo (app-state-echo app))) (echo-message! echo "Expand Region: expand (er/)")))
+(def (cmd-er-contract-region app) (let* ((echo (app-state-echo app))) (echo-message! echo "Expand Region: contract")))
+(def (cmd-er-mark-word app) (let* ((echo (app-state-echo app))) (echo-message! echo "Expand Region: mark word")))
+(def (cmd-er-mark-symbol app) (let* ((echo (app-state-echo app))) (echo-message! echo "Expand Region: mark symbol")))
+(def (cmd-er-mark-inside-pairs app) (let* ((echo (app-state-echo app))) (echo-message! echo "Expand Region: mark inside pairs")))
+(def (cmd-mc-mark-next-like-this app) (let* ((echo (app-state-echo app))) (echo-message! echo "Multiple Cursors: mark next like this")))
+(def (cmd-mc-mark-previous-like-this app) (let* ((echo (app-state-echo app))) (echo-message! echo "Multiple Cursors: mark previous like this")))
+(def (cmd-mc-mark-all-like-this app) (let* ((echo (app-state-echo app))) (echo-message! echo "Multiple Cursors: mark all like this")))
+(def (cmd-mc-edit-lines app) (let* ((echo (app-state-echo app))) (echo-message! echo "Multiple Cursors: edit lines")))
+;; Round 666: Helm ext & Orderless & Embark
+(def (cmd-helm-M-x app) (let* ((echo (app-state-echo app))) (echo-message! echo "Helm: M-x")))
+(def (cmd-helm-mini app) (let* ((echo (app-state-echo app))) (echo-message! echo "Helm: mini")))
+(def (cmd-helm-resume app) (let* ((echo (app-state-echo app))) (echo-message! echo "Helm: resume")))
+(def (cmd-helm-show-kill-ring app) (let* ((echo (app-state-echo app))) (echo-message! echo "Helm: show kill ring")))
+(def (cmd-helm-mark-ring app) (let* ((echo (app-state-echo app))) (echo-message! echo "Helm: mark ring")))
+(def (cmd-helm-all-mark-rings app) (let* ((echo (app-state-echo app))) (echo-message! echo "Helm: all mark rings")))
+(def (cmd-orderless-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Orderless: toggle mode")))
+(def (cmd-embark-act app) (let* ((echo (app-state-echo app))) (echo-message! echo "Embark: act")))
+(def (cmd-embark-dwim-action app) (let* ((echo (app-state-echo app))) (echo-message! echo "Embark: dwim")))
+(def (cmd-embark-collect-completions app) (let* ((echo (app-state-echo app))) (echo-message! echo "Embark: collect")))
+;; Round 668: Company, Flyspell ext, Eglot ext
+(def (cmd-company-complete app) (let* ((echo (app-state-echo app))) (echo-message! echo "Company: complete")))
+(def (cmd-company-select-next app) (let* ((echo (app-state-echo app))) (echo-message! echo "Company: select next")))
+(def (cmd-company-select-previous app) (let* ((echo (app-state-echo app))) (echo-message! echo "Company: select previous")))
+(def (cmd-company-abort app) (let* ((echo (app-state-echo app))) (echo-message! echo "Company: abort")))
+(def (cmd-company-show-doc app) (let* ((echo (app-state-echo app))) (echo-message! echo "Company: show doc")))
+(def (cmd-flyspell-buffer app) (let* ((echo (app-state-echo app))) (echo-message! echo "Flyspell: check buffer")))
+(def (cmd-flyspell-auto-correct app) (let* ((echo (app-state-echo app))) (echo-message! echo "Flyspell: auto correct word")))
+(def (cmd-eglot-find-type-definition app) (let* ((echo (app-state-echo app))) (echo-message! echo "Eglot: find type definition")))
+(def (cmd-project-eshell app) (let* ((echo (app-state-echo app))) (echo-message! echo "Project: eshell")))
+(def (cmd-project-shell app) (let* ((echo (app-state-echo app))) (echo-message! echo "Project: shell")))
+;; Round 670: Which-key, Doom UI, Icons, Misc
+(def (cmd-which-key-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Which Key: toggle mode")))
+(def (cmd-doom-themes-toggle app) (let* ((echo (app-state-echo app))) (echo-message! echo "Doom Themes: toggle")))
+(def (cmd-doom-modeline-toggle app) (let* ((echo (app-state-echo app))) (echo-message! echo "Doom Modeline: toggle")))
+(def (cmd-all-the-icons-install app) (let* ((echo (app-state-echo app))) (echo-message! echo "All The Icons: install fonts")))
+(def (cmd-imenu-list-toggle app) (let* ((echo (app-state-echo app))) (echo-message! echo "Imenu List: toggle")))
+(def (cmd-whitespace-toggle-options app) (let* ((echo (app-state-echo app))) (echo-message! echo "Whitespace: toggle options")))
+(def (cmd-goto-address-prog app) (let* ((echo (app-state-echo app))) (echo-message! echo "Goto Address: prog mode")))
+(def (cmd-bug-reference-prog app) (let* ((echo (app-state-echo app))) (echo-message! echo "Bug Reference: prog mode")))
+(def (cmd-lsp-restart-workspace app) (let* ((echo (app-state-echo app))) (echo-message! echo "LSP: restart workspace")))
+(def (cmd-vterm-new-session app) (let* ((echo (app-state-echo app))) (echo-message! echo "VTerm: new session")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index a989ad3..29e8d37 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -33942,3 +33942,58 @@
 (def (cmd-org-protocol-open-source app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Protocol: open source")))
 (def (cmd-org-mobile-push app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Mobile: push")))
 (def (cmd-org-mobile-pull app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Mobile: pull")))
+;; Round 661: Org Table Extensions
+(def (cmd-org-table-create-or-convert app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Table: create or convert from region")))
+(def (cmd-org-table-export app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Table: export")))
+(def (cmd-org-table-import app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Table: import")))
+(def (cmd-org-table-fedit-abort app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Table: formula edit abort")))
+(def (cmd-org-table-fedit-finish app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Table: formula edit finish")))
+(def (cmd-org-table-wrap-region app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Table: wrap region")))
+(def (cmd-org-table-iterate-buffer app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Table: iterate buffer tables")))
+(def (cmd-org-table-edit-formulas app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Table: edit formulas")))
+(def (cmd-org-table-insert-hline app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Table: insert hline")))
+(def (cmd-org-table-toggle-column-width app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Table: toggle column width")))
+;; Round 663: Org Publish & Indent
+(def (cmd-org-publish app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Publish: publish")))
+(def (cmd-org-publish-current-project app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Publish: current project")))
+(def (cmd-org-indent-item app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org: indent item")))
+(def (cmd-org-indent-item-tree app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org: indent item tree")))
+(def (cmd-org-num-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Num: toggle numbering mode")))
+(def (cmd-org-superstar-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Superstar: toggle pretty bullets")))
+(def (cmd-org-appear-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Appear: auto-unhide emphasis markers")))
+(def (cmd-org-modern-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Modern: modern styling")))
+(def (cmd-org-fragtog-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org Fragtog: auto-toggle LaTeX fragments")))
+(def (cmd-org-variable-pitch-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Org: variable pitch mode")))
+;; Round 665: Smartparens & Paredit
+(def (cmd-sp-forward-slurp app) (let* ((echo (app-state-echo app))) (echo-message! echo "Smartparens: forward slurp sexp")))
+(def (cmd-sp-backward-slurp app) (let* ((echo (app-state-echo app))) (echo-message! echo "Smartparens: backward slurp sexp")))
+(def (cmd-sp-forward-barf app) (let* ((echo (app-state-echo app))) (echo-message! echo "Smartparens: forward barf sexp")))
+(def (cmd-sp-backward-barf app) (let* ((echo (app-state-echo app))) (echo-message! echo "Smartparens: backward barf sexp")))
+(def (cmd-sp-splice app) (let* ((echo (app-state-echo app))) (echo-message! echo "Smartparens: splice sexp")))
+(def (cmd-sp-unwrap app) (let* ((echo (app-state-echo app))) (echo-message! echo "Smartparens: unwrap sexp")))
+(def (cmd-sp-rewrap app) (let* ((echo (app-state-echo app))) (echo-message! echo "Smartparens: rewrap sexp")))
+(def (cmd-sp-select-next app) (let* ((echo (app-state-echo app))) (echo-message! echo "Smartparens: select next sexp")))
+(def (cmd-sp-select-previous app) (let* ((echo (app-state-echo app))) (echo-message! echo "Smartparens: select previous sexp")))
+(def (cmd-sp-join app) (let* ((echo (app-state-echo app))) (echo-message! echo "Smartparens: join sexps")))
+;; Round 667: Ivy, Counsel & Swiper ext
+(def (cmd-ivy-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Ivy: toggle ivy mode")))
+(def (cmd-counsel-M-x app) (let* ((echo (app-state-echo app))) (echo-message! echo "Counsel: M-x")))
+(def (cmd-counsel-describe-function app) (let* ((echo (app-state-echo app))) (echo-message! echo "Counsel: describe function")))
+(def (cmd-counsel-describe-variable app) (let* ((echo (app-state-echo app))) (echo-message! echo "Counsel: describe variable")))
+(def (cmd-swiper-all app) (let* ((echo (app-state-echo app))) (echo-message! echo "Swiper: search all buffers")))
+(def (cmd-counsel-ag app) (let* ((echo (app-state-echo app))) (echo-message! echo "Counsel: ag search")))
+(def (cmd-counsel-fzf app) (let* ((echo (app-state-echo app))) (echo-message! echo "Counsel: fzf find")))
+(def (cmd-counsel-recentf app) (let* ((echo (app-state-echo app))) (echo-message! echo "Counsel: recent files")))
+(def (cmd-counsel-yank-pop app) (let* ((echo (app-state-echo app))) (echo-message! echo "Counsel: yank pop")))
+(def (cmd-counsel-bookmark app) (let* ((echo (app-state-echo app))) (echo-message! echo "Counsel: bookmarks")))
+;; Round 669: Perspective & Eyebrowse
+(def (cmd-perspective-mode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Perspective: toggle mode")))
+(def (cmd-persp-switch app) (let* ((echo (app-state-echo app))) (echo-message! echo "Perspective: switch")))
+(def (cmd-persp-rename app) (let* ((echo (app-state-echo app))) (echo-message! echo "Perspective: rename")))
+(def (cmd-persp-add-buffer app) (let* ((echo (app-state-echo app))) (echo-message! echo "Perspective: add buffer")))
+(def (cmd-persp-remove-buffer app) (let* ((echo (app-state-echo app))) (echo-message! echo "Perspective: remove buffer")))
+(def (cmd-persp-set-buffer app) (let* ((echo (app-state-echo app))) (echo-message! echo "Perspective: set buffer")))
+(def (cmd-eyebrowse-switch-config app) (let* ((echo (app-state-echo app))) (echo-message! echo "Eyebrowse: switch config")))
+(def (cmd-eyebrowse-create-config app) (let* ((echo (app-state-echo app))) (echo-message! echo "Eyebrowse: create config")))
+(def (cmd-eyebrowse-close-config app) (let* ((echo (app-state-echo app))) (echo-message! echo "Eyebrowse: close config")))
+(def (cmd-eyebrowse-rename-config app) (let* ((echo (app-state-echo app))) (echo-message! echo "Eyebrowse: rename config")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 3998d4e..37167de 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -13173,4 +13173,35 @@
   ;; Round 660: Org Misc ext + 5x5 game
   (register-command! 'org-tags-view cmd-org-tags-view) (register-command! 'org-search-view cmd-org-search-view) (register-command! 'org-agenda-open-link cmd-org-agenda-open-link) (register-command! 'org-agenda-kill cmd-org-agenda-kill) (register-command! 'org-agenda-add-note cmd-org-agenda-add-note)
   (register-command! 'org-agenda-drag-line-forward cmd-org-agenda-drag-line-forward) (register-command! 'org-agenda-drag-line-backward cmd-org-agenda-drag-line-backward) (register-command! 'five-by-five cmd-5x5) (register-command! 'five-by-five-crack-mutating cmd-5x5-crack-mutating) (register-command! 'five-by-five-crack-xoring cmd-5x5-crack-xoring)
+
+  ;; Round 661: Org Table ext
+  (register-command! 'org-table-create-or-convert cmd-org-table-create-or-convert) (register-command! 'org-table-export cmd-org-table-export) (register-command! 'org-table-import cmd-org-table-import) (register-command! 'org-table-fedit-abort cmd-org-table-fedit-abort) (register-command! 'org-table-fedit-finish cmd-org-table-fedit-finish)
+  (register-command! 'org-table-wrap-region cmd-org-table-wrap-region) (register-command! 'org-table-iterate-buffer cmd-org-table-iterate-buffer) (register-command! 'org-table-edit-formulas cmd-org-table-edit-formulas) (register-command! 'org-table-insert-hline cmd-org-table-insert-hline) (register-command! 'org-table-toggle-column-width cmd-org-table-toggle-column-width)
+  ;; Round 662: Tab Bar & Winner
+  (register-command! 'tab-new cmd-tab-new) (register-command! 'tab-close cmd-tab-close) (register-command! 'tab-next cmd-tab-next) (register-command! 'tab-previous cmd-tab-previous) (register-command! 'tab-rename cmd-tab-rename)
+  (register-command! 'tab-move cmd-tab-move) (register-command! 'tab-undo-close cmd-tab-undo-close) (register-command! 'winner-mode cmd-winner-mode) (register-command! 'winner-save-config cmd-winner-save-config) (register-command! 'winner-restore-config cmd-winner-restore-config)
+  ;; Round 663: Org Publish & Indent ext
+  (register-command! 'org-publish cmd-org-publish) (register-command! 'org-publish-current-project cmd-org-publish-current-project) (register-command! 'org-indent-item cmd-org-indent-item) (register-command! 'org-indent-item-tree cmd-org-indent-item-tree) (register-command! 'org-num-mode cmd-org-num-mode)
+  (register-command! 'org-superstar-mode cmd-org-superstar-mode) (register-command! 'org-appear-mode cmd-org-appear-mode) (register-command! 'org-modern-mode cmd-org-modern-mode) (register-command! 'org-fragtog-mode cmd-org-fragtog-mode) (register-command! 'org-variable-pitch-mode cmd-org-variable-pitch-mode)
+  ;; Round 664: Expand Region & MC ext
+  (register-command! 'expand-region cmd-expand-region) (register-command! 'er-expand-region cmd-er-expand-region) (register-command! 'er-contract-region cmd-er-contract-region) (register-command! 'er-mark-word cmd-er-mark-word) (register-command! 'er-mark-symbol cmd-er-mark-symbol)
+  (register-command! 'er-mark-inside-pairs cmd-er-mark-inside-pairs) (register-command! 'mc-mark-next-like-this cmd-mc-mark-next-like-this) (register-command! 'mc-mark-previous-like-this cmd-mc-mark-previous-like-this) (register-command! 'mc-mark-all-like-this cmd-mc-mark-all-like-this) (register-command! 'mc-edit-lines cmd-mc-edit-lines)
+  ;; Round 665: Smartparens ext
+  (register-command! 'sp-forward-slurp cmd-sp-forward-slurp) (register-command! 'sp-backward-slurp cmd-sp-backward-slurp) (register-command! 'sp-forward-barf cmd-sp-forward-barf) (register-command! 'sp-backward-barf cmd-sp-backward-barf) (register-command! 'sp-splice cmd-sp-splice)
+  (register-command! 'sp-unwrap cmd-sp-unwrap) (register-command! 'sp-rewrap cmd-sp-rewrap) (register-command! 'sp-select-next cmd-sp-select-next) (register-command! 'sp-select-previous cmd-sp-select-previous) (register-command! 'sp-join cmd-sp-join)
+  ;; Round 666: Helm ext, Orderless, Embark
+  (register-command! 'helm-M-x cmd-helm-M-x) (register-command! 'helm-mini cmd-helm-mini) (register-command! 'helm-resume cmd-helm-resume) (register-command! 'helm-show-kill-ring cmd-helm-show-kill-ring) (register-command! 'helm-mark-ring cmd-helm-mark-ring)
+  (register-command! 'helm-all-mark-rings cmd-helm-all-mark-rings) (register-command! 'orderless-mode cmd-orderless-mode) (register-command! 'embark-act cmd-embark-act) (register-command! 'embark-dwim-action cmd-embark-dwim-action) (register-command! 'embark-collect-completions cmd-embark-collect-completions)
+  ;; Round 667: Ivy, Counsel, Swiper ext
+  (register-command! 'ivy-mode cmd-ivy-mode) (register-command! 'counsel-M-x cmd-counsel-M-x) (register-command! 'counsel-describe-function cmd-counsel-describe-function) (register-command! 'counsel-describe-variable cmd-counsel-describe-variable) (register-command! 'swiper-all cmd-swiper-all)
+  (register-command! 'counsel-ag cmd-counsel-ag) (register-command! 'counsel-fzf cmd-counsel-fzf) (register-command! 'counsel-recentf cmd-counsel-recentf) (register-command! 'counsel-yank-pop cmd-counsel-yank-pop) (register-command! 'counsel-bookmark cmd-counsel-bookmark)
+  ;; Round 668: Company, Flyspell, Eglot, Project ext
+  (register-command! 'company-complete cmd-company-complete) (register-command! 'company-select-next cmd-company-select-next) (register-command! 'company-select-previous cmd-company-select-previous) (register-command! 'company-abort cmd-company-abort) (register-command! 'company-show-doc cmd-company-show-doc)
+  (register-command! 'flyspell-buffer cmd-flyspell-buffer) (register-command! 'flyspell-auto-correct cmd-flyspell-auto-correct) (register-command! 'eglot-find-type-definition cmd-eglot-find-type-definition) (register-command! 'project-eshell cmd-project-eshell) (register-command! 'project-shell cmd-project-shell)
+  ;; Round 669: Perspective & Eyebrowse
+  (register-command! 'perspective-mode cmd-perspective-mode) (register-command! 'persp-switch cmd-persp-switch) (register-command! 'persp-rename cmd-persp-rename) (register-command! 'persp-add-buffer cmd-persp-add-buffer) (register-command! 'persp-remove-buffer cmd-persp-remove-buffer)
+  (register-command! 'persp-set-buffer cmd-persp-set-buffer) (register-command! 'eyebrowse-switch-config cmd-eyebrowse-switch-config) (register-command! 'eyebrowse-create-config cmd-eyebrowse-create-config) (register-command! 'eyebrowse-close-config cmd-eyebrowse-close-config) (register-command! 'eyebrowse-rename-config cmd-eyebrowse-rename-config)
+  ;; Round 670: Which-key, Doom, Icons, Misc
+  (register-command! 'which-key-mode cmd-which-key-mode) (register-command! 'doom-themes-toggle cmd-doom-themes-toggle) (register-command! 'doom-modeline-toggle cmd-doom-modeline-toggle) (register-command! 'all-the-icons-install cmd-all-the-icons-install) (register-command! 'imenu-list-toggle cmd-imenu-list-toggle)
+  (register-command! 'whitespace-toggle-options cmd-whitespace-toggle-options) (register-command! 'goto-address-prog cmd-goto-address-prog) (register-command! 'bug-reference-prog cmd-bug-reference-prog) (register-command! 'lsp-restart-workspace cmd-lsp-restart-workspace) (register-command! 'vterm-new-session cmd-vterm-new-session)
 )