tmuxp

πŸ–₯️ Session manager for tmux, built on libtmux.

https://github.com/tmux-python/tmuxp

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • βœ“
    CITATION.cff file
    Found CITATION.cff file
  • βœ“
    codemeta.json file
    Found codemeta.json file
  • βœ“
    .zenodo.json file
    Found .zenodo.json file
  • β—‹
    DOI references
  • β—‹
    Academic publication links
  • βœ“
    Committers with academic emails
    3 of 76 committers (3.9%) from academic institutions
  • β—‹
    Institutional organization owner
  • β—‹
    JOSS paper metadata
  • β—‹
    Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary

Keywords

cli cli-utilities json python session-manager teamocil terminal tmux tmuxinator yaml

Keywords from Contributors

static-analysis unit-testing closember code-quality mesh static-code-analysis cryptocurrencies yolov5s pep8 fake
Last synced: 4 months ago · JSON representation ·

Repository

πŸ–₯️ Session manager for tmux, built on libtmux.

Basic Info
  • Host: GitHub
  • Owner: tmux-python
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage: https://tmuxp.git-pull.com/
  • Size: 8.01 MB
Statistics
  • Stars: 4,239
  • Watchers: 53
  • Forks: 232
  • Open Issues: 107
  • Releases: 188
Topics
cli cli-utilities json python session-manager teamocil terminal tmux tmuxinator yaml
Created over 12 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Citation

README.md

tmuxp

Session manager for tmux, which allows users to save and load tmux sessions through simple configuration files. Powered by libtmux.

Python Package Docs Build status Code Coverage License

New to tmux? The Tao of tmux is available on Leanpub and Amazon Kindle. Read and browse the book for free on the web.

Have some spare time? Help us triage and code review and the tracker. See [issue

290](https://github.com/tmux-python/tmuxp/discussions/290)!

Installation

pip:

console $ pip install --user tmuxp

Homebrew:

console $ brew install tmuxp

Debian / ubuntu:

console $ sudo apt install tmuxp

Nix:

console $ [[ -z $(which tmux) ]] && (nix-env -i tmux && nix-env -i tmuxp) || nix-env -i tmuxp

Find the package for your distro on repology: https://repology.org/project/tmuxp/versions

Developmental releases:

console pip install --user --upgrade --pre tmuxp

console pipx install --suffix=@next 'tmuxp' --pip-args '\--pre' --force

Then use tmuxp@next load [session].

Load a tmux session

Load tmux sessions via json and YAML, tmuxinator and teamocil style.

yaml session_name: 4-pane-split windows: - window_name: dev window layout: tiled shell_command_before: - cd ~/ # run as a first command in all panes panes: - shell_command: # pane no. 1 - cd /var/log # run multiple commands in this pane - ls -al | grep \.log - echo second pane # pane no. 2 - echo third pane # pane no. 3 - echo fourth pane # pane no. 4

Save as mysession.yaml, and load:

console tmuxp load ./mysession.yaml

Projects with .tmuxp.yaml or .tmuxp.json load via directory:

console tmuxp load path/to/my/project/

Load multiple at once (in bg, offer to attach last):

console tmuxp load mysession ./another/project/

Name a session:

console tmuxp load -s session_name ./mysession.yaml

simple and very elaborate config examples

User-level configurations

tmuxp checks for configs in user directories:

  • $TMUXP_CONFIGDIR, if set
  • $XDG_CONFIG_HOME, usually $HOME/.config/tmuxp/
  • $HOME/.tmuxp/

Load your tmuxp config from anywhere by using the filename, assuming ~/.config/tmuxp/mysession.yaml (or .json):

console $ tmuxp load mysession

See author's tmuxp configs and the projects' tmuxp.yaml.

Shell

New in 1.6.0:

tmuxp shell launches into a python console preloaded with the attached server, session, and window in libtmux objects.

```console $ tmuxp shell

(Pdb) server (Pdb) server.sessions Session($1 your_project) session Session($1 yourproject) (Pdb) session.name 'yourproject' (Pdb) window Window(@3 1:yourwindow, Session($1 yourproject)) (Pdb) window.name 'yourwindow' (Pdb) window.panes [Pane(%6 Window(@3 1:yourwindow, Session($1 yourproject))) (Pdb) pane Pane(%6 Window(@3 1:yourwindow, Session($1 your_project)) ```

Supports PEP 553 breakpoint() (including PYTHONBREAKPOINT). Also supports direct commands via -c:

```console $ tmuxp shell -c 'print(window.name)' my_window

$ tmuxp shell -c 'print(window.name.upper())' MY_WINDOW ```

Read more on tmuxp shell in the CLI docs.

Pre-load hook

Run custom startup scripts (such as installing project dependencies before loading tmux. See the bootstrap_env.py and before_script example

Load in detached state

You can also load sessions in the background by passing -d flag

Screenshot

image

Freeze a tmux session

Snapshot your tmux layout, pane paths, and window/session names.

console $ tmuxp freeze session-name

See more about freezing tmux sessions.

Convert a session file

Convert a session file from yaml to json and vice versa.

console $ tmuxp convert filename

This will prompt you for confirmation and shows you the new file that is going to be written.

You can auto confirm the prompt. In this case no preview will be shown.

console $ tmuxp convert -y filename $ tmuxp convert --yes filename

Plugin System

tmuxp has a plugin system to allow for custom behavior. See more about the Plugin System.

Debugging Helpers

The load command provides a way to log output to a log file for debugging purposes.

console $ tmuxp load --log-file <log-file-name> .

Collect system info to submit with a Github issue:

```console

$ tmuxp debug-info

environment: system: Linux arch: x86_64

... so on

```

Docs / Reading material

See the Quickstart.

Documentation homepage (also in δΈ­ζ–‡)

Want to learn more about tmux itself? Read The Tao of Tmux online.

Donations

Your donations fund development of new features, testing and support. Your money will go directly to maintenance and development of the project. If you are an individual, feel free to give whatever feels right for the value you get out of the project.

See donation options at https://tony.sh/support.html.

Project details

Owner

  • Name: python utilities for tmux
  • Login: tmux-python
  • Kind: organization
  • Email: team@git-pull.com

permissively licensed. for the public good.

Citation (CITATION.cff)

cff-version: 1.2.0
message: >-
  If you use this software, please cite it as below.
  NOTE: Change "x.y" by the version you use. If you are unsure about which version
  you are using run: `pip show tmuxp`."
authors:
- family-names: "Narlock"
  given-names: "Tony"
  orcid: "https://orcid.org/0000-0002-2568-415X"
title: "tmuxp"
type: software
version: x.y
url: "https://tmuxp.git-pull.com"

GitHub Events

Total
  • Issues event: 14
  • Watch event: 212
  • Delete event: 3
  • Issue comment event: 46
  • Pull request review comment event: 4
  • Pull request review event: 11
  • Pull request event: 7
  • Fork event: 5
  • Create event: 2
Last Year
  • Issues event: 14
  • Watch event: 212
  • Delete event: 3
  • Issue comment event: 46
  • Pull request review comment event: 4
  • Pull request review event: 11
  • Pull request event: 7
  • Fork event: 5
  • Create event: 2

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 3,978
  • Total Committers: 76
  • Avg Commits per committer: 52.342
  • Development Distribution Score (DDS): 0.091
Past Year
  • Commits: 202
  • Committers: 3
  • Avg Commits per committer: 67.333
  • Development Distribution Score (DDS): 0.01
Top Committers
Name Email Commits
Tony Narlock t****y@g****m 3,615
pyup-bot g****t@p****o 103
Joseph Flinn j****n@g****m 57
Ricardo Oliva r****a@g****m 30
dependabot-preview[bot] 2****] 16
Dennis Burke d****e@p****t 15
ThiefMaster a****n@p****t 10
Will Ockmore w****e@g****m 9
Nikos Vasilas v****s@g****m 6
Sebastian Stammler s****r@c****e 6
Kirk MacTavish k****h@m****a 5
dependabot[bot] 4****] 5
pre-commit-ci[bot] 6****] 4
Thomas Ballinger t****r@g****m 4
Paul Morelle p****l@s****m 4
Domas Monkus d****s@m****t 4
Kevin Stilwell k****l@g****m 3
Misha Wolfson m****a@g****m 3
Badr BADRI 5****s 3
Stratos Moros s****s@i****r 3
Tim Gates t****s@i****m 2
Shanshi Shi s****i@g****m 2
Ruslan Makhmatkhanov rm@F****g 2
Roberto Solares b****r@g****m 2
Rafael Bodill j****i@g****m 2
Martin Bukatovic m****c@g****m 2
Justin Findlay j****n@f****e 2
JorisE i****o@j****l 2
Heinrich Kruger h****t@k****v 2
GrΓ©gory Salvan a****m@g****m 2
and 46 more...

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 86
  • Total pull requests: 122
  • Average time to close issues: 8 months
  • Average time to close pull requests: 13 days
  • Total issue authors: 57
  • Total pull request authors: 14
  • Average comments per issue: 4.97
  • Average comments per pull request: 1.93
  • Merged pull requests: 91
  • Bot issues: 0
  • Bot pull requests: 15
Past Year
  • Issues: 15
  • Pull requests: 25
  • Average time to close issues: about 1 hour
  • Average time to close pull requests: 2 days
  • Issue authors: 12
  • Pull request authors: 3
  • Average comments per issue: 0.4
  • Average comments per pull request: 1.6
  • Merged pull requests: 18
  • Bot issues: 0
  • Bot pull requests: 4
Top Authors
Issue Authors
  • tony (20)
  • dvzrv (5)
  • deliciouslytyped (3)
  • oblitum (2)
  • jpcirrus (2)
  • bedge (2)
  • kocv59 (2)
  • von (1)
  • Ilyes512 (1)
  • geraldh (1)
  • cblegare (1)
  • markalanevans (1)
  • xeor (1)
  • 0xhunster (1)
  • trombonehero (1)
Pull Request Authors
  • tony (88)
  • dependabot[bot] (25)
  • zappolowski (3)
  • isandesh7 (2)
  • MiLk (2)
  • heindsight (2)
  • soraxas (2)
  • jpcirrus (1)
  • GBlackburnMicrosoft (1)
  • jcromero (1)
  • kianmeng (1)
  • arjunnn (1)
  • ChristopherHarwell (1)
  • nvasilas (1)
Top Labels
Issue Labels
bug (12) stale (4) pinned (3) new-feature (2) documentation (2) cannot-reproduce (2) p4-important ❗ (2) WorkspaceBuilder (2) contribution welcome (2) plugin? (2) p5-urgent πŸ”₯ (1) enhancement (1) duplicate (1) question (1) need-comments (1)
Pull Request Labels
dependencies (25) python (2) github_actions (2)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 48,898 last-month
  • Total docker downloads: 775
  • Total dependent packages: 2
    (may contain duplicates)
  • Total dependent repositories: 93
    (may contain duplicates)
  • Total versions: 439
  • Total maintainers: 1
pypi.org: tmuxp

Session manager for tmux, which allows users to save and load tmux sessions through simple configuration files.

  • Versions: 252
  • Dependent Packages: 2
  • Dependent Repositories: 93
  • Downloads: 48,898 Last month
  • Docker Downloads: 775
Rankings
Stargazers count: 1.3%
Dependent repos count: 1.5%
Docker downloads count: 2.0%
Average: 2.3%
Downloads: 2.3%
Dependent packages count: 3.2%
Forks count: 3.4%
Maintainers (1)
Last synced: 5 months ago
proxy.golang.org: github.com/tmux-python/tmuxp
  • Versions: 187
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.5%
Average: 6.7%
Dependent repos count: 7.0%
Last synced: 5 months ago

Dependencies

.github/workflows/codeql-analysis.yml actions
  • actions/checkout v3 composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/autobuild v2 composite
  • github/codeql-action/init v2 composite
.github/workflows/docs.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • dorny/paths-filter v2.7.0 composite
  • jakejarvis/cloudflare-purge-action v0.3.0 composite
  • jakejarvis/s3-sync-action master composite
.github/workflows/tests.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
  • pypa/gh-action-pypi-publish release/v1 composite
poetry.lock pypi
  • aafigure 0.6 develop
  • alabaster 0.7.12 develop
  • attrs 22.2.0 develop
  • babel 2.11.0 develop
  • beautifulsoup4 4.11.1 develop
  • black 22.12.0 develop
  • certifi 2022.12.7 develop
  • charset-normalizer 2.1.1 develop
  • click 8.1.3 develop
  • codecov 2.1.12 develop
  • coverage 7.0.4 develop
  • docutils 0.19 develop
  • exceptiongroup 1.1.0 develop
  • flake8 3.9.2 develop
  • flake8 5.0.4 develop
  • flake8-bugbear 22.12.6 develop
  • flake8-comprehensions 3.10.1 develop
  • furo 2022.12.7 develop
  • gp-libs 0.0.1a17 develop
  • idna 3.4 develop
  • imagesize 1.4.1 develop
  • importlib-metadata 4.13.0 develop
  • iniconfig 2.0.0 develop
  • isort 5.11.4 develop
  • jinja2 3.1.2 develop
  • livereload 2.6.3 develop
  • markdown-it-py 2.1.0 develop
  • markupsafe 2.1.1 develop
  • mccabe 0.6.1 develop
  • mccabe 0.7.0 develop
  • mdit-py-plugins 0.3.3 develop
  • mdurl 0.1.2 develop
  • mypy 0.991 develop
  • mypy-extensions 0.4.3 develop
  • myst-parser 0.18.1 develop
  • packaging 23.0 develop
  • pathspec 0.10.3 develop
  • pillow 9.4.0 develop
  • platformdirs 2.6.2 develop
  • pluggy 1.0.0 develop
  • pycodestyle 2.9.1 develop
  • pycodestyle 2.7.0 develop
  • pyflakes 2.5.0 develop
  • pyflakes 2.3.1 develop
  • pygments 2.14.0 develop
  • pytest 7.2.0 develop
  • pytest-cov 4.0.0 develop
  • pytest-mock 3.10.0 develop
  • pytest-rerunfailures 10.3 develop
  • pytest-watcher 0.2.6 develop
  • pytz 2022.7 develop
  • requests 2.28.1 develop
  • six 1.16.0 develop
  • snowballstemmer 2.2.0 develop
  • soupsieve 2.3.2.post1 develop
  • sphinx 5.3.0 develop
  • sphinx-argparse 0.4.0 develop
  • sphinx-autobuild 2021.3.14 develop
  • sphinx-autodoc-typehints 1.20.1 develop
  • sphinx-basic-ng 1.0.0b1 develop
  • sphinx-copybutton 0.5.1 develop
  • sphinx-inline-tabs 2021.3.28b7 develop
  • sphinxcontrib-applehelp 1.0.2 develop
  • sphinxcontrib-devhelp 1.0.2 develop
  • sphinxcontrib-htmlhelp 2.0.0 develop
  • sphinxcontrib-jsmath 1.0.1 develop
  • sphinxcontrib-qthelp 1.0.3 develop
  • sphinxcontrib-serializinghtml 1.1.5 develop
  • sphinxext-opengraph 0.7.5 develop
  • sphinxext-rediraffe 0.2.7 develop
  • tomli 2.0.1 develop
  • tornado 6.2 develop
  • typed-ast 1.5.4 develop
  • types-colorama 0.4.15.4 develop
  • types-docutils 0.19.1.1 develop
  • types-pyyaml 6.0.12.2 develop
  • typing-extensions 4.4.0 develop
  • urllib3 1.26.13 develop
  • watchdog 2.2.1 develop
  • zipp 3.11.0 develop
  • colorama 0.4.6
  • libtmux 0.19.1
  • pyyaml 6.0
pyproject.toml pypi
  • aafigure >=0.6 develop
  • black * develop
  • codecov * develop
  • coverage * develop
  • docutils * develop
  • flake8 --- - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "*" python: "^3.7" - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: ">=5" python: "^3.8" develop
  • flake8-bugbear * develop
  • flake8-comprehensions * develop
  • furo * develop
  • gp-libs 0.0.1a17 develop
  • importlib-metadata <5 develop
  • isort * develop
  • mypy * develop
  • myst_parser >=0.18.1 develop
  • pillow * develop
  • pytest * develop
  • pytest-cov * develop
  • pytest-mock * develop
  • pytest-rerunfailures * develop
  • pytest-watcher * develop
  • sphinx * develop
  • sphinx-argparse * develop
  • sphinx-autobuild * develop
  • sphinx-autodoc-typehints * develop
  • sphinx-copybutton * develop
  • sphinx-inline-tabs * develop
  • sphinxext-opengraph * develop
  • sphinxext-rediraffe * develop
  • types-PyYAML * develop
  • types-colorama * develop
  • types-docutils * develop
  • PyYAML ^6.0
  • colorama >=0.3.9
  • libtmux ~0.19.1
  • python ^3.7
tests/fixtures/pluginsystem/plugins/tmuxp_test_plugin_awf/pyproject.toml pypi
  • python ^3.6
  • tmuxp ^1.7.0
tests/fixtures/pluginsystem/plugins/tmuxp_test_plugin_bs/pyproject.toml pypi
  • python ^3.6
  • tmuxp ^1.7.0
tests/fixtures/pluginsystem/plugins/tmuxp_test_plugin_bwb/pyproject.toml pypi
  • python ^3.6
  • tmuxp ^1.7.0
tests/fixtures/pluginsystem/plugins/tmuxp_test_plugin_fail/pyproject.toml pypi
  • python ^3.6
  • tmuxp ^1.7.0
tests/fixtures/pluginsystem/plugins/tmuxp_test_plugin_owc/pyproject.toml pypi
  • python ^3.6
  • tmuxp ^1.7.0
tests/fixtures/pluginsystem/plugins/tmuxp_test_plugin_r/pyproject.toml pypi
  • python ^3.6
  • tmuxp ^1.7.0