Safeguard
Application Security•

How the local runner and offline databases work

The runner is part of the Safeguard CLI. It scans on your machine and uploads only results. Here is how it connects, how to run it headless, and what the docs say about offline use.

Safeguard Security Team
3 min read

Some code cannot be handed to a cloud service. The Safeguard local runner exists for that case. It is not a separate product. It is a mode of the safeguard CLI that runs the platform's scan jobs on your own machine.

How it works

Install the CLI, open the interactive terminal, sign in, and the machine starts polling the platform for jobs assigned to it.

# macOS and Linux
curl -fsSL https://cli.safeguard.sh/install | bash

# Windows
irm https://cli.safeguard.sh/install.ps1 | iex

safeguard
# type /login, approve the session in your browser

The first run downloads the scanner tools and the vulnerability database. Per the runner docs:

  • The runner sends a heartbeat and polls for jobs. All traffic is outbound HTTPS that the runner opens. Nothing connects to it.
  • It executes a claimed job with its own local scan server.
  • It uploads the result files, the SBOM and findings, and reports job status. Source code stays on the machine.

When to use it

The docs name three cases: a private repository where you cannot or will not give a cloud service OAuth access, a restricted network where only outbound HTTPS is allowed, and work on code you have not pushed yet.

Headless and assistant modes

safeguard runner start --workspace ./path/to/repo
safeguard runner status
safeguard runner stop

On networks that forbid held connections, the docs describe a poll wait option to use fixed interval polling instead. There is also a permission mode that sets how much the assistant may do without asking, from supervised to autonomous.

The assistant runs on the same machine:

safeguard agent "fix the critical CVEs in this repository"
safeguard exec "summarise the critical findings"

The exec command is for scripts and CI. It defaults to strict permissions: nothing is asked, and anything the policy file has not pre-approved is denied.

The desktop app (beta) can connect to a local runner through its This computer setting.

Offline databases

The CLI overview lists offline databases as a feature: the update command with an import option loads a vulnerability database that you downloaded somewhere else. Note that the update command refreshes vulnerability databases, not the binary. To update the binary use the self-update command.

Be precise about what this covers. The docs describe importing a database for scanning. They do not describe the interactive terminal working without any connection to the platform, since signing in and polling are how jobs arrive. A separate air-gapped deployment page describes running the whole Safeguard platform inside a closed network with signed snapshot bundles delivered by diode, removable media or a scheduled sync. That is a deployment model arranged with Safeguard, not a CLI flag.

Also note the CLI support matrix page shows Offline Mode as a plan-dependent row, so confirm availability on your plan with Safeguard.

Zero AI

The CLI scanner can use an LLM for optional source analysis, and Zero AI mode works with everything running without an LLM.

Try it yourself

Click through it at your own pace, or open it full screen.

Quick check

What leaves the machine when the runner scans a repository?

The result files only: the SBOM and findings. Source code stays on the machine.

Does the runner accept inbound connections?

No. All traffic is outbound HTTPS that the runner opens.

Sources

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.