Skip to main content

CLI commands

Everything in Eclipse Enclave runs through the enclave command. You run it from inside a git repository, and it starts the agent in an isolated container so its activity stays confined to the container and the worktree you mounted. By default the session works against the branch currently checked out in that folder. To run several agents in parallel without their changes colliding, give each one its own git worktree (see Run against an isolated worktree).

info

The CLI is still evolving, and more commands and flags are on the way. This page covers the core commands available today; it will grow as the surface stabilizes.

Overview

CommandWhat it does
enclaveStart a sandboxed session with the default agent in the current repository.
enclave --tool <name>Start a session with a specific agent.
enclave continueResume your previous session.
enclave psList the sessions that are currently running.
enclave --backgroundStart a session detached from your terminal.
enclave attach <container>Attach to a running session (default detach key: Ctrl-\).
enclave tools listList the available agents, built-in and installed.
enclave features listList the optional features you can enable.
enclave tools add <source>Install an agent from a git repository (same for features).

Start a session

Run enclave from inside a git repository to launch the default agent:

enclave

Enclave builds the environment, mounts the current folder into a fresh container, and starts the agent against the branch you have checked out. The agent runs at full autonomy with no confirmation prompts, and it stays contained: its filesystem access and outbound network are scoped to the sandbox.

Run against an isolated worktree

By default the agent works on your current branch in the current folder. To keep parallel sessions from interfering, or to keep an agent off your working branch, create a separate git worktree first and start the session there. This is plain git, no Enclave-specific setup required:

git worktree add ../myproject-agent -b agent/experiment
cd ../myproject-agent
enclave

Each worktree has its own working directory and branch, so agents in different worktrees never touch each other's changes. When you are done, review the branch and clean up with git worktree remove ../myproject-agent.

Pick a specific agent

Use --tool to choose which agent runs in the session. Enclave supports Claude Code, Codex, Theia AI, OpenCode, and more.

enclave --tool codex

Add your own agents and features

Agents and optional features ship as extensions: a directory with a spec.yaml that describes how the software is installed, how it authenticates, and which domains it may reach. List what you have, including anything you added yourself:

enclave tools list
enclave features list

Install one from any git repository, by owner/repo shorthand, a full clone URL, or a local path:

enclave tools add acme/kits
enclave features add ./my-kits

Enclave scans the repository for matching extensions and installs the one it finds. When there are several, it asks which one you meant, or you select with --name and take all of them with --all.

An extension runs code when the container is built and started, so Enclave shows what it can do before writing anything: whether it needs root, runs an install or startup script, widens the network allowlist, declares credentials, or seeds files into your project. --yes skips the confirmation, never the summary.

Refresh installed extensions from the source they came from, or remove them again:

enclave tools update # all of them, or name the ones you want
enclave tools remove my-agent

update refreshes the extension on your host. The image is rebuilt the next time you start a session that uses it.

Resume a previous session

Pick up where you left off. Auth, config, and history persist across restarts, so continue drops you back into your last session with its state intact.

enclave continue

List active sessions

See which sessions are running right now, so you can track parallel agents and choose one to inspect or resume.

enclave ps

The NAME column in the output is what you pass to enclave attach.

Run in the background and reattach

Long-running agents do not need to keep your terminal busy. Start a session with --background to detach it from your shell right after boot, then reattach when you want to check in or interact:

enclave --background # start detached (optionally pair with --name)
enclave ps # find the running session's container name
enclave attach <container> # reattach to its TTY

Combine --background with --name when you want a stable, memorable container name to reattach to:

enclave --background --name my-task
enclave attach my-task

Detach without stopping the session

Once attached, press Ctrl-\ (the docker attach default) to detach from the session while leaving the container and its agent running. You can then reattach later with enclave attach <container>.

To use a different detach key sequence, pass --detach-keys when attaching:

enclave attach my-task --detach-keys "ctrl-p,ctrl-q"

Pressing Ctrl-C inside the session sends an interrupt to the agent instead of detaching, so use the detach key when you want to leave the container running.

Next steps

New to Enclave? Start with Getting Started to install it and run your first session. Deeper guides for custom skills, extra mounts, and per-project network allowlists are on the way.