Skip to main content

GPU training workflow automation with tmux

Project description

tmux-trainsh

tmux-trainsh is a terminal-first workflow runner for GPU and remote automation work.

README is the quick overview and landing page. The canonical command reference stays in the CLI:

train help
train --help

Those two commands are the canonical help entry points.

Install

Install from PyPI with uv:

uv tool install -U tmux-trainsh
train help

Or use the install script:

curl -LsSf https://raw.githubusercontent.com/binbinsh/tmux-trainsh/main/install.sh | bash

Main Command Groups

  • train recipe for recipe files, execution, status, logs, jobs, and schedules
  • train host for named SSH or Colab hosts
  • train vllm for managed remote vLLM servers and local batch clients
  • train storage for named storage backends
  • train transfer for local, host, and storage copies
  • train secrets for credentials
  • train config for config and tmux settings
  • train vast for Vast.ai instances
  • train runpod for RunPod Pods
  • train colab for one-off Colab tunnels
  • train pricing for exchange rates and cost estimates

Quick Start

train secrets set GITHUB_TOKEN
train secrets set VAST_API_KEY
train secrets set RUNPOD_API_KEY
train secrets set POE_API_KEY
train host add
train vllm serve gpu-box Qwen/Qwen2.5-32B-Instruct --gpus 0
train storage add

train recipe show nanochat
train recipe new demo --template remote-train
train exec nanochat
train host clone gpu-box https://github.com/org/private-repo.git /srv/private-repo
train recipe status --last

Bundled Examples

Current bundled examples: aptup, brewup, hello, nanochat

Recipe Authoring

Public imports:

from trainsh import Recipe, Host, RunpodHost, VastHost, HostPath, Storage, StoragePath, load_python_recipe, local
from trainsh import flash_attn_install_script

Main authoring model:

  • Recipe
  • Host / VastHost / RunpodHost / HostPath
  • Storage / StoragePath
  • host.tmux(...)
  • local.tmux(...)
  • tmux.install_flash_attn(...)
  • tmux.script(...)
  • recipe.storage_wait_count(...)

Runtime Guarantees

  • .pyrecipe recipes run as: load -> dependency graph from depends_on -> executor run
  • Airflow-like retry / timeout / callback / trigger-rule semantics remain supported
  • Supported executor aliases include sequential, thread_pool, process_pool, local, airflow, celery, dask, and debug
  • Kubernetes executor remains unsupported

Maintenance

To refresh this file after editing the canonical help catalog:

python3 scripts/sync_cli_docs.py

Regression commands:

python3 tests/test_commands.py
python3 -m unittest tests.test_runtime_persist tests.test_pyrecipe_runtime tests.test_runtime_semantics tests.test_provider_dispatch tests.test_ti_dependencies
uv run --with coverage python scripts/check_runtime_coverage.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tmux_trainsh-1.2026.120.tar.gz (267.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tmux_trainsh-1.2026.120-py3-none-any.whl (329.0 kB view details)

Uploaded Python 3

File details

Details for the file tmux_trainsh-1.2026.120.tar.gz.

File metadata

  • Download URL: tmux_trainsh-1.2026.120.tar.gz
  • Upload date:
  • Size: 267.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tmux_trainsh-1.2026.120.tar.gz
Algorithm Hash digest
SHA256 6b5ccaf04790c5ea0a2f22928e3d917a1321193f10c609731bc6c06280f8a035
MD5 fbd659b1336de2eda3f1e4f0c904fcbc
BLAKE2b-256 74aff950b64fc2d772d3ce06806137983addf754e9ab8722162b9a55b968ca71

See more details on using hashes here.

Provenance

The following attestation bundles were made for tmux_trainsh-1.2026.120.tar.gz:

Publisher: publish.yml on binbinsh/tmux-trainsh

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tmux_trainsh-1.2026.120-py3-none-any.whl.

File metadata

File hashes

Hashes for tmux_trainsh-1.2026.120-py3-none-any.whl
Algorithm Hash digest
SHA256 2a172c0798bc599784760e9e9c8112471cc9b98ae06baebb46c60adf5c626eee
MD5 c417912f3c0bf67a4cadf89f3f59eadd
BLAKE2b-256 c80d0b27365816263835abe66f663672e9f543be4c07772aac569ddb3ba8a39a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tmux_trainsh-1.2026.120-py3-none-any.whl:

Publisher: publish.yml on binbinsh/tmux-trainsh

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page