One command center
Manage connected nodes and run operations across your fleet from a single CLI.
OPEN-SOURCE SERVER ORCHESTRATION
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.
BUILT FOR THE TERMINAL
Lightweight tools for operating distributed servers without adding another dashboard to maintain.
Manage connected nodes and run operations across your fleet from a single CLI.
Place work using live CPU, memory, and disk headroom, with safe recovery behavior.
Use authenticated nodes, optional certificate-verified TLS, and configurable safeguards.
UP AND RUNNING
Install CloudMesh with Python, then open the built-in command guide. Works on Windows and Linux.
See all installation options 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
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.
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
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.
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.
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.
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.
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.
THE PROJECT TOOLKIT
Guides for getting started, running CloudMesh safely, and helping the project grow.
WHAT'S NEW
Browse version history, read release notes, and open each version’s download page.