devops¶
DevOps operations, package management, and system administration.
Usage¶
Commands Overview¶
| Command | Shortcut | Description |
|---|---|---|
install |
i |
Install packages and package groups |
repos |
r |
Manage development repositories |
config |
c |
Configuration management |
data |
d |
Data management |
self |
s |
Self management |
network |
n |
Network management |
execute |
e |
Execute scripts |
install¶
The primary package installation command. Supports single packages, multiple packages, package groups, and interactive selection.
Arguments¶
| Argument | Description |
|---|---|
WHICH |
Comma-separated list of package names, group name, or GitHub/binary URL |
Options¶
| Option | Short | Description |
|---|---|---|
--group |
-g |
Treat WHICH as a package group name |
--interactive |
-i |
Interactive selection with TV/fzf interface |
Installation Modes¶
Single Package¶
Multiple Packages¶
# Install multiple packages (comma-separated, no spaces)
devops install btop,fd,bat,rg,fzf
# With spaces (use quotes)
devops install "btop, fd, bat, rg"
Package Groups¶
Install predefined bundles of related packages:
# Install terminal essentials (40+ tools)
devops install termabc --group
devops install termabc -g
# Install AI coding assistants
devops install agents -g
# Install full development environment
devops install dev -g
# Install system monitors
devops install sys-monitor -g
Interactive Mode¶
Launch an interactive selector with all available packages:
Features:
- Shows installation status (ā
installed, ā not installed)
- Package descriptions displayed
- Multi-select supported
- Package groups prefixed with š¦
From GitHub URL¶
Install directly from a GitHub repository:
# The installer will show available release assets for selection
devops install https://github.com/sharkdp/fd
devops install https://github.com/BurntSushi/ripgrep
From Binary URL¶
Install from a direct download URL:
Available Package Groups¶
| Group | Description | Contents |
|---|---|---|
sysabc |
System essentials | Package managers, build tools, bun |
termabc |
Terminal power tools | 60+ CLI tools (search, monitors, shell) |
gui |
GUI applications | brave, code, git |
dev |
Full dev environment | 80+ tools across all categories |
dev-utils |
Development utilities | devcontainer, rust-analyzer, evcxr, geckodriver |
term-eye-candy |
Terminal visuals | lolcatjs, figlet-cli, boxes, cowsay |
agents |
AI assistants | aider, aichat, copilot, gemini, opencode-ai, mods, q, ... |
terminal-emulator |
Terminal emulators | Alacritty, Wezterm, warp, vtm, nushell |
shell |
Shell enhancements | zellij, mprocs, mcfly, atuin, starship |
browsers |
Web browsers | Brave, browsh, carbonyl |
code-editors |
Code editors | code, Cursor, lvim |
code-analysis |
Code & Git tools | lazygit, gitui, delta, gh, tokei, hyperfine |
db |
Database tools | SqliteBrowser, duckdb, DBeaver, rainfrog |
media |
Media players | ytui-music, termusic |
file-sharing |
File sharing | ngrok, cloudflared, ffsend, syncthing, rclone |
productivity |
Productivity | espanso, bitwarden, glow, gum, pandoc |
sys-monitor |
System monitors | btop, btm, procs, bandwhich, fastfetch |
search |
Search & file tools | fd, fzf, rg, bat, yazi, zoxide, dust |
Listing Available Groups¶
# Show all available groups with their packages
devops install -g
# Output shows:
# š¦ sysabc -- sysabc
# š¦ termabc -- nano|lazygit|onefetch|...
# š¦ agents -- aider|aichat|copilot|...
Examples¶
# Essential terminal setup (recommended first install)
devops install sysabc -g && devops install termabc -g
# Install all AI coding assistants
devops install agents -g
# Selective installation
devops install btop,fd,rg,fzf,bat,zoxide,yazi
# Interactive browse and install
devops install -i
# Install from specific GitHub repo
devops install https://github.com/jesseduffield/lazygit
repos¶
Manage development repositories.
Handles cloning, updating, analyzing, and maintaining development repositories.
Current devops repos --help exposes:
| Command | Description |
|---|---|
sync |
Clone repositories described by a repos.json specification |
register |
Record repositories into a repos.json specification |
action |
Run pull/commit/push actions across repositories |
analyze |
Analyze repository development over time |
guard |
Securely sync a git repository to and from cloud storage with encryption |
viz |
Visualize repository activity using Gource |
count-lines |
Count current Python lines and historical edits |
config-linters |
Add linter config files to a git repository |
cleanup |
Clean repository directories from cache files |
Hidden compatibility aliases still exist for older checkout flows, but the current path is sync --checkout-to-commit or sync --checkout-to-branch.
sync¶
Clone or check out repositories described by a repos.json specification.
Key options from current help:
| Option | Description |
|---|---|
--specs-path, -s |
Explicit path to the repos.json specification |
--interactive, -i |
Choose a backed-up repos.json interactively |
--checkout-to-commit, -ctc |
Check out commits pinned in the specification |
--checkout-to-branch, -ctb |
Check out the main branch from the specification |
Important behavior from the implementation:
--checkout-to-commitand--checkout-to-branchare mutually exclusive- Without
--specs-path, machineconfig derives the expectedrepos.jsonfrom the target directory - With
--interactive, machineconfig searches backed-uprepos.jsonfiles and lets you choose which one to apply
Examples:
# Clone from the default repos.json associated with a directory
devops repos sync ~/code
# Use an explicit spec file
devops repos sync ~/code --specs-path ~/backups/work/repos.json
# Check out the branches declared in the spec
devops repos sync ~/code --checkout-to-branch
# Interactively choose from backed-up specs
devops repos sync --interactive
register¶
Scan a directory of repositories and write a repos.json specification for it.
register currently takes only the optional repository root argument. The generated spec is intended to become the source for future repos sync runs.
Example:
action¶
Run pull, commit, and push actions across one repository or a whole tree of repositories.
Key options from current help:
| Option | Description |
|---|---|
--recursive, -r |
Recurse into nested repositories |
--uv-sync, -u |
Run uv sync automatically after pulls |
--pull, -P |
Pull changes |
--commit, -c |
Commit changes |
--push, -p |
Push changes |
At least one of --pull, --commit, or --push is required.
Examples:
# Pull every repo below a root directory
devops repos action ~/code --recursive --pull
# Pull and run uv sync where relevant
devops repos action ~/code --recursive --pull --uv-sync
# Commit and push one repo
devops repos action ~/code/machineconfig --commit --push
analyze¶
Analyze repository development over time.
This delegates to the plotting-oriented repository analyzer.
Example:
guard¶
Securely sync a git repository to or from cloud storage with encryption.
Key options from current help:
| Option | Description |
|---|---|
--cloud, -c |
Cloud storage profile name |
--message, -m |
Commit message for local changes |
--on-conflict, -o |
Conflict strategy such as ask, push-local-merge, overwrite-local, stop-on-conflict, or remove-rclone-conflict |
--password |
Password for encryption and decryption |
Example:
viz¶
Visualize repository history with Gource, either live or rendered to video.
Commonly used options from current help:
| Option | Description |
|---|---|
--repo, -r |
Repository to visualize |
--output, -o |
Render to a video file instead of interactive mode |
--resolution, -res |
Output resolution |
--seconds-per-day, -spd |
Playback speed |
--start-date |
Lower date bound |
--stop-date |
Upper date bound |
--title, -t |
Visualization title |
--self |
Clone and visualize the machineconfig repository |
The current help also exposes additional rendering controls for hidden layers, viewport, avatars, file limits, framerate, background color, and camera mode.
Examples:
# Interactive visualization
devops repos viz --repo ~/code/machineconfig
# Render to video
devops repos viz --repo ~/code/machineconfig --output machineconfig.mp4 --resolution 1280x720
count-lines¶
Count Python lines of code in the current state and through repository history.
Example:
config-linters¶
Copy standard linter config files into a git repository.
Key options from current help:
| Option | Description |
|---|---|
--linter, -t |
Restrict the copy to ruff, mypy, pylint, flake8, or ty |
Without --linter, machineconfig copies the full supported set of linter config files.
Examples:
cleanup¶
Clean repository directories from cache files.
Key options from current help:
| Option | Description |
|---|---|
--recursive, -r |
Recurse into nested repositories under the given directory |
Without --recursive, the target must already be a git repository. With --recursive, machineconfig searches for nested .git directories and cleans each repository it finds.
Examples:
# Clean one repo
devops repos cleanup ~/code/machineconfig
# Clean every repo below a root directory
devops repos cleanup ~/code --recursive
The nested help screens render shortened usage such as devops sync ..., devops action ..., or devops viz ..., but the full entrypoints remain devops repos sync ..., devops repos action ..., and devops repos viz ....
config¶
Configuration management.
Manage dotfiles, packaged assets, example config generation, and terminal profile/theme setup.
Current devops config --help exposes:
| Command | Description |
|---|---|
sync |
Apply dotfile mappings with symlink or copy |
register |
Register a file or directory into the user mapper |
edit |
Open the library or user mapper.toml |
export-dotfiles |
Export ~/dotfiles for machine migration |
import-dotfiles |
Import an exported dotfiles archive |
copy-assets |
Copy packaged scripts and settings onto the machine |
dump |
Write example configuration files such as .ve.example.yaml |
terminal |
Shell profile and terminal theme commands |
sync¶
Apply the current dotfile mapping set.
Key arguments and options from current help:
| Item | Description |
|---|---|
direction |
Required. Use up to push default paths into the managed location, or down to apply managed files back to default paths |
--sensitivity, -s |
Required. Choose private, public, or all |
--method, -m |
Required. Use symlink or copy |
--repo, -r |
Select mappings from library, user, or all |
--on-conflict, -o |
Conflict policy such as throw-error, overwrite-self-managed, or overwrite-default-path |
--which, -w |
Limit the run to specific mapping names, or use all |
If --which is omitted, the command falls back to interactive selection.
For library-backed public configs, copy packaged settings first when needed:
Examples:
# Apply all public mappings with symlinks
devops config sync down --sensitivity public --method symlink --which all
# Push local private config changes back into the managed backup area
devops config sync up --sensitivity private --method copy --repo user
register¶
Register a new config file or directory into the self-managed dotfiles area and, by default, record that mapping in the user mapper.
Key options from current help:
| Option | Description |
|---|---|
--method, -m |
Store it with copy or symlink semantics |
--on-conflict, -o |
Conflict strategy during the initial transfer |
--sensitivity, -s |
Mark the mapping as private or public |
--destination, -d |
Override the default self-managed destination |
--section, -se |
Section name to write inside the user mapper |
--os |
Restrict the mapping to one OS or a comma-separated list |
--shared, -sh |
Place the managed file under a shared destination layout |
--record, -r |
Record the mapping in the user mapper file |
Examples:
# Register a private file and record it in the default mapper section
devops config register ~/.config/htop/htoprc --sensitivity private
# Register a public directory with symlink semantics
devops config register ~/.config/nvim --method symlink --sensitivity public --section editors
edit¶
Open the dotfile mapper in nano, hx, or code.
The user mapper is created automatically if it does not exist yet.
export-dotfiles¶
Package and encrypt ~/dotfiles for transfer to another machine.
Optional transfer flags:
| Option | Description |
|---|---|
--over-internet, -i |
Internet-transfer flag present in the CLI, but the current implementation is not finished |
--over-ssh, -s |
Use SSH/SCP-style transfer |
import-dotfiles¶
Import an encrypted dotfiles archive from a local path or URL.
copy-assets¶
Copy packaged helper assets from the library onto the current machine.
Examples:
dump¶
Write example configuration files into the current directory.
At the moment, ve writes .ve.example.yaml in the current working directory.
terminal¶
Terminal setup lives under a nested Typer app:
devops config terminal --help currently exposes:
| Command | Description |
|---|---|
config-shell |
Create or configure the default shell profile or Nushell profile |
starship-theme |
Interactive Starship prompt theme selection |
pwsh-theme |
Interactive PowerShell prompt theme selection |
wezterm-theme |
Interactive WezTerm theme selection |
ghostty-theme |
Interactive Ghostty theme selection |
windows-terminal-theme |
Interactive Windows Terminal color scheme selection |
The nested help screens render Usage: devops terminal ..., but the full entrypoint remains devops config terminal ....
Examples:
devops config terminal config-shell --which default
devops config terminal config-shell --which nushell
devops config terminal wezterm-theme
devops config terminal ghostty-theme
data¶
Data backup and retrieval operations.
Back up configured files and directories to cloud storage, retrieve them back, and maintain the backup item registry.
Current devops data --help exposes:
| Command | Description |
|---|---|
sync |
Generate backup or retrieve commands through cloud copy |
register |
Add or update a backup entry in the user data-mapping file |
edit |
Open the user or library backup configuration file |
sync¶
Generate backup or restore commands for registered items.
up means backup to the cloud. down means retrieve from the cloud.
Key options from current help:
| Option | Description |
|---|---|
--cloud, -c |
Select the rclone config name to use |
--which, -w |
Choose specific items, a whole group, or all |
--repo, -r |
Load backup entries from library, user, or all |
If --which is omitted, the command falls back to interactive selection. The selector accepts:
- a group name such as
dotfiles - a specific item such as
dotfiles.bashrc allfor every applicable entry
Examples:
# Generate commands to back up every registered item
devops data sync up --which all
# Generate commands to restore one group from the user backup config
devops data sync down --repo user --which dotfiles
# Generate commands for selected entries with a specific cloud config
devops data sync up --cloud myremote --which dotfiles.bashrc,history.shell
devops data sync filters entries by the current OS and then prints the generated cloud copy script based on each item's os, zip, encrypt, and rel2home fields.
register¶
Add or update one entry inside the user backup configuration file at ~/dotfiles/machineconfig/mapper_data.toml.
Key options from current help:
| Option | Description |
|---|---|
--group, -g |
Target group/table name inside the config file |
--name, -n |
Override the generated entry name |
--path-cloud, -C |
Override the remote path; omit it to let machineconfig deduce one |
--zip, -z |
Zip before upload |
--encrypt, -e |
Encrypt before upload |
--rel2home, -r |
Store the local path relative to your home directory |
--os, -o |
Restrict the entry to linux, darwin, windows, or a comma-separated list |
Examples:
# Register a config directory for encrypted, zipped backup
devops data register ~/.config/wezterm --group dotfiles --zip --encrypt
# Register a directory with an explicit cloud path
devops data register ~/Documents/work --group documents --path-cloud backups/work --os linux,darwin
If --name is omitted, the command generates one from the local path and OS filter.
edit¶
Open the backup configuration file in nano, hx, or code.
The user backup config is created automatically if it does not exist yet.
Backup File Layout¶
The user backup file uses grouped TOML tables. A representative entry looks like this:
[dotfiles]
wezterm = { path_local = "~/.config/wezterm", path_cloud = "^", encrypt = true, zip = true, rel2home = true, os = "linux,darwin" }
Selection behavior for devops data sync --which ...:
dotfilesselects the whole groupdotfiles.weztermselects one itemallselects every applicable item
The nested help screens render Usage: devops sync ..., devops register ..., and devops edit ..., but the full entrypoints remain devops data sync ..., devops data register ..., and devops data edit ....
self¶
Self management commands.
Manage machineconfig itself: upgrades, bootstrap scripts, install flows, docs preview, CLI graph exploration, and repo-local developer utilities.
Current devops self --help exposes:
| Command | Description | Availability |
|---|---|---|
update |
Upgrade machineconfig and optionally refresh copied assets or public config links | Always |
init |
Print or run packaged init/setup scripts | Always |
status |
Inspect shell profile, apps, symlinks, dotfiles, and related machine state | Always |
install |
Install machineconfig locally, export an offline image, or run the interactive setup flow | Always |
explore |
Inspect the CLI graph in terminal, DOT, Plotly, or TUI form | Always |
build-docker |
Build Docker images from the repo script | Only when ~/code/machineconfig exists |
security |
Run security and installer-audit helpers | Only when ~/code/machineconfig exists |
docs |
Serve the local docs preview, optionally after rebuilding | Only when ~/code/machineconfig exists |
assets |
Regenerate the checked-in CLI graph snapshot and chart artifacts | Only when ~/code/machineconfig exists |
readme |
Fetch and render the project README in the terminal | Always |
The nested help screens render shortened usage such as Usage: devops update ..., but the full entrypoints remain devops self ... and devops self security ....
update¶
Upgrade the installed tool and optionally re-apply local assets or public configs.
Key options from current help:
| Option | Description |
|---|---|
--assets-copy, -a |
Copy packaged assets onto the current machine after the update |
--link-public-configs, -b |
Re-link public configs after the update |
Current behavior:
- If
~/code/machineconfigexists, the command runsuv self update,git pull, and reinstalls the repo checkout as an editable tool. - Otherwise it updates
uvand upgrades the installedmachineconfigtool package. - On non-Windows platforms,
--assets-copyand--link-public-configstrigger follow-up local configuration work after the tool update.
Examples:
init¶
Print one of the packaged init/setup scripts, or execute it immediately with --run.
Supported WHICH values from current help:
| Value | Meaning |
|---|---|
init |
Print the shell init script for the current platform |
ia |
Print the interactive setup bootstrap script |
live |
Print the live-from-GitHub bootstrap script |
Key option:
| Option | Description |
|---|---|
--run, -r |
Run the selected script instead of printing it |
Examples:
status¶
Run the self-audit report for the current machine.
This command delegates to the status helper that inspects installed tools, shell profile state, symlinks, and managed config layout.
install¶
Install machineconfig, clone a local development checkout when requested, export an offline image, or hand off to the interactive setup flow.
Key options from current help:
| Option | Description |
|---|---|
--copy-assets, -a |
Copy packaged assets after installation |
--dev, -d |
Install from a local development checkout instead of PyPI |
--export, -e |
Export installation files for an offline image |
--interactive, -i |
Run the interactive configuration flow instead of a direct install |
Current behavior:
--interactiveswitches into the guided setup flow immediately.--exportproduces the offline-installation image and exits.--devclones~/code/machineconfigfirst when that checkout does not already exist, then installs it editable.- Without a local checkout, the default path installs the published tool package.
Examples:
devops self install
devops self install --dev
devops self install --interactive
devops self install --export
explore¶
CLI graph inspection lives under a nested Typer app:
Current devops self explore --help exposes:
| Command | Description |
|---|---|
search |
Search all cli_graph.json command entries |
tree |
Render a rich tree view in the terminal |
dot |
Export the graph as Graphviz DOT |
sunburst |
Render a Plotly sunburst view |
treemap |
Render a Plotly treemap view |
icicle |
Render a Plotly icicle view |
tui |
Open the full-screen Textual navigator |
search¶
Interactive fuzzy-search over the generated CLI graph JSON. By default it runs --help
for the selected command or group; use --show-json to print the raw graph entry.
Key option:
| Option | Description |
|---|---|
--graph-path, -g |
Override the path to cli_graph.json |
--show-json |
Print the selected cli_graph.json entry instead of running help |
Representative JSON result excerpt:
{
"kind": "command",
"name": "tree",
"help": "š³ <t> Render a rich tree view in the terminal.",
"source": {
"file": "src/machineconfig/scripts/python/graph/visualize/cli_graph_app.py",
"module": "machineconfig.scripts.python.graph.visualize.cli_graph_app",
"callable": "tree"
}
}
tree¶
Render the graph as a terminal tree.
Key options from current help:
| Option | Description |
|---|---|
--show-help |
Include help text in each node label |
--show-aliases |
Include hidden aliases in labels |
--max-depth, -d |
Limit the rendered depth |
Example:
Representative output:
mcfg - MachineConfig CLI - Manage your machine configurations and workflows
āāā devops - š§ DevOps operations
ā āāā install - š§ <i> Install essential packages
ā āāā repos - š <r> Manage development repositories
ā āāā config - š§° <c> configuration subcommands
ā āāā data - š <d> Backup and retrieve configuration files and directories to/from cloud storage using rclone.
ā āāā self - š <s> self operations subcommands
ā āāā network - š <n> Network subcommands
ā āāā execute - š <e> Execute python/shell scripts from pre-defined directories or as command
āāā cloud - ā Cloud management commands
āāā sessions - Layouts management subcommands
āāā agents - š¤ AI Agents management subcommands
āāā utils - ā utilities operations
āāā fire - <f> Fire and manage jobs
āāā croshell - <r> Cross-shell command execution
dot¶
Export the graph as Graphviz DOT text.
Key options from current help:
| Option | Description |
|---|---|
--output, -o |
Write DOT output to a file |
--include-help |
Include help text in labels |
--max-depth, -d |
Limit the exported depth |
Example:
Representative output:
digraph cli_graph {
graph [rankdir=LR, splines=true, bgcolor="white"];
node [shape=box, style="rounded,filled", fontname="Helvetica", fontsize=10, color="#333333"];
edge [color="#999999"];
"mcfg" [label="mcfg\nMachineConfig CLI - Manage your machine configurations and workflows", shape="doubleoctagon", fillcolor="#f1f1f1", color="#555555"];
"mcfg devops" [label="devops\nš§ DevOps operations", shape="box", fillcolor="#dbeafe", color="#2563eb"];
"mcfg" -> "mcfg devops";
"mcfg devops self" [label="self\nš <s> self operations subcommands", shape="box", fillcolor="#dbeafe", color="#2563eb"];
"mcfg devops" -> "mcfg devops self";
}
sunburst¶
Render the graph as a Plotly sunburst view.
Key options from current help:
| Option | Description |
|---|---|
--output, -o |
Write HTML or image output |
--max-depth, -d |
Limit the exported depth |
--template |
Plotly template name |
--height |
Static image height |
--width |
Static image width |
Example:
devops self explore sunburst --output docs/assets/devops-self-explore/sunburst.html --template plotly_dark
Standalone HTML result: sunburst.html
treemap¶
Render the graph as a Plotly treemap view.
The option set matches sunburst: --output, --max-depth, --template, --height, and --width.
Example:
devops self explore treemap --output docs/assets/devops-self-explore/treemap.html --template plotly_dark
Standalone HTML result: treemap.html
icicle¶
Render the graph as a Plotly icicle view.
The option set matches sunburst: --output, --max-depth, --template, --height, and --width.
Example:
devops self explore icicle --output docs/assets/devops-self-explore/icicle.html --template plotly_dark
Standalone HTML result: icicle.html
tui¶
Open the full-screen Textual navigator.
Interactive controls:
/focuses searchccopies the selected commandrruns the selected commandbbuilds the selected command with arguments?opens in-app helpqquits
No static screenshot is checked into the docs for the TUI. Launch it locally to inspect the current command tree.
build-docker¶
Build the repo Docker image variants through the checked-in shell wrapper.
Supported variants from current help:
| Variant | Meaning |
|---|---|
slim |
Build the slim image |
ai |
Build the AI-oriented image |
Example:
This command is only registered when ~/code/machineconfig exists locally.
security¶
Security helpers live under a nested Typer app:
Current devops self security --help exposes:
| Command | Description |
|---|---|
scan |
Scan installed apps or a single file with VirusTotal |
list |
List installed apps, optionally filtered by name |
upload |
Upload a local file to the project cloud storage |
download |
Download a file from Google Drive |
install |
Install safe apps from the saved app metadata report |
repo-licenses |
Download GitHub repo license files for installer entries |
report |
Inspect saved scan reports, raw rows, or summary statistics |
scan¶
Scan installed apps or one local file path with VirusTotal.
Key options from current help:
| Option | Description |
|---|---|
APPS |
Optional comma-separated app names to scan |
--path |
Scan one explicit file path instead of installed apps |
--record, --no-record |
Control whether the result is saved into the repo reports |
Examples:
devops self security scan
devops self security scan git,uv
devops self security scan --path ./downloads/tool.exe --no-record
list¶
List the installed CLI apps that the security tooling knows how to inspect.
Example:
upload¶
Upload one local file into the cloud storage used by the security workflow.
Example:
download¶
Download a previously shared file from Google Drive.
The argument can be a full Google Drive URL or a raw file id.
install¶
Install a safe app from the saved metadata report.
NAME can be one app entry from the report or the special essentials bundle.
repo-licenses¶
Download GitHub license files for repos referenced by the installer metadata.
Key option:
| Option | Description |
|---|---|
--github-token |
GitHub token, also read from MACHINECONFIG_GITHUB_TOKEN, GITHUB_TOKEN, or GH_TOKEN |
report¶
Inspect saved report data in full, summary, table, or CSV form. The default invocation shows the full engine-level report.
Key options from current help:
| Option | Description |
|---|---|
APPS |
Optional comma-separated app names to filter on |
--view, -v |
Choose engines, app-summary, apps, options, or stats |
--format, -f |
Choose table or csv output for the raw apps and engines views |
Examples:
devops self security report
devops self security report --view app-summary
devops self security report --view stats
devops self security report uv --view apps --format csv
devops self security report git --view engines
This command is only registered when ~/code/machineconfig exists locally.
docs¶
Serve the local docs preview and print the localhost and LAN URLs.
Key options:
| Option | Description |
|---|---|
--rebuild, -b |
Rebuild the docs before starting the preview server |
--create-artifacts, -a |
Regenerate the Plotly CLI graph HTML artifacts before serving |
Current behavior:
- Prints
http://127.0.0.1:8000/machineconfig/and, when available, the LAN preview URL. - With
--rebuild, syncs the changelog and runszensical buildbeforezensical serve. - With
--create-artifacts, refreshes the checked-in CLI graph HTML exports underdocs/assets/devops-self-explore/. - Serves on
0.0.0.0:8000.
Examples:
assets¶
Regenerate the checked-in CLI graph JSON and chart artifacts from the local repo checkout.
Current devops self assets --help exposes:
| Command | Description |
|---|---|
update-cli-graph |
Rewrite src/machineconfig/scripts/python/graph/cli_graph.json from the current Typer source |
regenerate-charts |
Rewrite docs/assets/devops-self-explore/sunburst.html from the current graph snapshot |
Examples:
This sub-app is only registered when ~/code/machineconfig exists locally.
readme¶
Fetch the project README from GitHub and render it as rich Markdown in the terminal.
This is useful when the repo checkout is not open locally but you still want the current upstream README rendered in the terminal.
network¶
Network management.
Network configuration, sharing, SSH setup, device-focused WiFi/WARP/WSL helpers, and VS Code tunneling.
Current devops network --help exposes:
| Command | Description |
|---|---|
share-terminal |
Share a terminal in the browser |
share-server |
Start a local or internet-facing file server |
send |
Send files or text from the current machine |
receive |
Receive files or text using a transfer code |
share-temp-file |
Upload one file to temp.sh |
ssh |
SSH server, key, and debugging subcommands |
device |
Device-oriented WiFi, WARP, and WSL subcommands |
show-address |
Show local and public addresses |
vscode-share |
Share a workspace with VS Code Tunnels or serve-web |
share-terminal¶
Share a terminal through the browser.
Key options from current help:
| Option | Description |
|---|---|
--port, -p |
Port for the terminal server |
--username, -u |
Login username |
--password, -w |
Login password |
--no-auth, -n |
Disable authentication |
--start-command, -s |
Command to start in the shared terminal |
--ssl, -S |
Enable SSL |
--ssl-cert, -C |
Certificate file path |
--ssl-key, -K |
Key file path |
--ssl-ca, -A |
CA file for client certificate verification |
--over-internet, -i |
Expose via ngrok |
--install-dep, -D |
Install missing dependencies |
Example:
share-server¶
Start a local or internet-facing file browser or static share server.
Key options from current help:
| Option | Description |
|---|---|
--port, -p |
Port for the share server |
--username, -u |
Login username |
--password, -w |
Login password |
--no-auth, -na |
Disable authentication |
--bind, -a |
Bind address |
--over-internet, -i |
Expose via ngrok |
--backend, -b |
Backend choice from filebrowser, miniserve, qrcp, or easy-sharing |
--install-dep, -D |
Install missing dependencies |
Example:
send¶
Send a file, directory, or text payload.
Key options from current help:
| Option | Description |
|---|---|
--zip |
Zip the folder before sending |
--code, -c |
Explicit relay codephrase |
--text, -t |
Send text instead of file contents |
--qrcode, --qr |
Show the receive code as a QR code |
--backend, -b |
Transfer backend: wormhole or croc |
--install-dep, -D |
Install missing dependencies |
Examples:
receive¶
Receive files or text using a codephrase or explicit relay arguments.
The argument may be a plain receive code such as 7121-donor-olympic-bicycle or a full relay invocation such as --relay 10.17.62.206:443 7121-donor-olympic-bicycle.
Example:
share-temp-file¶
Upload one file to temp.sh.
Example:
ssh¶
SSH setup and troubleshooting lives under a nested Typer app:
devops network ssh --help currently exposes:
| Command | Description |
|---|---|
install-server |
Install the SSH server |
change-port |
Change the SSH port on Linux or WSL |
add-key |
Add an SSH public key locally or remotely |
debug |
Run SSH diagnostics |
install-server¶
Installs and configures the platform SSH server.
change-port¶
Key option:
| Option | Description |
|---|---|
--port, -p |
SSH port to use |
add-key¶
Key options from current help:
| Option | Description |
|---|---|
--path |
Path to a public key file |
--choose, -c |
Choose from ~/.ssh/*.pub |
--value, -v |
Paste the public key manually |
--github, -g |
Pull public keys from a GitHub username |
--remote, -r |
Deploy the key to a remote machine |
Examples:
devops network ssh add-key --choose
devops network ssh add-key --github thisismygitrepo
devops network ssh add-key --path ~/.ssh/id_ed25519.pub --remote myhost
debug¶
Runs platform-specific SSH debugging helpers.
device¶
Device-specific network actions now live under a nested Typer app:
devops network device --help currently exposes:
| Command | Description |
|---|---|
switch-public-ip |
Switch the public IP through Cloudflare WARP |
wifi-select |
Connect using configured or manually selected WiFi |
bind-wsl-port |
Bind a WSL port onto the Windows host |
open-wsl-port |
Open Windows Firewall rules for WSL ports |
link-wsl-windows |
Link WSL home and Windows home directories |
reset-cloudflare-tunnel |
Reconfigure Cloudflare tunnel execution |
add-ip-exclusion-to-warp |
Add WARP tunnel exclusions |
show-address¶
Show local interface addresses plus the public IP address when available.
Example:
switch-public-ip¶
Switch the public IP through Cloudflare WARP.
Key options from current help:
| Option | Description |
|---|---|
--wait, -w |
Seconds to wait between steps |
--max-trials, -m |
Maximum number of switch attempts |
--target-ip, -t |
Acceptable target IPs that skip the switch if already active |
Example:
wifi-select¶
Connect to WiFi using the configured SSID or an interactive fallback flow.
Key options from current help:
| Option | Description |
|---|---|
--ssid, -n |
Configured SSID to try first |
--manual, -m |
Jump directly to manual selection |
--list, -l |
Only list visible networks |
Examples:
bind-wsl-port¶
Bind a WSL port onto the Windows host using netsh interface portproxy.
open-wsl-port¶
Open Windows Firewall rules for one or more WSL ports.
link-wsl-windows¶
Link WSL home and Windows home directories.
Key option:
| Option | Description |
|---|---|
--windows-username, -u |
Override the auto-detected Windows username |
reset-cloudflare-tunnel¶
Print or run the commands needed to reconfigure Cloudflare tunnel execution.
Key options from current help:
| Option | Description |
|---|---|
--task, -t |
Required mode: oneoff-shell-process, oneoff-background-process, or as-service |
--tunnel-name, -n |
Tunnel name for one-off modes |
Examples:
devops network device reset-cloudflare-tunnel --task oneoff-shell-process --tunnel-name my-tunnel
devops network device reset-cloudflare-tunnel --task as-service
add-ip-exclusion-to-warp¶
Add one or more IP exclusions to Cloudflare WARP.
vscode-share¶
Generate or run VS Code Tunnel and code serve-web commands.
Supported actions from current help:
runinstall-serviceuninstall-serviceshare-local
Key options from current help:
| Option | Description |
|---|---|
--name, -n |
Tunnel or service name |
--path, -p |
Server base path for share-local |
--host, -h |
Host for share-local |
--dir, -d |
Folder to open in share-local mode |
--extra-args, -e |
Extra CLI arguments to append |
Examples:
devops network vscode-share run --name labbox
devops network vscode-share install-service --name labbox
devops network vscode-share share-local --dir . --host 0.0.0.0
The nested help screens render shortened usage such as devops share-server ..., devops ssh ..., devops device ..., or devops vscode-share ..., but the full entrypoints remain under devops network ....
execute¶
Execute Python or shell scripts from pre-defined directories.
Options¶
| Option | Short | Description |
|---|---|---|
--where |
-w |
Script location: all, private, public, library, dynamic, custom |
--interactive |
-i |
Interactive selection of scripts |
--command |
-c |
Run as command |
--list |
-l |
List available scripts |
Examples¶
# Run a script by name
devops execute my_script
# List all available scripts
devops execute --list
devops e -l
# Interactive script selection
devops execute --interactive
devops e -i
# Run from specific location
devops execute my_script --where private