The Safeguard desktop app for Windows, macOS and Linux gives you your conversations, scans and approvals in one native window. Use it to pick up sessions you started in the terminal, send work to a folder on your computer, approve every command and file edit, and scan local projects without switching between tools.
The desktop app is the platform in its own window, and you keep the AI tools you use today. Bring the Claude, ChatGPT or Codex plan you already pay for and use it inside the Safeguard CLI. Safeguard adds no extra charge for that usage; your plan's own usage limits and terms still apply. You can also connect Claude or ChatGPT to the Safeguard MCP server and ask about your findings from the chat you already use, while the desktop app stays your place for approvals and results.
This guide covers installation on each operating system, a tour of the window, six workflows you can use every day, and what to do when something does not behave.
What you will have at the end
When you finish, you will have:
- The desktop app 3.2.2 installed and verified on Windows, macOS or Linux, signed in to your Safeguard account.
- The Safeguard CLI on the same computer, so the app can send work to a folder and the session shows everywhere you sign in.
- A routine for each common job: reading a terminal session on the desktop, asking for a fix in a chosen folder, approving each step, scanning local projects, running allowlisted commands, and scheduling recurring tasks.
- Keyboard shortcuts and settings that keep the window out of your way.
- A checklist for the usual problems, from SmartScreen warnings to an AppImage that will not start.
The examples use payments-api, the sample Node project with test data from Safeguard's recorded demos. Replace it with your own folder.
Install and sign in on Windows, macOS or Linux
All three builds are on the download page. Pick your system and follow the matching steps.
Windows 10 and 11
- Download
Safeguard-3.2.2.exe. One installer covers both x64 and ARM; smaller architecture-specific installers are also linked. - Verify the file before you run it. In a terminal in your Downloads folder:
certutil -hashfile Safeguard-3.2.2.exe SHA256
Compare the output with the SHA-256 printed on the download page. Microsoft documents -hashfile as generating and displaying a cryptographic hash over a file.
- Run the installer. It installs per user and needs no administrator rights.
- Expect a SmartScreen warning. These builds are not yet code-signed, so Windows shows "Windows protected your PC". Microsoft's documentation explains that SmartScreen warns about downloaded apps that have no established reputation. Once the checksum matches, choose More info, then Run anyway.
If you need help with the CLI on Windows as well, see installing the Safeguard CLI on Windows.
macOS 12 or later
- Check your chip under Apple menu, About This Mac. "Apple M" means Apple Silicon; "Intel" means x64.
- Download
Safeguard-3.2.2-arm64.dmgfor Apple Silicon, or the Intel build linked under the button. - Optionally compare the checksum with the release's SHA256SUMS file:
shasum -a 256 ~/Downloads/Safeguard-3.2.2-arm64.dmg
- Open the .dmg and drag Safeguard to Applications. Both builds are signed with Safeguard's Developer ID and notarized by Apple, so there are no warnings to click through.
Linux x86_64
- Download
Safeguard-3.2.2-x86_64.AppImage. It needs a 64-bit x86 Linux with FUSE available. - Install the Safeguard CLI first. The download page notes the Linux build needs the CLI installed and on your PATH.
- Verify, mark it executable and run it:
sha256sum Safeguard-3.2.2-x86_64.AppImage
chmod +x Safeguard-3.2.2-x86_64.AppImage
./Safeguard-3.2.2-x86_64.AppImage
An AppImage needs no installer, and uninstalling means deleting the file. Our guide to installing the Safeguard CLI on Linux covers the CLI side in detail.
Sign in, then add the CLI
Open the app and sign in the same way you would in a browser. Then, if you have not already, install the CLI on the same computer and sign it in. This is what lets the desktop app send work to a folder:
curl -fsSL https://cli.safeguard.sh/install | bash # macOS and Linux
safeguard login
On Windows, use irm https://cli.safeguard.sh/install.ps1 | iex in PowerShell, then safeguard login.
Find your way around the window
The main view is your conversation list and the chat. Every conversation on your account is here, including sessions you started in the terminal with safeguard, because a CLI session is live and shows in the web, desktop and phone apps.
Below the message box you will see the model the chat is using and a 2 connected indicator. Open it to see what this chat can use: the computer running the Safeguard CLI, the browser under Safeguard control with its Ask, Auto or Yolo setting, and Safeguard cloud.
The desktop app docs also describe a local panel with six tabs: Files, Scan, Terminal, MCP, Tasks and Settings. These shortcuts come from the same page:
| Action | Windows and Linux | macOS |
|---|---|---|
| Show or hide the panel | Ctrl+Shift+S | Cmd+Shift+S |
| New scan | Ctrl+N | Cmd+N |
| Open project | Ctrl+O | Cmd+O |
| Open settings | Ctrl+, | Cmd+, |
Settings covers the auto-update mode, theme, minimize-to-tray, an action-approval mode, prompt-injection detection, and version and platform information.
Six workflows for an ordinary working day
1. Pick up a terminal session on the desktop
You started a fix in the terminal this morning and want to read the result in a bigger window.
- Open the desktop app. The CLI session is in the conversation list.
- Open it. The whole terminal run is there: your request, what changed and how it was checked, with the same summary the CLI printed.
- Continue the conversation from here if you want a follow-up, such as "list the other outdated dependencies in this project".
2. Send work to a folder on your computer
This is the workflow most people use every day. You ask in the chat; the work runs in a folder you choose; every command and file edit waits for you.
- Type the task in plain words. In the recorded session the request was: "On my computer, open ~/payments-api, tell me which lodash version it pins and whether it has known vulnerabilities, then run npm test."
- Pick where it works. Before it touches anything, the app asks which computer and folder to use. You can choose your computer, a recent folder, or Browse.
- Choose the folder. Browse to the project and click Open here.
- Approve each command. Every command shows exactly what will run. Approve runs it once; Deny stops it.
- Approve each file edit. Editing
package.jsonalso waits for you, and the card names the file it touches. - Watch the file changes build up. Changes appear under File changes as the work goes on, and the test command waits for your yes.
- Read the result. In the recording, lodash was upgraded, the lockfile matched and
npm testpassed with exit status 0. It also pointed out other dependencies worth a look.
Here is that session, recorded on a Mac on 21 October 2026. The app is the same on Windows and Linux.
Click through it at your own pace, or open it full screen.
Nothing is pushed for you. Review the diff, commit it yourself, and let your platform policies and gates check it before it ships.
3. Scan local projects from the panel
- Open the Files tab and grant access to the folders you want Safeguard to see. You can revoke access from the same tab.
- Open the Scan tab, add a local project and run a scan.
- Read the results by severity, then turn on auto-scan for projects you work on often.
The docs note that container scanning needs a local Docker or Podman daemon. If the Scan tab says "CLI not available", the bundled CLI is not available for your platform and scanning falls back to manifest-based analysis with reduced functionality; install the CLI to get full scans.
4. Run allowlisted commands in the Terminal tab
The Terminal tab runs a fixed allowlist of commands and shows the output in the app. According to the docs, that list covers Safeguard tools, version control (git, gh), containers (docker, podman), package managers such as npm, pip and cargo, runtimes (python, node, deno) and utilities such as curl, ssh, tar and make. The working directory must be inside a granted folder. Anything else is rejected before it runs, with an error naming the command and the full allowlist.
A useful pattern is to check the state of a branch before you ask for a fix:
git status
npm ls lodash
5. Hand off a task and schedule repeats
- Open the Tasks tab and describe the job in plain words, for example "scan payments-api and summarise anything new since yesterday".
- Watch its progress. When a step is about to take a destructive action, the task pauses and asks you to approve or deny it.
- To repeat it, schedule it with an interval: a number followed by s, m, h or d, such as
24hor7d. Cron expressions are not accepted.
6. Host MCP servers from the desktop
The MCP tab starts and stops MCP servers, including a one-click Safeguard server, and can connect external HTTP or SSE servers and call their tools. Each server shows whether it is starting, running, stopped or crashed, and how many tools it has. Which of the Safeguard server's tools an agent may call is set in your tenant settings through Tool Gating. If you would rather work from ChatGPT, see connecting ChatGPT to the Safeguard MCP server.
Putting it together: a sample morning
Here is how the six workflows fit into the first half hour of a working day. Adjust the order to suit your team.
- Read overnight results. Open the conversation list and the Tasks tab, and check any CLI sessions or scheduled tasks that ran since yesterday. Note anything marked critical or high.
- Check what changed locally. In the Terminal tab, run
git statusandgit log -5 --onelinein the project you are about to touch, so you know the starting point. - Ask one focused question. In the chat, ask about the most serious item: which versions fix it, and whether any of your projects use it.
- Send one fix to one folder. Use workflow 2. Keep the request narrow, such as one dependency in one project, so each approval is easy to read.
- Rescan and review. Run a scan from the Scan tab, or
/scan .in the CLI, then review the diff and commit it yourself. - Queue the rest. Anything you will not fix today goes into a scheduled task or a tracked task, so tomorrow starts from a list rather than from memory.
A narrow request is the single habit that makes this work. "Fix every vulnerability in the monorepo" produces a long run of approvals you cannot judge properly. "Upgrade lodash in payments-api and run the tests" produces three or four approvals you can read in seconds.
When you step away, the same conversations are on your phone. You can read the result there, or send the next fix to the same computer and approve it from the phone, as shown at the end of this guide.
Do the work properly with the Safeguard CLI
The desktop app sends work to your computer through the Safeguard CLI, so the CLI is worth knowing well. It scans code, container images and SBOMs on your own machine, sends only the results to the platform, and includes an assistant that can write and fix code with your approval.
Install
On macOS and Linux run curl -fsSL https://cli.safeguard.sh/install | bash; on Windows run irm https://cli.safeguard.sh/install.ps1 | iex. It is a single static binary with no Node, Python or JVM to install, for macOS, Linux and Windows on x86_64 or arm64 (Windows x86_64 only). The installer verifies the checksum first.
First session
Run safeguard with no arguments in a project folder to open the interactive terminal. /login signs you in through the browser, /scan . scans the folder, and you can type plain requests such as "how many critical vulns do we have". @ attaches a file from the folder you started in, and /resume picks up your last session there.
This recorded session shows the whole loop on a Mac: install, a fix request, approvals, then /permissions, /model and /scan ..
Click through it at your own pace, or open it full screen.
Writing and fixing code
The assistant has tools for your local files and for your Safeguard data. Ask "fix the lodash CVE in this repo" and it reads the finding, the files and the advisory, edits package.json to lodash 4.17.21, then asks before running npm install and npm test. It prints a summary with a suggested commit message and pushes nothing. With your approval it also handles ordinary terminal jobs, such as finding the latest file in ~/Downloads.
For scripted work, the scan command takes flags and writes JSON under ./output, including vuln.json and license.json:
safeguard scan --dir .
safeguard scan --image payments-api:latest
safeguard validate sbom.cdx.json
Using your Claude, ChatGPT or Codex plan
You can use the plan you already have inside the CLI, with no extra charge from Safeguard and within your plan's own limits and terms. Run /model to see or switch the model, and follow the Safeguard CLI docs to connect one.
Approvals
Anything that writes a file, edits code or runs a command asks first, according to /permissions:
- Ask: reads run; edits and commands ask first.
- Accept edits: edits in this folder and read-only commands run; other commands ask.
- Plan: read and plan only.
- Auto (default): read-only commands and what the policy allows run; anything else asks.
- Strict: pre-approved actions only, for CI.
A --yolo flag approves everything; keep it for throwaway sandboxes. If you approve an edit you regret, safeguard checkpoints restore with --dry-run previews the undo first. Shell command output is not snapshotted, so rerun installs after a restore.
CI with safeguard exec
safeguard exec "summarise the critical findings in this repository" runs one non-interactive turn and prints the result, which suits a pipeline step. Use Strict there. Policies and gates are evaluated in the platform, not by the CLI. See running the CLI in CI with safeguard exec.
When the local runner runs platform scan jobs, your source code stays on your machine; only SBOMs and findings are uploaded.
Troubleshooting and common mistakes
Fixes for common problems
SmartScreen blocks the installer. Expected until code signing lands. Verify the checksum, then More info and Run anyway.
The AppImage will not start on Linux. Check that FUSE is available. The AppImage project's documentation says AppImages rely on FUSE; on Ubuntu 22.04 and later it suggests sudo apt install libfuse2, and notes the package is libfuse2t64 on Ubuntu 24.04. Also confirm safeguard --version works, since the Linux build needs the CLI on your PATH.
The main view is blank or white. The docs say the app cannot reach app.safeguard.sh. Check your connection or proxy; the local panel keeps working.
The panel will not open. Press Ctrl+Shift+S, or Cmd+Shift+S on macOS, or use View, Toggle Panel.
A Terminal command is rejected. The binary is not on the allowlist, or the working directory is outside a granted folder. Neither check can be changed per user.
An MCP server shows Crashed. Run the same command outside the app with the same arguments and environment to see the error, then restart it from the MCP tab.
Your computer does not appear when you send work. On that computer, run safeguard runner status, make sure it is signed in, and run safeguard doctor, which checks the environment, sign-in and tools and prints what is wrong without changing anything.
Mistakes to avoid
- Skipping the checksum because the warning looked familiar. The SmartScreen prompt is expected; an unverified file is not.
- Picking a recent folder without reading the path. With several clones of one repository, the wrong one is easy to click.
- Approving a file edit without reading the card. It names the file it touches. If it is not the file you expected, Deny and ask why.
- Granting your whole home folder in the Files tab. Grant project folders. The Terminal tab and scans only work inside granted folders, so a narrow grant is a useful limit.
- Using cron syntax for scheduled tasks. Use intervals like
24h. - Treating the desktop app as the place where code runs. The work runs on the computer and folder you pick, through the CLI. The app shows the conversation and your approvals.
For a broader tour of the app's screens, see the Safeguard desktop app guide.
FAQ
Do I need the CLI if I have the desktop app?
For sending work to a folder on your computer, yes, because the work runs through the CLI on that machine. The Linux AppImage also needs the CLI on your PATH. For reading conversations and results, the app on its own is enough.
Can I use the Claude, ChatGPT or Codex plan I already have?
Yes. Bring the Claude, ChatGPT or Codex plan you already pay for and use it inside the Safeguard CLI. Safeguard adds no extra charge for that usage; your plan's own usage limits and terms still apply. You can also connect Claude or ChatGPT to the Safeguard MCP server. Use /model and the CLI docs to connect a model.
Why does Windows warn me when I install?
The Windows builds are not yet code-signed, so SmartScreen shows "Windows protected your PC". Verify the SHA-256 from the download page with certutil, then choose More info and Run anyway.
Is the app the same on Windows, macOS and Linux?
The recorded session was on a Mac, and the app is the same on Windows and Linux. The Linux AppImage is for x86_64 and needs FUSE and the CLI.
Will I see my terminal and phone sessions here?
Yes. A CLI session is live and shows in the web, desktop and phone apps, and the phone app shows desktop chats too. Sign in once on each device with the same account.
Can the app run commands without asking me?
Commands and file edits sent to your computer wait for Approve or Deny. Tasks pause before destructive actions. How much runs without a prompt in the CLI depends on the /permissions mode you choose.
How do I uninstall it?
On macOS, drag the app to the Trash. On Windows, use Settings, Apps, Installed apps. On Linux, delete the AppImage file.
Try it yourself
The same work follows you to your phone. This recording shows the Android app picking a computer and folder, waiting for Allow once, Allow for turn or Deny, then showing the passing tests.
Click through it at your own pace, or open it full screen.
Get the desktop app, the CLI and the phone apps from safeguard.sh/download, and keep the Safeguard CLI docs to hand.
Quick check
What happens between your request and a command running in your project folder?
The app asks which computer and folder to use, you pick the folder and click Open here, and each command and file edit then waits for you to click Approve or Deny.
The Linux AppImage will not start. What two things should you check?
That FUSE is available on the system, and that the Safeguard CLI is installed and on your PATH, since the Linux build needs it.
How do you schedule a task to repeat every day?
Schedule it from the Tasks tab with an interval such as 24h. Intervals use a number followed by s, m, h or d; cron expressions are not accepted.
Sources
- Safeguard download page
- Safeguard desktop app docs
- Safeguard CLI docs
- Safeguard CLI interactive terminal
- Safeguard CLI slash commands
- Microsoft Defender SmartScreen overview, Microsoft Learn
- certutil, Microsoft Learn
- FUSE troubleshooting, AppImage documentation
Last reviewed: 21 October 2026.