Command-Line Tool (`syschecks`)

syschecks is the official operational CLI — for checking state, running an operation by hand, debugging from your terminal, and using Syschecks in scripts and CI. Where the IaC providers answer “how do I declare my config?”, the CLI answers “is it up right now, and did my deploy pass?”

Built on the official SDK

A single static binary (Linux/macOS/Windows) built on syschecks-go. No runtime dependencies — drop it into a container or a CI job. Source: github.com/systeampl/syschecks-cli.

Install

Download the binary for your platform and put it on your PATH. The examples pin v0.1.0 — swap in the newest tag from the Releases page (asset names carry the version without the leading v, e.g. 0.1.0).

bash
# Linux amd64
curl -sL https://github.com/systeampl/syschecks-cli/releases/download/v0.1.0/syschecks_0.1.0_linux_amd64.tar.gz \
  | tar xz && sudo mv syschecks /usr/local/bin/
syschecks version

# macOS (Apple silicon) — swap darwin_arm64 for darwin_amd64 on Intel
curl -sL https://github.com/systeampl/syschecks-cli/releases/download/v0.1.0/syschecks_0.1.0_darwin_arm64.tar.gz \
  | tar xz && sudo mv syschecks /usr/local/bin/

# or, with Go installed:
go install github.com/systeampl/syschecks-cli@latest

Authenticate

The CLI uses a Personal Access Token (PAT). For interactive use, log in once; for CI, set an environment variable.

bash
# Human: store a PAT for the current context (0600 on disk, never logged)
echo "$MY_PAT" | syschecks auth login --with-token
syschecks auth whoami

# CI: no login step needed
export SYSCHECKS_TOKEN=pat_...
export SYSCHECKS_API_URL=https://api.syschecks.com

kubectl-style contexts

Manage multiple environments with named contexts (config lives in ~/.config/syschecks/, secrets kept out of config.yaml):
bash
syschecks config set-context prod --api-url https://api.syschecks.com --org acme
syschecks config use-context prod

Everyday commands

bash
syschecks org list
syschecks project list --org acme
syschecks check list
syschecks check get prod-api
syschecks check run prod-api --wait --timeout 120s   # trigger + wait for the result
syschecks check pause prod-api
syschecks incident list --status open
syschecks agent list --org acme
syschecks notification list
syschecks notification test 3

Diagnostics: `probe`

Run HTTP/DNS/TLS checks straight from your machine — a per-phase timing breakdown and certificate expiry, no account or agent needed:

bash
$ syschecks probe http https://example.com
status  dns        connect     tls         ttfb          total         cert_expiry
200     18ms       31ms        54ms        112ms         184ms         2026-10-27T22:17:21Z

syschecks probe dns example.com
syschecks probe tls example.com:443

CI gate: `verify`

The highest-value command for pipelines. verify makes a request and asserts the result, returning an exit code your CI reads directly — post-deploy validation in one line:

bash
# after a deploy — fail the job if the endpoint is wrong
syschecks verify \
  --url https://api.example.com/health \
  --expect-status 200 \
  --expect-json '.status == "ok"'
GitHub Actions
- name: Verify production
  run: syschecks verify --url https://api.example.com/health --expect-status 200 --expect-json '.status == "ok"'

Scripting: output & exit codes

Every command takes a global --output and honors a stable exit-code contract.

bash
syschecks check list --output json | jq '.[] | select(.status == "DOWN")'
syschecks check list --quiet     # just ids, one per line
Exit codeMeaning
0Success / assertion passed
1verify or check run --wait failed (target down / assertion false)
2Configuration, authentication, API, or usage error

Errors print to stderr; with --output json they are emitted as {"error": "..."}. Output formats: table (default), json, yaml. Shell completion: syschecks completion bash|zsh|fish.

Client-side by design

probe and verify run entirely from your machine (they hit the target URL directly, not the Syschecks API), so they work with zero account configuration — ideal as a lightweight CI dependency.