Skip to main content

Run any command in the cloud. Like tmux, but virtual.

Project description

tup

Run any command in the cloud. Close your laptop, keep running.

# Local
uv run python train.py

# Cloud (just prefix with tup)
tup uv run python train.py

Installation

pip install tup

Quick Start

# Configure (one-time)
tup config set api_url https://tup-api.your-account.workers.dev

# Run a command in the cloud
tup python train.py --epochs 100

# Detach and check later
tup --detach python train.py --epochs 1000
tup logs        # Stream logs
tup status      # Check job status

Usage

tup <command>                    # Run command, stream logs until done
tup --detach <command>           # Run in background, return job ID
tup --name "exp-v1" <command>    # Named job for easy reference

tup logs [job-id]                # Stream logs (default: latest job)
tup status                       # List all jobs
tup stop <job-id>                # Kill a running job
tup attach <job-id>              # Reattach to running job's logs

Options

--detach, -d          Run in background
--name, -n NAME       Job name
--instance TYPE       Instance size: lite, basic, standard-1, standard-2, standard-3, standard-4
--env KEY=VALUE       Pass environment variable (can repeat)
--timeout DURATION    Max runtime (e.g., "2h", "30m", "1d")

Configuration

Configuration is stored in ~/.tup/config.toml:

[default]
api_url = "https://tup-api.your-account.workers.dev"

[env]
# Environment variables passed to all jobs
WANDB_API_KEY = "your-key"
TINKER_API_KEY = "your-key"

Or use environment variables:

export TUP_API_URL="https://tup-api.your-account.workers.dev"

How It Works

  1. tup packages your current directory (respecting .gitignore)
  2. Uploads the bundle to Cloudflare R2
  3. Spins up a container with your command
  4. Streams logs back to your terminal
  5. Container runs until your command exits

Self-Hosting

Deploy your own tup backend:

cd worker
cp wrangler.example.toml wrangler.toml
# Edit wrangler.toml with your account details
pnpm install
pnpm run deploy

See CONTRIBUTING.md for architecture details.

Instance Types

Type vCPU Memory Disk ~Cost/hour
lite 1/16 256MB 2GB $0.002
basic 1/4 1GB 4GB $0.01
standard-1 1/2 4GB 8GB $0.04
standard-2 1 6GB 12GB $0.08
standard-3 2 8GB 16GB $0.16
standard-4 4 12GB 20GB $0.32

License

MIT

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

vmux_cli-0.2.0.tar.gz (56.1 kB view details)

Uploaded Source

Built Distribution

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

vmux_cli-0.2.0-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

Details for the file vmux_cli-0.2.0.tar.gz.

File metadata

  • Download URL: vmux_cli-0.2.0.tar.gz
  • Upload date:
  • Size: 56.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for vmux_cli-0.2.0.tar.gz
Algorithm Hash digest
SHA256 1455231ce4e403c246e71c7aeafb624a7ff74e1e2f6b325f9e5dcd58ec2e5192
MD5 2a6a7b8593e509d34128fe70cb2e00e3
BLAKE2b-256 aeec6eb53dd6148e83a2d85245141f52b730db9ba15194e6cf50549c4724354e

See more details on using hashes here.

File details

Details for the file vmux_cli-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: vmux_cli-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 19.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for vmux_cli-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7cbf56348dbb4735ad9bf0c1ca318f4a3fdfe085c0c5fb2132af89f8984eb004
MD5 d2e9017fc3a358d85339aa4b8eec4966
BLAKE2b-256 2c7c4dc6c82e81c36051bf815b1d5f15ec0fa21397c2186773869659bf8c2e1d

See more details on using hashes here.

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