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).
# 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@latestAuthenticate
The CLI uses a Personal Access Token (PAT). For interactive use, log in once; for CI, set an environment variable.
# 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.comkubectl-style contexts
~/.config/syschecks/, secrets kept out of config.yaml):syschecks config set-context prod --api-url https://api.syschecks.com --org acme
syschecks config use-context prodEveryday commands
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 3Diagnostics: `probe`
Run HTTP/DNS/TLS checks straight from your machine — a per-phase timing breakdown and certificate expiry, no account or agent needed:
$ 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:443CI 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:
# 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"'- 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.
syschecks check list --output json | jq '.[] | select(.status == "DOWN")'
syschecks check list --quiet # just ids, one per line| Exit code | Meaning |
|---|---|
0 | Success / assertion passed |
1 | verify or check run --wait failed (target down / assertion false) |
2 | Configuration, 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.