@@ -6,114 +6,34 @@ bash .claude-plugin/scripts/extract-tmux-commands.sh ~/study/c/tmux
66bash .claude-plugin/scripts/extract-libtmux-methods.sh
77```
88
9- ## Wrapped Commands (28/88)
9+ ## Summary
1010
11- | tmux Command | Alias | Getopt Flags | Target | libtmux Location | Methods |
12- | ---| ---| ---| ---| ---| ---|
13- | ` attach-session ` | ` attach ` | ` c:dEf:rt:x ` | none | ` server.py ` | ` Server.attach_session() ` |
14- | ` capture-pane ` | ` capturep ` | ` ab:CeE:JMNpPqS:Tt: ` | pane | ` pane.py ` | ` Pane.capture_pane() ` |
15- | ` display-message ` | ` display ` | ` aCc:d:lINpt:F:v ` | pane | ` pane.py ` | ` Pane.display_message() ` |
16- | ` has-session ` | ` has ` | ` t: ` | session | ` server.py ` | ` Server.has_session() ` |
17- | ` kill-pane ` | ` killp ` | ` at: ` | pane | ` pane.py ` | ` Pane.kill() ` |
18- | ` kill-server ` | — | (none) | none | ` server.py ` | ` Server.kill() ` |
19- | ` kill-session ` | — | ` aCt: ` | session | ` server.py ` , ` session.py ` | ` Server.kill_session() ` , ` Session.kill() ` |
20- | ` kill-window ` | ` killw ` | ` at: ` | window | ` session.py ` | ` Session.kill_window() ` , ` Window.kill() ` |
21- | ` list-sessions ` | ` ls ` | ` F:f:O:r ` | none | ` server.py ` , ` neo.py ` | ` Server.sessions ` , internal fetch |
22- | ` list-windows ` | ` lsw ` | ` aF:f:O:rst: ` | window | ` neo.py ` | Internal fetch for ` Session.windows ` |
23- | ` list-panes ` | ` lsp ` | ` aF:f:O:rst: ` | window | ` neo.py ` | Internal fetch for ` Window.panes ` |
24- | ` move-window ` | ` movew ` | ` abdkrs:t: ` | window | ` window.py ` | ` Window.move_window() ` |
25- | ` new-session ` | ` new ` | ` Ac:dDe:EF:f:n:Ps:t:x:Xy: ` | session | ` server.py ` | ` Server.new_session() ` |
26- | ` new-window ` | ` neww ` | ` abc:de:F:kn:PSt: ` | window | ` session.py ` | ` Session.new_window() ` |
27- | ` rename-session ` | ` rename ` | ` t: ` | session | ` session.py ` | ` Session.rename_session() ` |
28- | ` rename-window ` | ` renamew ` | ` t: ` | window | ` window.py ` | ` Window.rename_window() ` |
29- | ` resize-pane ` | ` resizep ` | ` DLMRTt:Ux:y:Z ` | pane | ` pane.py ` | ` Pane.resize() ` |
30- | ` resize-window ` | ` resizew ` | ` aADLRt:Ux:y: ` | window | ` window.py ` | ` Window.resize() ` |
31- | ` select-layout ` | ` selectl ` | ` Enopt: ` | pane | ` window.py ` | ` Window.select_layout() ` |
32- | ` select-pane ` | ` selectp ` | ` DdegLlMmP:RT:t:UZ ` | pane | ` window.py ` , ` pane.py ` | ` Window.select_pane() ` , ` Pane.select() ` , ` Pane.set_title() ` |
33- | ` select-window ` | ` selectw ` | ` lnpTt: ` | window | ` session.py ` , ` window.py ` | ` Session.select_window() ` , ` Window.select() ` |
34- | ` send-keys ` | ` send ` | ` c:FHKlMN:Rt:X ` | pane | ` pane.py ` | ` Pane.send_keys() ` |
35- | ` set-environment ` | ` setenv ` | ` Fhgrt:u ` | session | ` common.py ` | ` EnvironmentMixin.set_environment() ` , ` .unset_environment() ` , ` .remove_environment() ` |
36- | ` set-hook ` | — | ` agpRt:uw ` | pane | ` hooks.py ` | ` HooksMixin.set_hook() ` , ` .unset_hook() ` |
37- | ` set-option ` | ` set ` | ` aFgopqst:uUw ` | pane | ` options.py ` | ` OptionsMixin.set_option() ` , ` .unset_option() ` |
38- | ` show-environment ` | ` showenv ` | ` hgst: ` | session | ` common.py ` | ` EnvironmentMixin.show_environment() ` , ` .getenv() ` |
39- | ` show-hooks ` | — | ` gpt:w ` | pane | ` hooks.py ` | ` HooksMixin.show_hooks() ` , ` .show_hook() ` |
40- | ` show-options ` | ` show ` | ` AgHpqst:vw ` | pane | ` options.py ` | ` OptionsMixin.show_options() ` , ` .show_option() ` |
41- | ` split-window ` | ` splitw ` | ` bc:de:fF:hIl:p:Pt:vZ ` | pane | ` pane.py ` | ` Pane.split() ` , ` Window.split() ` |
42- | ` switch-client ` | ` switchc ` | ` c:EFlnO:pt:rT:Z ` | none | ` server.py ` , ` session.py ` | ` Server.switch_client() ` , ` Session.switch_client() ` |
11+ - ** Directly wrapped** : 79/90 commands (87%)
12+ - ** Covered by alias/flag** : 8 additional commands
13+ - ** Truly unwrappable** : 3 commands (block waiting for interactive input)
14+ - ** Total effective coverage** : 87/90 (96%)
4315
44- ## Not Wrapped Commands (60/88 )
16+ ## Covered by Alias/Flag (8 commands )
4517
46- ### High Priority (useful for programmatic/scripting use)
18+ These commands are not called directly but their functionality is available:
4719
48- | tmux Command | Alias | Getopt | Target | Notes |
49- | ---| ---| ---| ---| ---|
50- | ` break-pane ` | ` breakp ` | ` abdPF:n:s:t: ` | window | Move pane to its own window |
51- | ` join-pane ` | ` joinp ` | ` bdfhvp:l:s:t: ` | pane | Merge pane into another window |
52- | ` move-pane ` | ` movep ` | ` bdfhvp:l:s:t: ` | pane | Move pane between windows (like join-pane) |
53- | ` respawn-pane ` | ` respawnp ` | ` c:e:kt: ` | pane | Re-run command in pane |
54- | ` respawn-window ` | ` respawnw ` | ` c:e:kt: ` | window | Re-run command in all window panes |
55- | ` run-shell ` | ` run ` | ` bd:Ct:Es:c: ` | pane | Execute shell command in background |
56- | ` swap-pane ` | ` swapp ` | ` dDs:t:UZ ` | pane | Swap two panes |
57- | ` swap-window ` | ` swapw ` | ` ds:t: ` | window | Swap two windows |
58- | ` display-popup ` | ` popup ` | ` Bb:Cc:d:e:Eh:kNs:S:t:T:w:x:y: ` | pane | Create popup overlay (tmux 3.2+) |
59- | ` pipe-pane ` | ` pipep ` | ` IOot: ` | pane | Pipe pane output to command |
60- | ` clear-history ` | ` clearhist ` | ` Ht: ` | pane | Clear pane scrollback buffer |
20+ | tmux Command | Covered By | How |
21+ | ---| ---| ---|
22+ | ` last-pane ` | ` Window.last_pane() ` , ` Pane.select(last=True) ` | ` -l ` flag on select-pane |
23+ | ` list-panes ` | ` Window.panes ` property | Used internally by ` neo.py ` |
24+ | ` list-windows ` | ` Session.windows ` property | Used internally by ` neo.py ` |
25+ | ` move-pane ` | ` Pane.join() ` | Same C source as join-pane |
26+ | ` next-layout ` | ` Window.select_layout(next_layout=True) ` | ` -n ` flag on select-layout |
27+ | ` previous-layout ` | ` Window.select_layout(previous_layout=True) ` | ` -o ` flag on select-layout |
28+ | ` set-window-option ` | ` OptionsMixin.set_option(scope=OptionScope.Window) ` | Alias for ` set-option -w ` |
29+ | ` show-window-options ` | ` OptionsMixin.show_options(scope=OptionScope.Window) ` | Alias for ` show-options -w ` |
6130
62- ### Medium Priority (navigation, buffers, info )
31+ ## Not Wrappable (3 commands )
6332
64- | tmux Command | Alias | Getopt | Target | Notes |
65- | ---| ---| ---| ---| ---|
66- | ` last-pane ` | ` lastp ` | ` det:Z ` | window | Select previous pane |
67- | ` last-window ` | ` last ` | ` t: ` | session | Select previous window |
68- | ` next-window ` | ` next ` | ` at: ` | session | Select next window |
69- | ` previous-window ` | ` prev ` | ` at: ` | session | Select previous window |
70- | ` link-window ` | ` linkw ` | ` abdks:t: ` | window | Link window to another session |
71- | ` unlink-window ` | ` unlinkw ` | ` kt: ` | window | Unlink window from session |
72- | ` rotate-window ` | ` rotatew ` | ` Dt:UZ ` | window | Rotate pane positions |
73- | ` list-buffers ` | ` lsb ` | ` F:f:O:r ` | none | List paste buffers |
74- | ` list-clients ` | ` lsc ` | ` F:f:O:rt: ` | session | List connected clients |
75- | ` load-buffer ` | ` loadb ` | ` b:t:w ` | none | Load file into paste buffer |
76- | ` save-buffer ` | ` saveb ` | ` ab: ` | none | Save paste buffer to file |
77- | ` set-buffer ` | ` setb ` | ` ab:t:n:w ` | none | Set paste buffer contents |
78- | ` show-buffer ` | ` showb ` | ` b: ` | none | Show paste buffer contents |
79- | ` delete-buffer ` | ` deleteb ` | ` b: ` | none | Delete a paste buffer |
80- | ` paste-buffer ` | ` pasteb ` | ` db:prSs:t: ` | pane | Paste buffer into pane |
81- | ` wait-for ` | ` wait ` | ` LSU ` | none | Wait for/signal/lock a channel |
82- | ` if-shell ` | ` if ` | ` bFt: ` | pane | Conditional command execution |
83- | ` detach-client ` | ` detach ` | ` aE:s:t:P ` | session | Detach client from session |
84- | ` refresh-client ` | ` refresh ` | ` A:B:cC:Df:r:F:lLRSt:U ` | none | Refresh client display |
85- | ` show-window-options ` | ` showw ` | ` gvt: ` | window | Show window options (alias for show-options -w) |
86- | ` set-window-option ` | ` setw ` | ` aFgoqt:u ` | window | Set window option (alias for set-option -w) |
33+ These block forever waiting for interactive user input:
8734
88- ### Low Priority (interactive UI, config, rarely scripted)
89-
90- | tmux Command | Alias | Getopt | Target | Notes |
91- | ---| ---| ---| ---| ---|
92- | ` bind-key ` | ` bind ` | ` nrN:T: ` | none | Bind key to command |
93- | ` unbind-key ` | ` unbind ` | ` anqT: ` | none | Unbind a key |
94- | ` choose-buffer ` | — | ` F:f:K:NO:rt:yZ ` | pane | Interactive buffer chooser |
95- | ` choose-client ` | — | ` F:f:K:NO:rt:yZ ` | pane | Interactive client chooser |
96- | ` choose-tree ` | — | ` F:f:GK:NO:rst:wyZ ` | pane | Interactive session/window tree |
97- | ` clock-mode ` | — | ` t: ` | pane | Show clock in pane |
98- | ` command-prompt ` | — | ` 1beFiklI:Np:t:T: ` | none | Open command prompt |
99- | ` confirm-before ` | ` confirm ` | ` bc:p:t:y ` | none | Confirm before running command |
100- | ` copy-mode ` | — | ` deHMqSs:t:u ` | pane | Enter copy mode |
101- | ` customize-mode ` | — | ` F:f:Nt:yZ ` | pane | Enter customize mode |
102- | ` display-menu ` | ` menu ` | ` b:c:C:H:s:S:MOt:T:x:y: ` | pane | Display popup menu |
103- | ` display-panes ` | ` displayp ` | ` bd:Nt: ` | none | Show pane numbers |
104- | ` find-window ` | ` findw ` | ` CiNrt:TZ ` | pane | Search window contents |
105- | ` list-commands ` | ` lscm ` | ` F: ` | none | List tmux commands |
106- | ` list-keys ` | ` lsk ` | ` 1aF:NO:P:rT: ` | none | List key bindings |
107- | ` lock-client ` | ` lockc ` | ` t: ` | none | Lock a client |
108- | ` lock-server ` | ` lock ` | (none) | none | Lock the server |
109- | ` lock-session ` | ` locks ` | ` t: ` | session | Lock a session |
110- | ` next-layout ` | ` nextl ` | ` t: ` | window | Cycle to next layout |
111- | ` previous-layout ` | ` prevl ` | ` t: ` | window | Cycle to previous layout |
112- | ` send-prefix ` | — | ` 2t: ` | pane | Send prefix key |
113- | ` server-access ` | — | ` adlrw ` | none | Manage server access control |
114- | ` show-messages ` | ` showmsgs ` | ` JTt: ` | none | Show message log |
115- | ` show-prompt-history ` | ` showphist ` | ` T: ` | none | Show prompt history |
116- | ` clear-prompt-history ` | ` clearphist ` | ` T: ` | none | Clear prompt history |
117- | ` source-file ` | ` source ` | ` t:Fnqv ` | pane | Source a config file |
118- | ` start-server ` | ` start ` | (none) | none | Start server (usually implicit) |
119- | ` suspend-client ` | ` suspendc ` | ` t: ` | none | Suspend a client |
35+ | tmux Command | Why |
36+ | ---| ---|
37+ | ` command-prompt ` | Opens interactive prompt, blocks until user types |
38+ | ` confirm-before ` | Blocks waiting for y/n confirmation (even ` -y ` blocks in control mode) |
39+ | ` display-menu ` | Opens interactive menu, blocks until selection |
0 commit comments