Sim

SSH

Connect to remote servers via SSH

SSH (Secure Shell) is a widely-used protocol for securely connecting to remote servers, allowing you to execute commands, transfer files, and manage systems over encrypted channels.

With SSH support in Sim, your agents can:

  • Execute remote commands: Run shell commands on any SSH-accessible server
  • Upload and run scripts: Easily transfer and execute multi-line scripts for advanced automation
  • Transfer files securely: Upload and download files as part of your workflows (coming soon or via command)
  • Automate server management: Perform updates, maintenance, monitoring, deployments, and configuration tasks programmatically
  • Use flexible authentication: Connect with password or private key authentication, including support for encrypted keys

The following Sim SSH tools enable your agents to interact with servers as part of larger automations:

  • ssh_execute_command: Run any single shell command remotely and capture output, status, and errors.
  • ssh_execute_script: Upload and execute a full multi-line script on the remote system.
  • (Additional tools coming soon, such as file transfer.)

By integrating SSH into your agent workflows, you can automate secure access, remote operations, and server orchestration—streamlining DevOps, IT automation, and custom remote management, all from within Sim.

Usage Instructions

Execute commands, transfer files, and manage remote servers via SSH. Supports password and private key authentication for secure server access.

Tools

ssh_execute_command

Execute a shell command on a remote SSH server

Input

ParameterTypeRequiredDescription
hoststringYesSSH server hostname or IP address
portnumberYesSSH server port (default: 22)
usernamestringYesSSH username
passwordstringNoPassword for authentication (if not using private key)
privateKeystringNoPrivate key for authentication (OpenSSH format)
passphrasestringNoPassphrase for encrypted private key
commandstringYesShell command to execute on the remote server
workingDirectorystringNoWorking directory for command execution

Output

ParameterTypeDescription
stdoutstringStandard output from command
stderrstringStandard error output
exitCodenumberCommand exit code
successbooleanWhether command succeeded (exit code 0)
messagestringOperation status message

ssh_execute_script

Upload and execute a multi-line script on a remote SSH server

Input

ParameterTypeRequiredDescription
hoststringYesSSH server hostname or IP address
portnumberYesSSH server port (default: 22)
usernamestringYesSSH username
passwordstringNoPassword for authentication (if not using private key)
privateKeystringNoPrivate key for authentication (OpenSSH format)
passphrasestringNoPassphrase for encrypted private key
scriptstringYesScript content to execute (bash, python, etc.)
interpreterstringNoScript interpreter (default: /bin/bash)
workingDirectorystringNoWorking directory for script execution

Output

ParameterTypeDescription
stdoutstringStandard output from script
stderrstringStandard error output
exitCodenumberScript exit code
successbooleanWhether script succeeded (exit code 0)
scriptPathstringTemporary path where script was uploaded
messagestringOperation status message

ssh_check_command_exists

Check if a command/program exists on the remote SSH server

Input

ParameterTypeRequiredDescription
hoststringYesSSH server hostname or IP address
portnumberYesSSH server port (default: 22)
usernamestringYesSSH username
passwordstringNoPassword for authentication (if not using private key)
privateKeystringNoPrivate key for authentication (OpenSSH format)
passphrasestringNoPassphrase for encrypted private key
commandNamestringYesCommand name to check (e.g., docker, git, python3)

Output

ParameterTypeDescription
commandExistsbooleanWhether the command exists
commandPathstringFull path to the command (if found)
versionstringCommand version output (if applicable)
messagestringOperation status message

ssh_upload_file

Upload a file to a remote SSH server

Input

ParameterTypeRequiredDescription
hoststringYesSSH server hostname or IP address
portnumberYesSSH server port (default: 22)
usernamestringYesSSH username
passwordstringNoPassword for authentication (if not using private key)
privateKeystringNoPrivate key for authentication (OpenSSH format)
passphrasestringNoPassphrase for encrypted private key
fileContentstringYesFile content to upload (base64 encoded for binary files)
fileNamestringYesName of the file being uploaded
remotePathstringYesDestination path on the remote server
permissionsstringNoFile permissions (e.g., 0644)
overwritebooleanNoWhether to overwrite existing files (default: true)

Output

ParameterTypeDescription
uploadedbooleanWhether the file was uploaded successfully
remotePathstringFinal path on the remote server
sizenumberFile size in bytes
messagestringOperation status message

ssh_download_file

Download a file from a remote SSH server

Input

ParameterTypeRequiredDescription
hoststringYesSSH server hostname or IP address
portnumberYesSSH server port (default: 22)
usernamestringYesSSH username
passwordstringNoPassword for authentication (if not using private key)
privateKeystringNoPrivate key for authentication (OpenSSH format)
passphrasestringNoPassphrase for encrypted private key
remotePathstringYesPath of the file on the remote server

Output

ParameterTypeDescription
downloadedbooleanWhether the file was downloaded successfully
fileContentstringFile content (base64 encoded for binary files)
fileNamestringName of the downloaded file
remotePathstringSource path on the remote server
sizenumberFile size in bytes
messagestringOperation status message

ssh_list_directory

List files and directories in a remote directory

Input

ParameterTypeRequiredDescription
hoststringYesSSH server hostname or IP address
portnumberYesSSH server port (default: 22)
usernamestringYesSSH username
passwordstringNoPassword for authentication (if not using private key)
privateKeystringNoPrivate key for authentication (OpenSSH format)
passphrasestringNoPassphrase for encrypted private key
pathstringYesRemote directory path to list
detailedbooleanNoInclude file details (size, permissions, modified date)
recursivebooleanNoList subdirectories recursively (default: false)

Output

ParameterTypeDescription
entriesarrayArray of file and directory entries

ssh_check_file_exists

Check if a file or directory exists on the remote SSH server

Input

ParameterTypeRequiredDescription
hoststringYesSSH server hostname or IP address
portnumberYesSSH server port (default: 22)
usernamestringYesSSH username
passwordstringNoPassword for authentication (if not using private key)
privateKeystringNoPrivate key for authentication (OpenSSH format)
passphrasestringNoPassphrase for encrypted private key
pathstringYesRemote file or directory path to check
typestringNoExpected type: file, directory, or any (default: any)

Output

ParameterTypeDescription
existsbooleanWhether the path exists
typestringType of path (file, directory, symlink, not_found)
sizenumberFile size if it is a file
permissionsstringFile permissions (e.g., 0755)
modifiedstringLast modified timestamp
messagestringOperation status message

ssh_create_directory

Create a directory on the remote SSH server

Input

ParameterTypeRequiredDescription
hoststringYesSSH server hostname or IP address
portnumberYesSSH server port (default: 22)
usernamestringYesSSH username
passwordstringNoPassword for authentication (if not using private key)
privateKeystringNoPrivate key for authentication (OpenSSH format)
passphrasestringNoPassphrase for encrypted private key
pathstringYesDirectory path to create
recursivebooleanNoCreate parent directories if they do not exist (default: true)
permissionsstringNoDirectory permissions (default: 0755)

Output

ParameterTypeDescription
createdbooleanWhether the directory was created successfully
remotePathstringCreated directory path
alreadyExistsbooleanWhether the directory already existed
messagestringOperation status message

ssh_delete_file

Delete a file or directory from the remote SSH server

Input

ParameterTypeRequiredDescription
hoststringYesSSH server hostname or IP address
portnumberYesSSH server port (default: 22)
usernamestringYesSSH username
passwordstringNoPassword for authentication (if not using private key)
privateKeystringNoPrivate key for authentication (OpenSSH format)
passphrasestringNoPassphrase for encrypted private key
pathstringYesPath to delete
recursivebooleanNoRecursively delete directories (default: false)
forcebooleanNoForce deletion without confirmation (default: false)

Output

ParameterTypeDescription
deletedbooleanWhether the path was deleted successfully
remotePathstringDeleted path
messagestringOperation status message

ssh_move_rename

Move or rename a file or directory on the remote SSH server

Input

ParameterTypeRequiredDescription
hoststringYesSSH server hostname or IP address
portnumberYesSSH server port (default: 22)
usernamestringYesSSH username
passwordstringNoPassword for authentication (if not using private key)
privateKeystringNoPrivate key for authentication (OpenSSH format)
passphrasestringNoPassphrase for encrypted private key
sourcePathstringYesCurrent path of the file or directory
destinationPathstringYesNew path for the file or directory
overwritebooleanNoOverwrite destination if it exists (default: false)

Output

ParameterTypeDescription
movedbooleanWhether the operation was successful
sourcePathstringOriginal path
destinationPathstringNew path
messagestringOperation status message

ssh_get_system_info

Retrieve system information from the remote SSH server

Input

ParameterTypeRequiredDescription
hoststringYesSSH server hostname or IP address
portnumberYesSSH server port (default: 22)
usernamestringYesSSH username
passwordstringNoPassword for authentication (if not using private key)
privateKeystringNoPrivate key for authentication (OpenSSH format)
passphrasestringNoPassphrase for encrypted private key

Output

ParameterTypeDescription
hostnamestringServer hostname
osstringOperating system (e.g., Linux, Darwin)
architecturestringCPU architecture (e.g., x64, arm64)
uptimenumberSystem uptime in seconds
memoryjsonMemory information (total, free, used)
diskSpacejsonDisk space information (total, free, used)
messagestringOperation status message

ssh_read_file_content

Read the contents of a remote file

Input

ParameterTypeRequiredDescription
hoststringYesSSH server hostname or IP address
portnumberYesSSH server port (default: 22)
usernamestringYesSSH username
passwordstringNoPassword for authentication (if not using private key)
privateKeystringNoPrivate key for authentication (OpenSSH format)
passphrasestringNoPassphrase for encrypted private key
pathstringYesRemote file path to read
encodingstringNoFile encoding (default: utf-8)
maxSizenumberNoMaximum file size to read in MB (default: 10)

Output

ParameterTypeDescription
contentstringFile content as string
sizenumberFile size in bytes
linesnumberNumber of lines in file
remotePathstringRemote file path
messagestringOperation status message

ssh_write_file_content

Write or append content to a remote file

Input

ParameterTypeRequiredDescription
hoststringYesSSH server hostname or IP address
portnumberYesSSH server port (default: 22)
usernamestringYesSSH username
passwordstringNoPassword for authentication (if not using private key)
privateKeystringNoPrivate key for authentication (OpenSSH format)
passphrasestringNoPassphrase for encrypted private key
pathstringYesRemote file path to write to
contentstringYesContent to write to the file
modestringNoWrite mode: overwrite, append, or create (default: overwrite)
permissionsstringNoFile permissions (e.g., 0644)

Output

ParameterTypeDescription
writtenbooleanWhether the file was written successfully
remotePathstringFile path
sizenumberFinal file size in bytes
messagestringOperation status message

Notes

  • Category: tools
  • Type: ssh
On this page

On this page

Start building today
Trusted by over 60,000 builders.
Build Agentic workflows visually on a drag-and-drop canvas or with natural language.
Get started