An existing repository
On this page
Complete Install DevCapsule first, then run
the commands below from your repository's root directory on your host. Only
open repositories whose code you trust to run. The project folder is mounted
read-write inside the capsule. Commit or back up work before experimenting;
the capsule can also change the repository's .git directory.
A repository that already has .devcapsule/
When the repository already commits .devcapsule/devcapsule.toml and a
platform lock (.devcapsule/devcapsule.<platform>.lock), start directly with:
devcapsule project run
project run reads the shared manifest and lock and combines them with your
checkout and home settings. At an interactive terminal, it prompts for any
missing required decisions—such as your IDE choice (when the project neither
requires nor recommends one), required environment variables, or base/vendor
channel trust. Project host-access recommendations are shown with their reason
for your decision; they never grant themselves automatically (Granting and
withdrawing access).
Completing that first review registers this checkout path in your local
configuration home. If you clone or add a second worktree of the same
repository on the same computer, it receives its own checkout record and
isolated state directories without inheriting answers from the first checkout.
To assign a specific checkout record name before first launch (useful before
running pre-launch project config mutations on a second checkout), run:
devcapsule project checkout register my-feature-wt
checkout register creates a new record name only—it cannot rename an already
registered checkout.
To inspect what a checkout needs before answering anything, run devcapsule project config show or devcapsule project config check; neither writes a
record on disk. config check exits with status 3 when decisions remain
pending. Without .devcapsule/devcapsule.toml, all three commands exit with
status 2 and point you to devcapsule project init.
A repository without .devcapsule/
Pick the IDE and runtime capabilities your repository needs and initialize from
its root directory (--ide accepts either an IDE capability or a component
name):
| Stack and IDE | Initialize command |
|---|---|
| Python with PyCharm | devcapsule project init --require python --ide python-ide |
| JavaScript/TypeScript with VSCodium | devcapsule project init --require node --ide frontend-ide |
| Any stack with Visual Studio Code | devcapsule project init --require node --ide vscode-ide |
| Java with IntelliJ IDEA | devcapsule project init --require java --ide java-ide |
| Java with Eclipse IDE | devcapsule project init --require java --ide eclipse-ide |
| .NET with JetBrains Rider | devcapsule project init --require dotnet --ide dotnet-ide |
Complete any IDE sign-in or license setup inside the capsule. Add
--offer browser-automation when contributors run browser tests with Python Playwright and bundled Chromium (exposed via
DEVCAPSULE_PLAYWRIGHT_PYTHON and PLAYWRIGHT_BROWSERS_PATH).
Answer the initialization prompts described in Your first
session, then
launch with devcapsule project run.
DevCapsule supplies the base OS, toolchains, IDE, and optional coding agents or
Playwright. Project-specific package installs (npm ci, pip install, mvn test) and database migrations still follow your repository's README—run them
inside the IDE's terminal in the capsule. To declare version minimums,
environment inputs, and team recommendations, see What a project
declares.
What goes in Git versus what stays local
Commit .devcapsule/devcapsule.toml and .devcapsule/devcapsule.<platform>.lock
together to share the project's pinned base and required or offered tools.
Each checkout separately pins its personal IDE and added capabilities. Your host
authorizations, channel trust, private environment variables, agent sign-ins,
and IDE state stay in your local DevCapsule home outside the repository; see
Project versus personal.
Next: choose a coding agent or declare project needs.