syst is a CLI system utility tool. There are multiple subcommands for getting/showing platform info, creating .zip backups, and pinging sites/hosts. More functionality will be added over time.
Warning
This app is a personal project I'm using to learn Go. There is no warranty or guarantee when using this app, use at your own risk.
You can download & install syst on Linux & Mac using the install-syst.sh script.
To download & install in 1 command, do:
curl -LsSf https://raw.githubusercontent.com/redjax/syst/refs/heads/main/scripts/install-syst.sh | bash -s -- --autoFor Windows, use:
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/redjax/syst/refs/heads/main/scripts/install-syst.ps1))) -AutoInstall a release from the releases page. You can check the Release pipeline to see the results of security scans (secrets & vulnerabilities) that run before each release.
Clone this repository and run one of the build scripts.
To enable tab-completion for syst commands, run one of the following:
- Bash:
syst completion bash > ~/.local/share/bash-completion/completions/syst - Zsh:
syst completion zsh > ~/.local/share/zsh/completions/_syst- Add the completion to your
$fpathin your.zshrc:fpath=(~/.local/share/zsh/completions $fpath)- Then initialize your completions by adding these lines to
~/.zshrc:autoload -U compinitcompinit
- Add the completion to your
- Powershell:
syst completion powershell > syst.ps1- Open your
$PROFILEpath by running:ii (Split-Path -Path $PROFILE -Parent) - Create a directory, i.e.
completions/ - Move the
syst.ps1into thecompletions/directory - In your
$PROFILE, source the completions by adding the following:$PROFILE_PATH = (Split-Path -Path $PROFILE -Parent). "$($PROFILE_PATH)/completions/syst.ps1
- Open your
Each release undergoes comprehensive security scans (secret leaks, dependency vulnerabilities, and Go-specific vulnerability checks) before being published. If critical vulnerabilities are detected, the release is cancelled.
This repository also undergoes nightly scans for secret leaks, vulnerabilities, and codeQL. You can see the results in one of the following places:
| Scan | Description |
|---|---|
| codeQL Analysis | codeQL does "variant analysis" on code to detect problems similar to existing vulnerabilities. |
| OSV scan | Open Source Vulnerabilities (OSV) is a distributed vulnerabilities database for open source projects. |
| secrets scan | Scans repository for strings that look like secrets. Uses the gitlinks scanner. |
| vulnerability scan | Scans Go code for vulnerabilities using the govulncheck Github Action. |
The CLI includes a self subcommand, which allows for running syst self upgrade to download a new release. The new version will be downloaded to syst.new in the same path as the existing syst binary, and on the next execution syst will replace the old binary with the new one.
Run syst --help to print the help menu. For each subcommand, i.e. syst show, you can also run --help to see scoped parameters for that subcommand.
Each subcommand has a README.md file explaining its purpose/usage.
Browse the commands/ directory to read more about subcommands for this CLI.
On Linux, run sudo rm $(which syst) to uninstall syst.
If you have an issue with the self upgrade command, you can uninstall & reinstall syst with this:
Linux:
command -v syst >/dev/null 2>&1 && sudo rm "$(command -v syst)" &>/dev/null
curl -LsSf https://raw.githubusercontent.com/redjax/syst/refs/heads/main/scripts/install-syst.sh | bash -s -- --autoYou can also uninstall syst, then reinstall using the one-liner at the top of this page.