Interactive terminal
The terminal you get when you run safeguard with no arguments
Interactive terminal
Run safeguard with no arguments and you get a terminal rather than a help
screen:
safeguardThis is where you sign in, ask questions about your security posture, run scans, and let the runner pick up jobs from the platform. Your code never leaves the machine — only SBOMs and findings are uploaded.
Signing in
Type /login. Your browser opens, you approve the session, and the terminal
picks it up. Once you are signed in the runner starts polling for scan jobs
scheduled from the platform.
/whoami shows the current session; /logout ends it and takes the runner
offline.
Asking for things
Type in plain language. The assistant has tools for your local files and for your Safeguard data, and picks whichever the question needs:
how many critical vulns do we have
what's the latest file in ~/Downloads
fix the lodash CVE in this repoAnything starting with / is a command instead — see
Slash commands.
Writing more than one line
Enter sends your message. To put a newline in it without sending:
| Key | Notes |
|---|---|
ctrl+j | Works everywhere. The one to remember. |
alt+enter | Where the terminal passes it through. Windows consoles intercept this as their own fullscreen toggle, so it does not reach the CLI there. |
\ then enter | A trailing backslash continues on the next line. |
The input grows as you type and hands the rows back to the transcript when you send. Past eight rows it scrolls internally rather than swallowing the conversation.
While a message spans several lines, the up and down arrows move the cursor inside it. On a single-line input they recall your previous messages instead.
In Windows Terminal you can bind shift+enter to send a newline, which is the
key most people reach for. Add this to your settings.json actions:
{ "command": { "action": "sendInput", "input": "\n" }, "keys": "shift+enter" }Selecting and copying
Text selection belongs to your terminal — drag to select, then copy the way you normally would. The CLI does not capture the mouse, so selection, copy and paste all behave exactly as they do everywhere else in that terminal.
The trade is that the mouse wheel does not scroll the transcript. Use
PgUp / PgDn and the arrow keys.
To take a whole answer without dragging across it, use /copy, which puts the
last response on your clipboard.
Commands and files
Typing / opens the command palette, filtered as you type. Typing @ opens a
file picker for the folder you started in, and the file you choose is attached
to your message so the assistant can read it.
Both show five entries at a time and scroll to follow your selection. ↑ and
↓ move, enter chooses, esc closes. Neither one hides the conversation
while it is open.
Approving actions
Some tools change things — writing a file, editing code, running a command.
Those ask before they act. /permissions chooses how often:
| Mode | Behaviour |
|---|---|
| Ask | Prompt before every action |
| Auto | Approve known actions, ask for anything new. The default. |
| Yolo | Approve everything, never ask |
The current mode is always shown in the bar under the input.
Reading the screen
The bar above the input carries the runner's state — idle and polling, or the scan in progress — with your model and connection status on the right.
Each answer closes with the time it took:
✓ Completed in 2m 59sYour own messages are banded so you can find where each exchange began when scrolling back.
Leaving
/quit exits. esc interrupts whatever is running without exiting, and
/resume picks the session back up next time you open the terminal in the
same folder.
Colour and motion
The terminal uses full colour where it can. It falls back to plain,
escape-code-free output when it should: NO_COLOR set, output piped
somewhere, TERM=dumb, or CI. In that mode nothing animates, which keeps CI
logs diffable.
If the terminal renders entirely in black and white when you expect colour,
check whether NO_COLOR is set in that shell. It is honoured deliberately,
and it is the usual explanation.