Skip to main content

devlaunch

A streamlined CLI for devpod with intuitive autocomplete and fzf fuzzy selection.

Continuous Integration Status

Ci Codecov GitHub issues GitHub pull-requests merged GitHub release PyPI Conda License Python Pixi Badge

Installation

Pixi (Recommended)

pixi global install --channel conda-forge --channel https://prefix.dev/blooop devlaunch

This installs devlaunch along with devpod and all dependencies automatically.

Pip

pip install devlaunch

Note: When using pip, you must install devpod separately.

Shell Completions

After installation, set up shell completions:

dl --install
source ~/.bashrc  # or restart your terminal

Usage

dl                               # Interactive workspace selector (fzf)
dl <user/repo>                   # Start workspace and attach shell
dl <user/repo> <cmd>             # Run workspace command (stop, code, etc.)
dl <user/repo> -- <command>      # Run shell command in workspace

Workspace Sources

dl myproject                     # Existing workspace by name
dl user/repo                     # Create from GitHub repo
dl user/repo@branch              # Create from specific branch
dl ./path                        # Create from local path

Workspace Commands

Command Description
dl <user/repo> stop Stop the workspace
dl <user/repo> rm, prune Delete the workspace
dl <user/repo> code Open in VS Code
dl <user/repo> restart Stop and start (no rebuild)
dl <user/repo> recreate Recreate container
dl <user/repo> reset Clean slate (remove all, recreate)
dl <user/repo> -- <command> Run shell command in workspace

Options

Option Description
--devcontainer <variant|path> Use a non-default devcontainer.json. A bare name means .devcontainer/<name>/devcontainer.json. Stored with the workspace, so pass it once.

Projects with demanding devcontainers — several variants, compose sidecars, or a host-side initializeCommand that has to tell branch workspaces apart — are covered in docs/devcontainer-projects.md.

Global Commands

Command Description
dl --ls List all workspaces
dl --install Install shell completions
dl --purge [-y] Remove all devlaunch data
dl --prune-worktrees [days] Remove unused worktrees (default: 30 days)
dl --refresh Refresh completion cache
dl --help, -h Show this help
dl --version Show version

Examples

dl                               # Select workspace with fzf
dl devpod                        # Open existing workspace
dl loft-sh/devpod                # Create from GitHub
dl blooop/devlaunch@main         # Create from specific branch
dl ./my-project                  # Create from local folder
dl blooop/devlaunch code         # Open in VS Code
dl blooop/devlaunch -- make test # Run command in workspace
dl blooop/devlaunch stop         # Stop workspace

Features

  • Fuzzy Selection: When called without arguments, uses fzf for interactive workspace selection
  • Smart Completion: Tab completion for workspaces, GitHub repos (owner/repo format), and paths
  • GitHub Shorthand: Use owner/repo instead of full URLs - automatically expands to github.com/owner/repo
  • Branch Support: Specify branches with owner/repo@branch syntax
  • Fast Autocomplete: Completion cache for ~3ms response time (vs ~700ms without cache)

Worktree Backend

For git repositories, devlaunch uses an efficient worktree backend by default:

  • Efficient Storage: Repos are cloned once to ~/.cache/devlaunch/repos/owner/repo/, then git worktrees are created for each branch
  • Shared Git Objects: All branches share git objects, saving disk space
  • Lazy Fetch: Remote updates are only fetched if the configured interval has elapsed (default: 1 hour)

Container Sharing Mode

Use --shared to share a single container across multiple branches of the same repo:

dl --shared owner/repo@branch1  # Creates container "owner-repo"
dl --shared owner/repo@branch2  # Reuses "owner-repo" container

Pre-warming

Use --warm to prepare a workspace without attaching a shell:

dl --warm owner/repo@branch  # Creates container in background

Backend Selection

dl --backend devpod owner/repo  # Force legacy DevPod backend
DEVLAUNCH_BACKEND=devpod dl owner/repo  # Use environment variable

Shell Completion

After running dl --install, you get intelligent tab completion:

  • Workspace names from your devpod list
  • Known GitHub owners and repositories from your workspaces
  • File/directory paths when starting with ./, /, or ~
  • All global flags (--ls, --install, etc.) and workspace commands

Development

This project uses pixi for environment management.

# Run tests
pixi run test

# Run full CI suite
pixi run ci

# Format and lint
pixi run style

Download files

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

Source Distribution

devlaunch-0.0.7.tar.gz (30.9 kB view details)

Uploaded Source

Built Distribution

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

devlaunch-0.0.7-py2.py3-none-any.whl (34.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file devlaunch-0.0.7.tar.gz.

File metadata

  • Download URL: devlaunch-0.0.7.tar.gz
  • Upload date:
  • Size: 30.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for devlaunch-0.0.7.tar.gz
Algorithm Hash digest
SHA256 5d7a616207d937fc488bc561c2a6b0a965eb8d59bc75aa118faaa4f7e57a1aa6
MD5 d3ed4903c6a19fe77dc119732fc6c24d
BLAKE2b-256 8448601cdbf37a78a68e9076f88d709d0120eacdf8cf7961cea7f8cd9a284a7c

See more details on using hashes here.

File details

Details for the file devlaunch-0.0.7-py2.py3-none-any.whl.

File metadata

  • Download URL: devlaunch-0.0.7-py2.py3-none-any.whl
  • Upload date:
  • Size: 34.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for devlaunch-0.0.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b2d0f4225a40f53e3aa0303c9f10fa7448cc8b7f839ed345873a408c2b34b313
MD5 671170ef31e66f52248f5da2a3770d56
BLAKE2b-256 b6334286643aac0441b61c0a7d3e94df3a0d2a2954eee42235110244accffbc1

See more details on using hashes here.

Release history Release notifications | RSS feed

0.25.0

1 file

0.24.0

1 file

0.23.0

1 file

0.22.0

1 file

0.21.0

1 file

0.20.0

1 file

0.19.1

1 file

0.19.0

1 file

0.18.0

1 file

0.17.0

1 file

0.16.0

1 file

0.15.0

1 file

0.14.0

1 file

0.13.0

1 file

0.12.0

1 file

0.11.0

1 file

0.10.0

1 file

0.9.0

1 file

0.8.0

1 file

0.7.3

1 file

0.7.2

1 file

0.7.1

1 file

0.7.0

1 file

0.6.1

1 file

0.6.0

1 file

0.5.0

1 file

0.4.1

1 file

0.4.0

1 file

0.3.3

1 file

0.3.2

1 file

0.3.1

1 file

0.3.0

1 file

0.2.2

1 file

0.2.1

1 file

0.2.0

1 file

0.1.2

1 file

0.1.1

1 file

0.1.0

1 file

0.0.29

2 files

0.0.28

2 files

0.0.27

2 files

0.0.26

2 files

0.0.25

2 files

0.0.24

2 files

0.0.23

2 files

0.0.22

2 files

0.0.21

2 files

0.0.20

2 files

0.0.19

2 files

0.0.18

2 files

0.0.17

2 files

0.0.16

2 files

0.0.15

2 files

0.0.14

2 files

0.0.13

2 files

0.0.12

2 files

0.0.11

2 files

0.0.10

2 files

0.0.9

2 files

0.0.8

2 files

This release

0.0.7 This release

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page