devpod
Create remote development environments
TLDR
Add a provider such as Docker or Kubernetes
List all available providers
Start a workspace from a GitHub repository with a specific IDE
Start a workspace from a local directory
Recreate an existing workspace
Reset a workspace to a clean state
Add a custom provider from a GitHub repository
SYNOPSIS
devpod [command] [flags]
PARAMETERS
up
Starts or creates a new DevPod based on a configuration, making it ready for development.
down
Stops a running DevPod, pausing its resources but not deleting it.
connect
Connects to a running DevPod, typically opening it in an IDE or providing shell access.
delete
Deletes one or more DevPods, freeing up all associated resources.
list
Lists all existing DevPods and their current status across configured providers.
build
Builds a custom DevPod image from a DevContainer configuration or Dockerfile, useful for pre-building.
inspect
Provides detailed information and metadata about a specific DevPod.
provider
Manages DevPod providers, allowing configuration of Kubernetes, Docker, or other backends.
--help
Displays help information for the devpod command or a specific subcommand.
--version
Prints the installed devpod client version.
--debug
Enables verbose debug logging output for troubleshooting.
--provider
Specifies the DevPod provider to use for the command (e.g., 'kubernetes', 'docker').
DESCRIPTION
devpod is an open-source command-line interface (CLI) tool designed to simplify the creation and management of remote development environments. Developed by Loft Labs, it enables developers to quickly spin up consistent, reproducible, and isolated workspaces in the cloud, on a local machine, or on a remote server.
Utilizing technologies like Kubernetes and Docker, devpod allows users to define their development environment using industry-standard configurations like devcontainer.json (familiar from VS Code Dev Containers) or a simple Dockerfile. This ensures that every team member works within an identical setup, eliminating "it works on my machine" issues and streamlining onboarding for new developers.
devpod supports various providers, including local Docker, remote Kubernetes clusters (via vcluster), and SSH. It integrates seamlessly with popular IDEs and editors, allowing developers to connect to their remote workspace as if it were local. Its core philosophy revolves around providing ephemeral, on-demand development environments that can be started, stopped, and deleted as needed, optimizing resource usage and enhancing developer productivity.
CAVEATS
devpod requires either Docker or a Kubernetes cluster to operate, as it leverages these technologies for environment isolation and resource management. It is not a standard Linux utility and must be installed separately. Users must define their environment using a devcontainer.json file or a Dockerfile, which requires some initial setup. Network connectivity is crucial for connecting to remote DevPods. While it aims for reproducibility, external dependencies not defined in the container might still lead to inconsistencies.
IDE INTEGRATION
devpod is designed to integrate with popular Integrated Development Environments (IDEs) and code editors, such as VS Code. Once a DevPod is running, users can often connect to it directly from their IDE, enabling a seamless development experience where code execution, debugging, and terminal access occur remotely within the DevPod.
DEV CONTAINER SPECIFICATION
A core feature of devpod is its support for the Dev Container Specification. This open standard allows developers to define a container-based development environment, including tools, runtimes, and dependencies, in a portable and reproducible manner using a devcontainer.json file. This ensures that the development setup is consistent for everyone using the project.
HISTORY
devpod was developed by Loft Labs, a company known for its work in Kubernetes tooling, specifically vcluster (virtual Kubernetes clusters). It emerged from the growing need for standardized, ephemeral development environments in cloud-native workflows. The project gained traction in the open-source community, particularly with the rise of remote development and the adoption of Dev Containers as a common standard for defining development setups. Its development focuses on simplifying the onboarding experience for developers and ensuring environmental consistency across teams, building upon existing containerization and orchestration technologies.