Trust and Security

Solo blocks untrusted solo.yml commands from starting until you explicitly approve them. This prevents you from accidentally running unknown commands when a repo's solo.yml is added or changed by someone else.

Untrusted commands

Untrusted commands show an Untrusted state in the UI. While untrusted:

An untrusted command does not start until you approve it.

How to trust a command

  1. Open the command's settings/details.
  2. Review the command string and configuration.
  3. Click Trust this command.

Once trusted, the command runs normally. Solo remembers trust locally for the exact command variant in that project. The remembered variant includes the command, working directory, environment, auto-start setting, auto-restart setting, and file-watch restart patterns. File-watch pattern order is normalized, so reordering the same patterns does not invalidate trust.

Trusting a whole project

Click Trust all commands on any untrusted command to approve every command currently in the project. New or changed command variants still require review.

To trust future additions and changes too, open the project's settings and enable Automatically trust command changes under Security. Enabling it also trusts the project's current commands.

Only enable this for projects you actually trust. Anyone who can change the project's solo.yml can change what Solo runs on your machine. If you are unsure about a project or its contributors, leave automatic trust off and approve commands one at a time.

When trust is re-evaluated

When Solo syncs updated solo.yml content, new commands and changed command variants require trust unless one of these is true:

  • The exact variant was previously trusted in this project.
  • The project's auto-trust-changes setting is enabled.
  • The sync was initiated by a user action that creates or saves the command.

Changing trust-sensitive fields such as the shell command, working directory, environment, auto_start, auto_restart, or restart_when_changed can make the command untrusted again. Renaming a command without changing the underlying variant can preserve trust.

Scope of trust

  • Trust is local to your machine.
  • Trust is scoped to a project and remembered command variant, not shared automatically with teammates.
  • Importing or syncing the same project on another machine requires review there too.
  • Terminal and agent rows are trusted by design; this review flow is for command processes from solo.yml.

Are you an agent? Read this doc via API: /api/v1/docs/commands/trust-security