podspawnpodspawn

podspawn shell

Attach to a local machine with an interactive shell, or restart a stopped project-backed machine

Attaches to a running podspawn machine with an interactive shell. This is the primary way to connect to local machines.

Usage

podspawn shell <name>
podspawn shell <user@name>

Arguments

ArgumentRequiredDescription
nameYesMachine name to attach to
userNoUsername prefix, same user@host format as other commands

Examples

# Attach to a machine
$ podspawn shell dev
# Attach as a specific user
$ podspawn shell alice@backend

How it works

podspawn shell uses Docker exec to open a shell inside the container as your non-root user. No SSH is involved, so there is nothing to configure and no port conflicts to worry about. The shell prompt shows username@machinename (e.g., karthik@dev:~$).

This is the primary way to use podspawn locally. SSH is a separate feature for remote access, team servers, and IDE integration.

For project-backed machines created with podspawn create --project ..., shell also acts as the restart entrypoint. If the container was stopped with podspawn stop, podspawn recreates it from the saved workspace under ~/.podspawn/workspaces/<name>/, reruns on_start, and skips on_create once the machine's persisted initialization flag is set. If a previous on_create failed before initialization completed, shell retries it.

When you need SSH instead

podspawn shell covers the interactive terminal use case. For these features, you need a server-mode SSH setup:

FeatureshellSSH
Interactive terminalYesYes
SFTP / file transferNo (docker cp works)Yes
Port forwarding (-L, -R)NoYes
VS Code Remote SSHNoYes
Cursor RemoteNoYes
JetBrains GatewayNoYes
SSH agent forwardingNoYes

See the server commands docs for setting up SSH access.

How is this guide?

On this page

Morty Proxy This is a proxified and sanitized view of the page, visit original site.