OPEN-SOURCE SERVER ORCHESTRATION

One console.
All your servers.

Connect your machines into one resource pool. Every command on this page is checked against the shipped parser in CI, so the reference below cannot drift from what cm actually accepts.

286 command paths Windows & Linux Python 3.11+ CI on both platforms
CloudMesh network logo
YOUR FLEET · ONE CONSOLE

BUILT FOR THE TERMINAL

Your fleet, in sync.

Lightweight tools for operating distributed servers without adding another dashboard to maintain.

One command center

Manage connected nodes and run operations across your fleet from a single CLI.

Resource-aware queue

Place work using live CPU, memory, and disk headroom, with safe recovery behavior.

Security in mind

Use authenticated nodes, optional certificate-verified TLS, and configurable safeguards.

UP AND RUNNING

Start with one command.

Install CloudMesh with Python, then open the built-in command guide. Works on Windows and Linux.

See all installation options
QUICK START · PYTHON 3.11+
pip install https://github.com/ALI88708/CloudMesh/releases/download/v4.2.6/cloudmesh-4.2.6-py3-none-any.whl
cm --help

THE COMMAND REFERENCE

Every example here runs.

CloudMesh 4.2.6 exercises all 289 command paths in a sandbox on every CI run. The invocations below are taken from that verified surface, not from memory, and tests/test_site_commands.py re-checks each one against the real argparse parser so this page cannot drift.

Full CLI reference
THE FIVE-MINUTE TOUR
cm server add --name web-1 --host 192.168.1.10 --user deploy --port 2222
cm server test --name web-1
cm run "uptime"
cm node add --name edge-1 --host 10.0.0.5 --port 8443 --auth-key NODE_KEY --tls
cm status --json

Servers

Register machines, then address them by name for everything that follows.

  • cm server add --name web-1 --host 192.168.1.10 --user deploy --port 2222

    Register one machine. A non-default SSH port and an explicit user are both accepted here.

  • cm server list

    Show every registered server with its host, port, and authentication method.

  • cm server info --name web-1

    Full detail for a single server, including the key material in use.

  • cm server test --name web-1

    Check that the machine answers on SSH before you depend on it.

  • cm ssh --name web-1

    Open an interactive session using the stored connection settings.

  • cm run "uptime"

    Run one command across the fleet and collect the output per server.

  • cm run --best 'uptime'

    Run against the single machine with the most free resources rather than all of them.

  • cm exec --all "uptime"

    Batch execution across every registered node at once.

  • cm group add --group webservers --device web-1

    Put a machine into a named group so you can address the group instead.

  • cm group run --group webservers "uptime"

    Run one command against every member of a group.

  • cm profile save --name edge

    Capture the current connection set as a reusable profile.

  • cm profile list

    List the saved profiles and the server count in each.

  • cm server remove --name web-1

    Forget a machine. Stored credentials for it go with the entry.

Nodes

Autonomous agents you install on remote machines, with job control and checkpointing.

  • cm node add --name edge-1 --host 10.0.0.5 --port 8443 --auth-key NODE_KEY --tls

    Register an agent. The auth key is required, and --tls opts into certificate-verified transport.

  • cm node list

    Every registered node with its reachability state.

  • cm node info --name edge-1

    Capabilities, load, and last-seen time for one node.

  • cm node test --name edge-1

    Round-trip a health check to the agent before scheduling work on it.

  • cm node exec --name edge-1 "uptime"

    Run a shell command on one node and return its output.

  • cm node job start --name edge-1 "python train.py"

    Start a tracked job. The agent keeps running it if the controller disconnects.

  • cm node job list --name edge-1

    Jobs known to one node, with their state and exit status.

  • cm node job checkpoints

    Every checkpoint written across the fleet, newest first.

  • cm node job recover --relaunch

    Resume interrupted jobs from their last checkpoint and relaunch them.

  • cm node install --host 10.0.0.5 --user node

    Install and start the agent on a remote host in one step.

  • cm gpunode --name edge-1

    GPU telemetry for a node, so you can place work where the hardware is.

  • cm node remove --name edge-1

    Remove a node registration. Running jobs on it stop being tracked.

Files

Move bytes, search logs, and keep a restorable copy of the local database.

  • cm transfer --file ./release.tar.gz --to-server web-1

    Push a local file to a server over the stored connection.

  • cm transfer --file ./dist/app.zip --from-server web-1 --to ./downloads

    Pull a file back. Give both ends explicitly when the remote path is not implied.

  • cm sync --local ./logs --to-server web-1

    Mirror a directory to a server instead of copying single files.

  • cm find --name web-1 --path /var/log '*.log'

    Search for a filename pattern on a remote machine.

  • cm logs --name web-1 --file /var/log/syslog --lines 50

    Read the tail of a log file on a server.

  • cm logsearch --pattern error --source web-1

    Search aggregated log sources rather than one file at a time.

  • cm logagg sources

    Every log source currently registered with the aggregator.

  • cm logagg search --pattern ERROR --source web-1

    Grep one source directly, without pulling the whole aggregate back.

  • cm backup --restore BACKUP_PATH

    Restore from a named backup. The path is required, so this cannot restore the wrong one by accident.

  • cm storage backup

    Snapshot the local database and key material.

  • cm storage list

    List the backups you can restore from.

  • cm cp --file ./db.sql --to-server web-1 --to /tmp/db.sql

    Copy to an explicit destination path on the server.

Security

Keys, roles, firewall rules, and the emergency rotation when a host is compromised.

  • cm keys generate --name deploy --bits 4096

    Create a managed SSH key pair and register it under a name.

  • cm keys list

    Every managed key, its fingerprint, and where it has been deployed.

  • cm keys deploy ./id_ed25519.pub --server web-1

    Push a public key to a server so it stops accepting password logins.

  • cm panic --dry-run

    Show exactly what an emergency rotation would touch. Nothing is changed.

  • cm panic rotate

    Rotate every key locally and remotely in one step. Stored passwords become undecryptable afterwards.

  • cm panic shares

    The Shamir shares that let you recover access after a rotation.

  • cm acl users

    List accounts and their roles.

  • cm acl roles

    List the roles available to assign.

  • cm acl add-role --name ops --perms read

    Define a role and what it is permitted to do.

  • cm firewall add-rule --port 22 --proto tcp --action allow --server web-1

    Open a port on one server, with the protocol and action stated explicitly.

  • cm tripwire check

    Verify planted tripwires are still intact. A changed one means tampering.

  • cm tripwire plant --node edge-1 --host 10.0.0.5

    Plant a tripwire on a machine you want to detect changes on.

  • cm cmdlog --verify

    Walk the command-log hash chain and report tampering.

  • cm trust --scan

    Score the trust relationship across the fleet and flag weak links.

Monitoring

Live resource views, history, forecasting, and the queue that places work by headroom.

  • cm status --json

    Fleet status as JSON, so another tool can consume it.

  • cm doctor

    Self-check the install: dependencies, SSH, data directory, and version.

  • cm watch --interval 5

    Refresh a live dashboard every five seconds.

  • cm top --name web-1 --limit 10

    The ten heaviest processes on one machine.

  • cm df --name web-1

    Disk usage on a server, including mounts you did not choose.

  • cm reshistory show web-1 --metric cpu --limit 24

    The last 24 recorded CPU samples, which is what forecasting learns from.

  • cm weather --server web-1 --hour 6

    Predict resource pressure six hours out from recorded history.

  • cm queue list

    Queued and running jobs, with their state and priority.

  • cm queue status JOB_ID

    Everything known about one job.

  • cm slice --files ./tasks --servers 4 --execute yes

    Split a set of tasks across four servers by measured headroom. --execute takes a value, so nothing runs until you say so.

  • cm notify send "Disk usage above 85% on web-1"

    Send one alert through whichever channels you configured.

  • cm webhooks add --name ops --url https://hooks.example.com/cm --type slack

    Register an outbound webhook for a named event stream.

  • cm watcher add --name nginx --process nginx --server web-1

    Watch a process and alert when it stops.

  • cm drift list

    Configuration that has drifted away from the recorded snapshot.

  • cm completions --shell bash

    Print shell completions for the shell you actually use.

Every block above is a real invocation. The suite builds the parser in-process, aborts before dispatch, and fails if any example is rejected — which is how this page stays honest as the CLI changes.

WHAT'S NEW

Releases & downloads.

Browse version history, read release notes, and open each version’s download page.

All GitHub releases
Loading releases from GitHub…