<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: rocky</title>
    <description>The latest articles on DEV Community by rocky (@rocky_zhang).</description>
    <link>https://dev.to/rocky_zhang</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4106903%2Fbacc1591-acf0-4b81-b5f8-8586148d4eb2.png</url>
      <title>DEV Community: rocky</title>
      <link>https://dev.to/rocky_zhang</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rocky_zhang"/>
    <language>en</language>
    <item>
      <title>Accelerate Server Threshold Verification with SelfCmd</title>
      <dc:creator>rocky</dc:creator>
      <pubDate>Tue, 08 Sep 2026 17:41:24 +0000</pubDate>
      <link>https://dev.to/rocky_zhang/accelerate-server-threshold-verification-with-selfcmd-3cd2</link>
      <guid>https://dev.to/rocky_zhang/accelerate-server-threshold-verification-with-selfcmd-3cd2</guid>
      <description>&lt;p&gt;In server administration and software testing, validating log retention policies, storage cleanup thresholds, and device lifecycle expiration logic is vital. However, testing these workflows traditionally forces engineers to wait days or weeks for actual time to elapse, or manually adjust system clocks repeatedly across multiple nodes—an error-prone and tedious process.&lt;br&gt;
With SelfCmd, you can automate a seamless "time-acceleration" loop that shifts system clocks forward, syncs hardware time, reboots target servers, and diagnoses execution permissions automatically using AI.&lt;br&gt;
&lt;strong&gt;1. Step-by-Step Task Setup: Automated Time Shifting&lt;/strong&gt;&lt;br&gt;
Using SelfCmd's Periodic Task Engine, you can automate clock modification and device reboot routines in a closed loop:&lt;br&gt;
●Task Name: day+1 and reboot&lt;br&gt;
●Task Type: Periodic Task&lt;br&gt;
●Interval / Time: 1200 seconds (or custom intervals like 60s, 5m, 1h)&lt;br&gt;
●Task Command:&lt;br&gt;
date -s "$(date -d '+1 day' '+%Y-%m-%d %H:%M:%S')" &amp;amp;&amp;amp; hwclock --systohc&lt;br&gt;
●Options: Check Reboot system after task execution&lt;br&gt;
By executing this task periodically, SelfCmd advances the system clock by one day and triggers a clean system reboot every cycle, compressing weeks of storage lifecycle testing into just a few hours.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff8z9ov89ybhe0tks7qrj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff8z9ov89ybhe0tks7qrj.png" alt=" " width="800" height="1042"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;** 2.Instant Troubleshooting with AI Diagnose**&lt;br&gt;
Modifying system time requires administrative rights. When tasks fail due to missing sudo permissions or restricted Docker container capabilities (e.g., missing CAP_SYS_TIME), SelfCmd's &lt;strong&gt;AI Diagnose&lt;/strong&gt; engine analyzes failure logs in seconds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsan8jg6987j5m3qr35mk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsan8jg6987j5m3qr35mk.png" alt=" " width="799" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fowpqbn43gfxfo0ammpph.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fowpqbn43gfxfo0ammpph.png" alt=" " width="800" height="470"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft238l1k56n6z1b4awa69.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft238l1k56n6z1b4awa69.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Key Product Advantages&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv5at815qaznv662rnhfh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv5at815qaznv662rnhfh.png" alt=" " width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Discover More: To explore the full feature set, user guides, and latest updates, visit our official website at &lt;a href="https://selfcmd.com" rel="noopener noreferrer"&gt;https://selfcmd.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>devtools</category>
      <category>ssh</category>
    </item>
    <item>
      <title>SelfCmd – Simplify SSH Connections, Custom Commands, and AI Debugging</title>
      <dc:creator>rocky</dc:creator>
      <pubDate>Mon, 07 Sep 2026 17:43:34 +0000</pubDate>
      <link>https://dev.to/rocky_zhang/selfcmd-simplify-ssh-connections-custom-commands-and-ai-debugging-2a0p</link>
      <guid>https://dev.to/rocky_zhang/selfcmd-simplify-ssh-connections-custom-commands-and-ai-debugging-2a0p</guid>
      <description>&lt;p&gt;SelfCmd is a personal command center engineered for software engineers, system administrators, and DevOps teams. It unifies SSH/serial connection management, a reusable Command Library (Cmd Lib), cross-platform local and remote command execution, and AI-driven automated error diagnostics into a single interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Connection Management (Connections)&lt;/strong&gt;&lt;br&gt;
SelfCmd provides a central hub for managing remote host connections, network discovery, and embedded interactive sessions.&lt;br&gt;
1.1 Creating a New Connection&lt;br&gt;
1.Access Connections: Navigate to the Connections tab in the left sidebar to open the Connection Manager.&lt;br&gt;
2.Add Connection: Click Add in the top toolbar and select Add one manually... (or utilize Scan for subnet discovery or Bulk Import).&lt;br&gt;
3.Configure Connection Parameters: Fill out the required connection fields in the dialog:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connection Name / Server Address: Set the alias and target IP address (e.g., 172.19.156.217).&lt;/li&gt;
&lt;li&gt;Port &amp;amp; Username: Define the SSH port (default 22) and target account (e.g., rocky).&lt;/li&gt;
&lt;li&gt;Auth Method: Choose between Password or SSH Key authentication.&lt;/li&gt;
&lt;li&gt;Bastion Host: Enable Use a jump host (bastion) if tunneling is required.&lt;/li&gt;
&lt;li&gt;Group &amp;amp; Tags: Categorize hosts into groups (e.g., Ungrouped) and comma-separated tags (e.g., prod, web, db).&lt;/li&gt;
&lt;li&gt;MCP / AI Access: Define AI agent execution permissions (e.g., Full (read &amp;amp; run)).
4.Test &amp;amp; Save: Click Test Connection. Upon receiving the success confirmation (Connection test succeeded!), click OK or Save and add next.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F25x2ur0bl02t52tohi2o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F25x2ur0bl02t52tohi2o.png" alt=" " width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4jmusxmwqueorkh1h0r3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4jmusxmwqueorkh1h0r3.png" alt=" " width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1.2 Integrated Terminal &amp;amp; File Manager&lt;br&gt;
SelfCmd integrates powerful inline session tools directly within the Connection Manager:&lt;br&gt;
●Interactive Terminal: Launch an active SSH session directly in a dedicated tab or pop-up window.&lt;br&gt;
●File Management &amp;amp; Verification: Switch to the Files tab to browse remote file structures, perform drag-and-drop file transfers, edit files directly, and generate MD5 checksums for integrity verification.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc1t09g6xut49tr6ujcr8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc1t09g6xut49tr6ujcr8.png" alt=" " width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Command Library &amp;amp; Custom Command Management (Cmd Lib)&lt;/strong&gt;&lt;br&gt;
The Cmd Lib feature allows users to transform frequent shell commands and diagnostic scripts into interactive, reusable buttons.&lt;/p&gt;

&lt;p&gt;2.1 Adding a Built-in Command&lt;br&gt;
1.Navigate to the Cmd Lib tab and click + Add.&lt;br&gt;
2.Configure the command properties:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Command Name: Give the command a descriptive label (e.g., print route table).&lt;/li&gt;
&lt;li&gt;Command Content: Input the script payload (e.g., route print -4). Multiple statements can be separated by semicolons or newlines.&lt;/li&gt;
&lt;li&gt;Condition / Template Inserts: Utilize {name} placeholders to turn scripts into dynamic parameter templates.&lt;/li&gt;
&lt;li&gt;Group &amp;amp; Tags: Assign to a designated group (e.g., Default Group) and tags (e.g., network, diagnostic).&lt;/li&gt;
&lt;li&gt;Local Command Flag: Check Local command (run on this machine) if the command should execute locally rather than over SSH.
3.Click OK to save the command to the button library.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fomyd67wfeqqzz33wo6da.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fomyd67wfeqqzz33wo6da.png" alt=" " width="799" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Unified Command Execution Engine&lt;/strong&gt;&lt;br&gt;
SelfCmd's execution bar provides seamless switching between local operating system execution and remote SSH server execution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8um9xqf5ram3bwgns31r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8um9xqf5ram3bwgns31r.png" alt=" " width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fho6dd576b4w33soxs9ho.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fho6dd576b4w33soxs9ho.png" alt=" " width="799" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5h223g2vt8vh3hh0cgyr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5h223g2vt8vh3hh0cgyr.png" alt=" " width="799" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.1 Cyclic &amp;amp; Scheduled Execution (Repeat Mode)&lt;br&gt;
For ongoing monitoring tasks (e.g., watching disk utilization, process health, or queue depth):&lt;br&gt;
●Enable the Repeat checkbox on the execution bar.&lt;br&gt;
●Set the interval duration (e.g., 5 s).&lt;br&gt;
●SelfCmd will automatically execute the target command periodically and update the log console.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. AI-Powered Error Diagnosis (AI Diagnose)&lt;/strong&gt;&lt;br&gt;
When command execution fails or returns non-zero status codes, SelfCmd leverages built-in AI intelligence to analyze logs and deliver root-cause breakdowns.&lt;br&gt;
4.1 Diagnostic Workflow&lt;br&gt;
1.Upon receiving a command failure (e.g., [FAIL] exit=127), select the error log text or click AI Diagnose on the toolbar.&lt;br&gt;
2.Alternatively, right-click any selected log text in the Operation Log pane and choose AI Diagnose (selection / whole log).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fetljc9gh9dl44ejvx7i1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fetljc9gh9dl44ejvx7i1.png" alt=" " width="799" height="390"&gt;&lt;/a&gt;&lt;br&gt;
4.2 Diagnostic Output Structure&lt;br&gt;
The AI Diagnosis panel formats output into four structured analytical sections:&lt;br&gt;
●Verdict: Clear, concise identification of why the script failed (e.g., missing binary or missing executable in system PATH).&lt;br&gt;
●Error Summary: Grouping of distinct error messages and exit code occurrences.&lt;br&gt;
●Likely Root Causes: Ranked probable causes, such as missing dependencies, environment variable misconfigurations, or syntax errors.&lt;br&gt;
●Next Diagnostic Steps: Executable, safe troubleshooting commands ready for copy-pasting to verify environment state and apply fixes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs5gdcdf5fnp1rece69a4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs5gdcdf5fnp1rece69a4.png" alt=" " width="800" height="703"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Website &amp;amp; Downloads: &lt;a href="https://selfcmd.com" rel="noopener noreferrer"&gt;https://selfcmd.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>devtool</category>
      <category>devops</category>
      <category>ssh</category>
    </item>
    <item>
      <title>SelfCmd: one offline desktop app for SSH, scheduled jobs, workflows and monitoring</title>
      <dc:creator>rocky</dc:creator>
      <pubDate>Wed, 02 Sep 2026 22:22:23 +0000</pubDate>
      <link>https://dev.to/rocky_zhang/selfcmd-one-offline-desktop-app-for-ssh-scheduled-jobs-workflows-and-monitoring-655</link>
      <guid>https://dev.to/rocky_zhang/selfcmd-one-offline-desktop-app-for-ssh-scheduled-jobs-workflows-and-monitoring-655</guid>
      <description>&lt;h2&gt;
  
  
  The problem with "just use the terminal"
&lt;/h2&gt;

&lt;p&gt;Managing one server from a terminal is fine. Managing fifteen is a different job.&lt;/p&gt;

&lt;p&gt;You end up with a browser-tab problem, except it's terminal tabs. The commands you run monthly live in a notes file, and half of them have a hostname or path you have to remember to swap out. The cleanup job you set up last quarter is a cron entry on a box you no longer think about. When disk fills at 2am, nothing tells you.&lt;/p&gt;

&lt;p&gt;None of that is hard. It's just scattered, and the scattering is what costs you.&lt;/p&gt;

&lt;p&gt;SelfCmd puts it in one window: connections, reusable commands, schedules, multi-step workflows, and resource monitoring. It runs entirely on your own machine.&lt;/p&gt;

&lt;h3&gt;
  
  
  What it actually does
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Connections.&lt;/strong&gt; Save hosts with groups and tags. Import existing sessions from Xshell, MobaXterm, FinalShell, SecureCRT, PuTTY or &lt;code&gt;~/.ssh/config&lt;/code&gt;, so switching clients takes seconds rather than an evening. Reach private hosts through a bastion with jump-host (ProxyJump) support, password or key on each hop. Open an interactive terminal or browse files over SFTP straight from a connection. Passwords are encrypted at rest with Fernet (AES-128-CBC + HMAC-SHA256); the key stays local.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Command library.&lt;/strong&gt; Turn the commands you actually repeat into one-click buttons,grouped and tagged, with a "most used" view ranked by how often you run them.&lt;br&gt;
Parameterize with &lt;code&gt;{{variables}}&lt;/code&gt; that expand in commands, tasks, workflows and SFTP paths alike. The editor highlights shell syntax and previews the fully expanded command before it runs. Destructive commands (&lt;code&gt;rm -rf&lt;/code&gt;, &lt;code&gt;mkfs&lt;/code&gt;, &lt;code&gt;dd&lt;/code&gt;) ask a second&lt;br&gt;
time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scheduled tasks.&lt;/strong&gt; One-off at a set moment, or repeating from seconds to hours, on a remote host or locally. Attach result checks so a job that "ran" but failed gets flagged. Pause and resume individual tasks, and keep a per-task output log. No cron syntax, no forgetting which box owns the job.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workflows.&lt;/strong&gt; Chain commands and SFTP transfers into a run you can repeat: pull code, upload config, restart the service, health-check. Sequential or parallel,per-step timeout, retry and stop-on-failure, and you can pass one step's output into the next. Export a workflow as JSON to share or version it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resource monitor.&lt;/strong&gt; Track CPU, memory, disk usage, disk I/O, network bandwidth and SSD/NVMe disk life (SMART wear) against your own thresholds, with a hold duration so a brief spike doesn't page you. One host is one row with as many metrics as you want on it. Alerts are non-blocking toasts plus optional throttled email, and you get a recovery notice too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Toolbox.&lt;/strong&gt; Ping, port probing, LAN MAC lookup, SFTP/FTP transfer, a serial(COM-port) console for switches and embedded boards, and the small utilities you otherwise open a browser tab for: timestamp/epoch conversion, cron expression helper, JSON/YAML formatting, base conversion, checksums, text compare.&lt;/p&gt;

&lt;h3&gt;
  
  
  The two things that make it different
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;It runs offline, and it means it.&lt;/strong&gt; No account to create. No telemetry. Your credentials, logs and server list never leave your machine, and the app doesn't phone home. Pro licenses activate offline and bind to the device. If our website went down tomorrow, your install would keep working exactly as before.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your AI agent can drive it, without holding your credentials.&lt;/strong&gt; SelfCmd ships a Model Context Protocol server, so Claude Desktop, Cursor or Kiro can list and run your saved commands, tasks and workflows, read metrics, tail logs and inspect remote files. It runs locally over stdio and reuses connections you already saved, so the model never sees a password.&lt;/p&gt;

&lt;p&gt;The safety model is the point. Read-only tools work out of the box. Anything that changes state is off by default and needs an explicit opt-in, then a two-step confirmation with a native desktop prompt. Connections carry per-connection access tiers, dangerous commands and sensitive paths get screened, and every call lands in an audit log. An agent gets a set of reviewed operations, not a blank shell.&lt;/p&gt;

&lt;p&gt;There's also an in-app assistant if you'd rather not wire up an agent: describe what you want in plain language, review the command it proposes, then run it on a connection you pick. Nothing executes without you looking at it first. When something fails, one click asks it to explain why.&lt;/p&gt;

&lt;h3&gt;
  
  
  Recent work (2.3.x)
&lt;/h3&gt;

&lt;p&gt;The last round was mostly about fleets rather than single hosts.&lt;/p&gt;

&lt;p&gt;One command can now target many hosts at once — scheduled tasks and the command library both take multiple connections and report a single combined summary. If a one-off task partially fails, retrying only re-runs the hosts that failed, so a server that already rebooted doesn't get rebooted twice. SFTP tasks got the same treatment in a dedicated window: one row per server, adjustable concurrency, a live queue and cancel.&lt;/p&gt;

&lt;p&gt;Host availability also comes from one shared source now, so every connection picker agrees on who's online. Selectors probe in the background the moment they open, which means the "online only" filter is accurate without running "Test all" first.&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting it
&lt;/h3&gt;

&lt;p&gt;Windows 10/11 (64-bit), macOS 12+ (separate Apple Silicon and Intel builds), and&lt;br&gt;
Linux x86_64 as a portable tar.gz (glibc 2.35+, so Ubuntu 22.04 and newer).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Starter is free&lt;/strong&gt;, with limits that suit one person: 5 connections, 10 scheduled tasks, 30 library commands, 10 workflows and 10 monitors.&lt;/p&gt;

&lt;p&gt;Download: &lt;a href="https://selfcmd.com" rel="noopener noreferrer"&gt;https://selfcmd.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you try it, I'd genuinely like to hear where it gets in your way — especially the MCP piece, which is the newest and least battle-tested part.&lt;/p&gt;




</description>
      <category>ai</category>
      <category>ssh</category>
      <category>productivity</category>
      <category>monitoring</category>
    </item>
  </channel>
</rss>
