Skip to main content

Type

shell

Variants

Safe Commands, Full Access, Read Only
Purpose: The Shell skill enables agents to execute shell commands on the worker system with fine-grained control over which commands are permitted.

Common Use Cases

Running system diagnosticsExecute health checks, performance monitoring, and system analysis

Executing deployment scriptsRun deployment workflows, configuration updates, and releases

Querying system informationGather OS details, disk usage, network status, and resource metrics

Process managementStart, stop, monitor, and manage system processes

Variants Overview

Choosing a variant: Start with Safe Commands or Read Only, upgrade to Full Access only when absolutely necessary. See Variant Configuration for detailed differences.

Configuration

Example Configuration:
Safe Commands:
  • allowed_commands: [“ls”, “cat”, “grep”, “find”, “ps”, “top”, “df”, “echo”, “git status”, …]
  • blocked_commands: [“rm”, “dd”, “mkfs”, “sudo”, “chmod”, “chown”]
Full Access:
  • allowed_commands: [”*”] (all commands)
  • blocked_commands: [] (none blocked)
Read Only:
  • allowed_commands: [“ls”, “cat”, “grep”, “find”, “ps”, “top”, “df”, “free”]
  • All write operations blocked
See: Variant Configuration Guide

Quick Start

View Complete Examples

See full production deployment patterns, CI/CD configurations, and troubleshooting guides

Command Patterns

Wildcards and Subcommands

You can use patterns to allow command families:

Environment Variable Expansion

Commands can reference environment variables:

Security Best Practices

Explicitly specify allowed_commands rather than relying on blocked_commands. Whitelisting is more secure than blacklisting.
Always configure command timeouts to prevent runaway processes.
Use Safe Commands variant for production. Reserve Full Access for development or isolated admin tasks.
Full Access variant should be used with caution. Prefer Safe Commands for production environments.

Solutions:
  • Verify command is installed on worker system
  • Check PATH environment variable includes command location
  • Use full path: /usr/bin/kubectl instead of kubectl
Solutions:
  • Ensure worker process user has OS-level permissions
  • Check file permissions on scripts or binaries
  • Verify working_directory is accessible
Solutions:
  • Check exact command string matches (including subcommands)
  • Verify no blocked_commands override
  • Use "*" wildcard for command families: "git*"

File System Skill

Access files for scripts and configurations

Python Skill

Execute Python scripts as alternative to shell

Docker Skill

Specialized Docker command management

View All Skills

Return to built-in skills overview