Help output
Examples
Prompt
The prompt shows the current working directory:Command dispatch
The shell recognises four types of input: Bare commands — executed inside the sandbox as an implicitcontree run
with shell=True:
contree ... dispatches management commands through
the same argparse parser as the CLI:
Aliases — bare names intercepted for convenience:
ls and cat aliases fall back to running inside the sandbox when pending
files exist or when args contain flags or glob characters.Implicit run: shell-expression passthrough
Bare commands are forwarded to the sandbox as a single shell expression withshell=True. The entire input line is sent verbatim to the remote sh -c,
so operators like |, ;, &&, ||, >, < are interpreted by the
remote shell exactly as typed:
timeout builtin
The shell recognises timeout DURATION CMD... and sets the server-side
operation timeout to DURATION instead of running the GNU timeout binary
inside the sandbox. The kill is enforced by the API, not by a wrapper
process, so the operation surfaces a warning when the limit is hit:
DURATION is an integer or decimal optionally followed by a unit suffix:
If
DURATION is not a valid spec (for example timeout --kill-after=5 30 cmd
or timeout --help), the shell falls through and sends the line to the
sandbox unchanged, so the in-image timeout binary still handles advanced
flags.
When the limit is hit, the response carries state.timed_out=true and the
shell logs:
Tab completion
The shell provides context-aware tab completion for almost everything except bare (implicit run) commands. Press Tab to complete:
Path completions query the sandbox filesystem via the inspect API
and are cached persistently – subsequent completions for the same
directory are instant.
History search
Thehistory builtin takes an optional pattern and filters the
persisted history by case-insensitive substring:
session_key’s
entries. Up to 10,000 lines are kept; older lines are trimmed on save.
Line continuation
A trailing\ at the end of input triggers a > continuation prompt,
just like traditional shells:
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:
--env,--file,--disposable, and--detachrequire the explicitcontree runprefix. The operation timeout has a shorthand:timeout DURATION CMD...(see above). - 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 - Execute a command in the sandbox – the
runcommand used by implicit bare commands - file - Stage file edits for the next run – the
file editcommand behind editor aliases