tmuxp shell#
usage: tmuxp shell [-h] [-S socket-path] [-L socket-name] [-c COMMAND]
                   [--best | --pdb | --code | --ptipython | --ptpython | --ipython | --bpython]
                   [--use-pythonrc] [--no-startup] [--use-vi-mode] [--no-vi-mode]
                   [session-name] [window-name]
Positional Arguments#
- session-name
- window-name
Named Arguments#
- -S
- pass-through for tmux -S 
- -L
- pass-through for tmux -L 
- -c
- instead of opening shell, execute python code in libtmux and exit 
- --best
- use best shell available in site packages - Default: “best” 
- --pdb
- use plain pdb 
- --code
- use stdlib’s code.interact() 
- --ptipython
- use ptpython + ipython 
- --ptpython
- use ptpython 
- --ipython
- use ipython 
- --bpython
- use bpython 
- --use-pythonrc
- load PYTHONSTARTUP env var and ~/.pythonrc.py script in –code - Default: False 
- --no-startup
- load PYTHONSTARTUP env var and ~/.pythonrc.py script in –code - Default: False 
- --use-vi-mode
- use vi-mode in ptpython/ptipython - Default: False 
- --no-vi-mode
- use vi-mode in ptpython/ptipython - Default: False 
Directly enter commands#
$ tmuxp shell -c 'python code'
 
Guide#
Launch into a python console with libtmux objects. Compare to django’s shell.
Automatically preloads current tmux server,
session, window
pane. Pass additional arguments to select a
specific one of your choice:
(Pdb) server
<libtmux.server.Server object at 0x7f7dc8e69d10>
(Pdb) server.sessions
[Session($1 your_project)]
(Pdb) session
Session($1 your_project)
(Pdb) session.name
'your_project'
(Pdb) window
Window(@3 1:your_window, Session($1 your_project))
(Pdb) window.name
'your_window'
(Pdb) window.panes
[Pane(%6 Window(@3 1:your_window, Session($1 your_project)))
(Pdb) pane
Pane(%6 Window(@3 1:your_window, Session($1 your_project)))
Supports PEP 553’s PYTHONBREAKPOINT and
compatible debuggers, for instance ipdb:
$ pip install --user ipdb
$ env PYTHONBREAKPOINT=ipdb.set_trace tmuxp shell
You can also pass in python code directly, similar to python -c, do
this via tmuxp -c:
$ tmuxp shell -c 'print(session.name); print(window.name)'
my_server
my_window
$ tmuxp shell my_server -c 'print(session.name); print(window.name)'
my_server
my_window
$ tmuxp shell my_server my_window -c 'print(session.name); print(window.name)'
my_server
my_window
$ tmuxp shell my_server my_window -c 'print(window.name.upper())'
MY_WINDOW
Assuming inside a tmux pane or one is attached on default server:
$ tmuxp shell -c 'print(pane.id); print(pane.window.name)'
%2
my_window
Shell detection#
tmuxp shell detects the richest shell available in your site packages, you can also pick your shell via args:
- --pdb: Use plain old- breakpoint()(python 3.7+) or- pdb.set_trace
- --code: Drop into- code.interact, accepts- --use-pythonrc
- --bpython: Drop into bpython
- --ipython: Drop into ipython
- --ptpython: Drop into ptpython, accepts- --use-vi-mode
- --ptipython: Drop into ipython + ptpython, accepts- --use-vi-mode