shell¶
Start an interactive REPL for managing sessions and running sandbox commands.
Help output¶
Examples¶
# Start the shell
contree shell
# Start with a specific output format
contree -f json shell
# Start with a named profile
contree --profile=personal shell
Prompt¶
The prompt shows the current working directory:
contree:/> apt-get update -qq
contree:/app> python main.py
Command dispatch¶
The shell recognises four types of input:
Bare commands — executed inside the sandbox as an implicit contree run
with shell=True:
apt-get install -y curl
echo hello && ls /
Prefixed commands — contree ... dispatches management commands through
the same argparse parser as the CLI:
contree ls /etc
contree session branch experiment
contree run -e DEBUG=1 -- ./app
Builtins — handled locally by the shell:
Builtin |
Description |
|---|---|
|
Change working directory ( |
|
Print working directory |
|
Show command history (optional limit) |
|
Show help (optionally for a specific command) |
|
Clear the terminal screen |
|
Change output format (or show current if no argument) |
|
Exit the shell (also Ctrl-D) |
Aliases — bare names intercepted for convenience:
Alias |
Equivalent |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Note
ls and cat aliases fall back to running inside the sandbox when pending
files exist or when args contain flags or glob characters.
Tab completion¶
The shell provides context-aware tab completion for almost everything except bare (implicit run) commands. Press Tab to complete:
Context |
What completes |
|---|---|
Empty prompt |
All commands, aliases, and builtins |
|
Subcommand names |
|
Flags for that command |
|
Long flags for that command |
|
Sandbox file paths |
|
Sandbox directory paths (dirs only) |
|
Sandbox file paths |
|
Image UUIDs and |
|
Image UUIDs and |
|
Operation UUIDs |
|
Operation UUIDs |
|
Branch names |
|
Branch names |
|
Session keys |
|
Sandbox file paths |
|
All command and alias names |
Path completions query the sandbox filesystem via the inspect API and are cached persistently – subsequent completions for the same directory are instant.
Line continuation¶
A trailing \ at the end of input triggers a > continuation prompt,
just like traditional shells:
contree:/> ls \
> -alh \
> /sys
Backslash-newline pairs are removed to join the lines into a single
command (ls -alh /sys). Unclosed quotes also trigger continuation,
preserving the newline inside the quoted string.
Limitations¶
No global flags on commands:
--token,--url,--log-levelare not available inside the shell.No local pipes or redirects:
|,>,<are passed as-is to the sandbox (works for remote commands, not for contree output).No job control: No
&,bg,fg, or Ctrl-Z. Usecontree run -dfor background tasks.Bare commands use defaults: No way to pass
--timeout,--env, or--filewithout the explicitcontree runprefix.No
~or glob expansion: Passed as-is to the sandbox.Cannot nest shells: Running
contree shellinside a shell is not supported.
See also¶
Interactive Shell – full tutorial on using the interactive shell
run – the
runcommand used by implicit bare commandsfile – the
file editcommand behind editor aliases