How to use SelfCmd

A step-by-step walkthrough of every module. Annotated screenshots are on the way.

Getting Started

Install SelfCmd, launch it, and get familiar with the side navigation. Everything runs locally and offline — no account required.

  1. 1Install. Download the installer and run it. On first launch SelfCmd creates a local data store next to the app; nothing is sent to the cloud.
  2. 2Pick a language & theme. Open Settings → UI & Language to switch between English / 中文 and Light / Dark themes. Language changes apply after a restart.
  3. 3Navigate. Use the left side-nav to move between Connections, Cmd Lib (command library), Tasks, Workflows, Monitor, Tools, Settings and Help.

Connections

Add and organize servers. Group and tag connections, import sessions from other SSH tools, open a terminal or SFTP file browser, open a serial (COM-port) console, and test connectivity before you rely on it.

  1. 1Add a connection. Click Add, then enter a name, host, port, username and either a password or a private key. Passwords are encrypted at rest.
  2. 2Connect through a bastion (optional). For servers on a private network, tick “Use a jump host (bastion)” and fill in the bastion’s host, user and credentials (password or key). SelfCmd tunnels through the bastion using ProxyJump for the terminal, SFTP, tasks, workflows and monitoring alike. Jump credentials are encrypted at rest and removed from shared exports.
  3. 3Organize. Assign a group and tags so large fleets stay searchable. Use the group filter and search box to narrow the list.
  4. 4Import from other tools. Use Import from tools to scan or pick config files from Xshell, MobaXterm, FinalShell, SecureCRT, PuTTY, or ~/.ssh/config.
  5. 5Open a terminal. Use the row Terminal action to open an interactive SSH terminal for that host. A Files pane can be shown side-by-side so you browse and run in the same window.
  6. 6Browse & transfer files. Use the Files (SFTP) action to open the file explorer: navigate the remote filesystem, upload/download, and manage files without a separate SFTP tool.
  7. 7Quick connect. Use Quick Connect to open a terminal by typing ssh user@host and a password — handy for one-off hosts you do not want to save.
  8. 8Serial console. Use the Serial Console button in the toolbar to open a COM-port terminal for network gear, embedded boards or industrial devices — pick the port, baud rate, data/stop bits and parity, with optional local echo and session logging to a file.
  9. 9Test. Use the row Test action to confirm the credentials and reachability before scheduling tasks against the host.

Scheduled Tasks

Run commands on a schedule — once at a set time or repeating on an interval — against a remote host or your local machine.

  1. 1Create a task. Click Add, choose a connection (or Local), enter the command(s), and pick the schedule type: periodic (every N seconds) or one-time (a specific date/time).
  2. 2Add result checks. Optionally attach check rules so the task is marked failed when the output or exit code does not match expectations.
  3. 3Run & monitor. Start the scheduler; watch live countdowns, pause/resume tasks, and read per-task output in the log panel below the list.
  4. 4Batch. Select multiple tasks to start, pause, delete, or reassign their connection in one action.

Command Library

Turn frequently used commands into one-click buttons, grouped and tagged. Parameterize them with reusable {{variables}}, surface your most-used commands automatically, export/import the whole library, and run them on a remote host or locally — with a confirmation step for dangerous commands.

  1. 1Create a command. Click Add, set the command name and the command itself, assign a group and tags, and optionally bind it to a specific connection or mark it Local. The window is resizable and can be maximized when you are editing longer scripts.
  2. 2Most-used ranking. SelfCmd counts how often each command runs and can surface a "Most used" group — pick Top 10 / 20 or a custom N. The count keeps accumulating safely over time so your busiest commands stay one click away.
  3. 3Use variables. Define reusable variables once (plain text or a Python snippet). Type “{{” in any command box to autocomplete them, and each variable shows its {{reference}} in the Variables dialog with a one-click Copy. The same variables expand in scheduled tasks, workflows and SFTP paths, so a value is defined in one place and substituted at run time.
  4. 4Run. Single-click to run (or fill-and-review, depending on the preview setting). Output appears in the execution panel beside the buttons. Commands matching dangerous patterns (rm -rf, mkfs, dd…) prompt for a second confirmation.
  5. 5Batch run. Use the batch dialog to select several commands and run them in sequence with an optional delay between each.
  6. 6Export / import. Export your command library (and its variables) to a JSON file to back it up or share it with teammates, then import it on another machine.
  7. 7Switch layout. Toggle between side-by-side and top/bottom layouts; the button grid grows when stacked vertically.

Workflows

Chain tasks and SFTP steps into a reusable run. Choose sequential or parallel execution, with per-step retry, timeout, and stop-on-failure.

  1. 1Build a workflow. Create a workflow, then add tasks and SFTP steps from the available list. Reorder steps to define the run order.
  2. 2Tune execution. Pick Sequential or Parallel, set the per-step timeout, retry count and delay, and toggle stop-on-failure. In parallel mode, steps on the same connection still run one at a time.
  3. 3Run with live progress. Execute to open the run view: a progress bar, current-step indicator, per-step status, elapsed time and errors. Cancel any time.
  4. 4Add tasks quickly. From the Tasks page, select tasks and use Add to Workflow to drop them into a new or existing workflow.

SFTP Deploy Tasks

Upload files to remote hosts and run post-upload commands. Supports a fixed file set or a watched folder for continuous deployment.

  1. 1Create an SFTP task. Choose Single file(s) or Watch folder mode, pick the connection, set the remote path, and add post-upload commands (unpack, restart, etc.).
  2. 2Watch folder. In watch mode, set a pattern and stability checks so only fully-written files are uploaded; choose what happens to source files after upload.
  3. 3Run or chain. Run a task directly with live progress, or reference it as a step inside a workflow for end-to-end deploys.

Monitor

Watch your servers at a glance: one row per host with a column for each metric — CPU, memory, disk usage, disk I/O, network bandwidth and disk life (SSD/NVMe wear). Values turn green when healthy and red when a threshold is crossed, and you can get email alerts.

  1. 1Add a monitored server. Pick a connection (or Local) and tick the metrics to watch — CPU, memory, disk usage, disk I/O, network bandwidth, disk life. One server is a single row; enabling several metrics does not create duplicate entries.
  2. 2Set thresholds. Give each metric its own threshold, or tick "Use one shared threshold" to apply a single percentage to all of them at once (network bandwidth always keeps its own value, since its unit differs).
  3. 3Read the board. Each metric has its own column showing the live value. Below the threshold it reads green; at or above it turns red so problems stand out. The list omits the threshold column to stay compact — hover a cell to see its threshold.
  4. 4Configure email (optional). In Settings → Email Alerts, enter SMTP details and recipients, then use the test button to verify delivery.
  5. 5Enable & start. Enable the metrics you want, then press Start to run monitoring; press Stop to pause it. Alerts appear as non-blocking toasts and are recorded in the monitor log with cooldown handling. Connections are kept alive and auto-reconnect if a link drops.

Tools

A categorized toolbox that lives with your connections: network diagnostics (ping, port/service probes, same-LAN MAC lookup), SFTP/FTP transfer, and developer utilities — timestamp/epoch converter, cron expression helper, JSON/YAML formatter, base converter, file checksums, text compare and more.

  1. 1Open the Toolbox. Go to the Tools page. Utilities are grouped by category (network, dev, file, stress, system) so the right tool is easy to find.
  2. 2Network diagnostics. Run ping, port/service probes and same-LAN MAC lookup, or transfer files over SFTP/FTP when a connection misbehaves.
  3. 3Developer utilities. Convert a Unix timestamp to a date (and back, across time zones), explain a cron expression and preview its next runs, format/validate JSON & YAML, convert number bases, compute file checksums, or diff two blocks of text.
  4. 4Reuse across the app. Tools requiring a host reuse your saved connections; results stream into each tool’s output area.
  5. 5Pin favorites. Right-click any tool to pin it to the sidebar under Favorites for one-click access to the ones you use most.

AI Agents (MCP Server)

SelfCmd includes a built-in MCP server. AI agents like Claude Desktop, Cursor and Kiro can read your server metrics, tail logs, browse files — and optionally run commands — all through your saved connections, fully offline.

  1. 1Find selfcmd-mcp.exe. After installing SelfCmd, the MCP server executable is at: C:\Program Files\SelfCmd\selfcmd-mcp.exe It shares the same connections and data as the main app — no separate setup needed.
  2. 2Add it to Kiro. Create .kiro/settings/mcp.json in your project (or ~/.kiro/settings/mcp.json globally): { "mcpServers": { "selfcmd": { "command": "C:/Program Files/SelfCmd/selfcmd-mcp.exe" } } }
  3. 3Add it to Claude Desktop. Open Settings → Developer → Edit Config, then add: { "mcpServers": { "selfcmd": { "command": "C:/Program Files/SelfCmd/selfcmd-mcp.exe" } } } Save and restart Claude Desktop.
  4. 4Add it to Cursor. Edit .cursor/mcp.json (project) or ~/.cursor/mcp.json (global): { "mcpServers": { "selfcmd": { "command": "C:/Program Files/SelfCmd/selfcmd-mcp.exe" } } }
  5. 5Try it — read-only tools (safe by default). Ask your agent: • "List my SelfCmd connections" • "Show CPU usage on server web-01" • "Tail the last 50 lines of /var/log/syslog on db-01" • "Read /etc/nginx/nginx.conf on web-01" These are read-only — nothing is changed on your servers.
  6. 6Enable write tools (optional). By default, action tools (run commands, write files) are disabled. To enable: { "mcpServers": { "selfcmd": { "command": "C:/Program Files/SelfCmd/selfcmd-mcp.exe", "env": { "SELFCMD_MCP_ALLOW_EXECUTE": "1" } } } } Every action still requires your confirmation: • A desktop dialog pops — you click Yes or No • Dangerous commands (rm -rf, mkfs…) need an extra flag • Each connection can be set to read-only or blocked in the app
  7. 7Available tools. Read-only (always on): • list_connections · list_tasks · list_workflows · list_monitors • get_local_metric · get_remote_metric • read_remote_file · tail_remote_log · list_remote_dir • parse_log · ai_generate_parse_rule Write (needs ALLOW_EXECUTE + confirmation): • run_command · run_task · run_workflow · write_remote_file
  8. 8Security summary. • All data stays on your machine — nothing phones home • Write tools are off by default • Two-step confirmation + native OS dialog before any action • Per-connection access control (full / read-only / blocked) • Full audit log at logs/mcp_audit.log

License & Activation

SelfCmd is free on the Starter plan with generous limits. Pro is a one-time, offline, machine-bound license that removes the limits.

  1. 1Find your machine ID. Open Settings → License (or Help → Get License) to copy your machine ID.
  2. 2Activate. Paste the license file/key you received. Activation is fully offline and bound to the machine — no account or phone-home.
  3. 3Check status. The About/Info tab shows your current plan, edition and (for Pro) expiry/email.