
Packnplay
https://github.com/obra/packnplay- Category
- Developer Tools
- Rank
- No. 1117Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- obra
- GitHub
- 174 stars
- Latest release
- v1.3.0
- Date
About
Run any command in a sandboxed Docker container with automated git worktree and dev-container management — safe playground for coding agents.
What it does
Packnplay coordinates coding sessions by pairing a branch-specific checkout with a container environment. It can reuse an existing session, attach to it, expose ports, pass selected environment variables, and mount chosen credentials or agent configuration. Projects may supply their own development-container setup; otherwise Packnplay uses a configurable default image.
Why it's ranked here
Packnplay is a practical convenience layer for developers already committed to containers and Git worktrees. Its strongest case is reducing setup friction across repeated agent sessions, including ports, credentials, users, and development-container lifecycle steps. The verdict is mixed for security-sensitive use because the project explicitly limits its protection to container isolation and provides neither activity introspection nor access control.
What's good
Worktree creation keeps concurrent agent changes separate without forcing manual checkout management. Container-user detection respects project configuration, caches results by image, and interrogates unfamiliar images before falling back to root. Credential mounting is selective per invocation. AWS handling covers static credentials, SSO-related files, and external credential providers. Existing containers can be reattached by worktree.
Tradeoffs
This is isolation plumbing, not an agent policy system. Mounted credentials and writable agent configuration remain available inside the container when enabled. AWS credentials obtained from an external process are captured when the container starts and may expire without refresh. The default workflow requires Docker or Podman, while native macOS sandboxing is outside scope. Skipping worktrees also places the current directory directly into the session.
How to use it well
Use Packnplay when several coding agents or branches need repeatable, independently attachable development sessions. Keep credential mounts narrowly scoped, prefer project-owned development-container definitions, and expose only required ports and variables. It fits local agent experimentation and parallel feature work. It does not replace permission rules, behavioral auditing, activity inspection, or native host sandboxing.
Technical notes+
main.go delegates to the Cobra command package. pkg/git/worktree.go creates XDG-based worktrees and sanitizes branch names. pkg/docker/client.go detects Docker or Podman, caches progress-flag support, and notes that Apple Container detection is disabled despite retaining argument translation code. pkg/agents/agent.go registers nine agent adapters, while README.md claims first-class support for seven. pkg/aws/credentials.go runs a configured credential_process through sh -c with a 30-second timeout and parses its JSON response. pkg/compose/compose.go supports Compose startup, service lookup, and teardown with volume removal. pkg/runner/e2e_test.go contains Docker-dependent end-to-end tests that skip when Docker is unavailable or short mode is active.
Observed
- Primary language
- Go
- Packaging and installation
- Homebrew formula, Go install command, and source build through Make
- Interface
- Command-line application with run, attach, list, stop, and configuration workflows
- Container runtimes
- Automatically detects Docker or Podman; OrbStack uses the Docker CLI context
- Platform surface
- Homebrew installation is documented for macOS and Linux; macOS Keychain integration is documented
- Testing structure
- Docker-dependent end-to-end tests are present under the runner package
- License
- No license is stated in the supplied repository text
Read from README.md, go.mod, Makefile, main.go, pkg/agents/agent.go, pkg/git/worktree.go, pkg/progress/bar.go, pkg/config/config.go, pkg/docker/client.go, pkg/aws/credentials.go, pkg/compose/compose.go, pkg/runner/e2e_test.go, pkg/container/labels.go, pkg/container/naming.go, pkg/progress/tracker.go.
What it can do
Run commands in sandboxed environment
Command line instructions → Command execution results in isolated container
Create automated git worktrees
Git repository → Isolated working directory for development
Manage development containers
Development environment configuration → Configured Docker container for coding
Provide safe coding playground
Code and development tasks → Isolated environment for testing code safely
Execute coding agent operations
Automated coding scripts or AI agents → Safe execution environment for autonomous code operations
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.