| name | shell-executor |
| description | Execute shell commands through a normalized skill entrypoint with explicit cwd and timeout. Use when tasks require command-line operations (tests, build, git, search, file inspection) and you want script-based execution via get_skill_script instead of built-in ShellTools. |
Shell Executor
Run shell commands with one deterministic script:
Use this skill when you need CLI operations and want a standardized skill interface.
Quick Start
.venv/bin/python skills/shell-executor/scripts/run_shell.py \
--cmd "pwd && ls -la" \
--cwd . \
--timeout 600
Script Contract
- Required:
--cmd: shell command string
- Optional:
--cwd: working directory (default .)
--timeout: seconds before termination (default 600)
--shell: shell executable (default $SHELL or /bin/bash)
Exit code is propagated from the executed command.
Usage Rules
- Always pass the full command in one
--cmd argument.
- Always set
--cwd explicitly for reproducibility.
- Prefer small, composable commands over very long one-liners.
- Increase
--timeout for long tasks (tests, builds, downloads).
Security Sandbox (--base-dir)
Pass --base-dir <DIR> to restrict --cwd to the given directory:
.venv/bin/python skills/shell-executor/scripts/run_shell.py \
--base-dir /workspace \
--cmd "ls -la" --cwd /workspace
.venv/bin/python skills/shell-executor/scripts/run_shell.py \
--base-dir /workspace \
--cmd "ls -la" --cwd /etc
- Command content (
--cmd) is not restricted (matches Agno ShellTools behaviour).
- When
--base-dir is omitted, behaviour is unchanged (no restriction).