Commands

ecluse init     [--mode container|host|hybrid] [--explain] [--yes] [--quiet]
ecluse up       <slug> [--branch <name>] [--watch] [--json] [--reuse-worktree] [--port <name>=<value>] [--quiet]
ecluse down     <slug> [--keep-volumes] [--keep-branch] [--keep-worktree] [--quiet]
ecluse ls       [--json]
ecluse shell    <slug>
ecluse env      [<slug>]
ecluse validate [--ports] [--quiet]
ecluse shutdown [--keep-volumes] [--keep-worktrees] [--quiet]

ecluse init

Detects the right mode for your repo and writes .ecluse.toml. Runs interactively — shows the detected mode and asks for confirmation before writing.

FlagDescription
--mode container|host|hybridOverride detected mode
--explainShow detection signals
--yesSkip confirmation prompt
--quietSuppress step output

ecluse up

Creates a git worktree, allocates a slot, starts services, and writes .env.ecluse. Returns the worktree path and all env vars.

FlagDescription
--branch <name>Use a specific branch name instead of the slug
--watchStream service logs after startup
--jsonOutput worktree path + env vars as JSON
--reuse-worktreeReuse an existing worktree instead of creating one
--port <name>=<value>Pin a service to a specific port for this session
--quietSuppress step output (implied by --json)

ecluse down

Tears down services, frees the slot, and removes the worktree.

FlagDescription
--keep-volumesPreserve named Docker volumes
--keep-branchKeep the git branch (no-op — branches are never deleted by ecluse)
--keep-worktreeKeep the worktree directory on disk
--quietSuppress step output

ecluse shutdown

Tears down all active sessions at once. Equivalent to running ecluse down on every session.

FlagDescription
--keep-volumesPreserve named Docker volumes
--keep-worktreesKeep worktree directories on disk
--quietSuppress step output

ecluse shell

Drops into the worktree with all .env.ecluse variables loaded in the shell environment. Interactive use only.

If the session has a tmux session (i.e. process_manager = "tmux" was set at ecluse up time), this attaches to that session instead of spawning a new shell — you'll see the running service windows directly.

ecluse env

Prints the session's environment variables as JSON. Includes worktree_path and all ECLUSE_* vars.

ecluse ls

Lists active sessions. Use --json for machine-readable output.

ecluse validate

Validates port ranges in .ecluse.toml and checks for gaps or collisions. Use --ports to preview the full port allocation table across all slots. Also checks that the configured process_manager binary is installed (e.g. tmux or nohup).

FlagDescription
--portsPrint the full port allocation table for all slots
--quietSuppress step output