Sero is a local-first developer tool in a source-only OSS alpha stage. It runs on your machine, stores profile state locally, and can optionally connect to remote services such as model providers, GitHub, plugin registries, Discord, Tailscale, or the Sero gateway.
This page is practical guidance, not a claim of hardened isolation. During the alpha, treat Sero like a powerful local automation environment: protect the profile directory, review what plugins and remote clients can reach, and report security issues privately.
Security reports are accepted for:
main branchOlder commits, local forks, heavily modified builds, and third-party plugins outside this monorepo are not supported security-report targets unless they expose a vulnerability in Sero itself.
Please do not open public GitHub issues or public PRs for suspected security problems. Use private reporting instead:
security@sero-ai.dev with subject [Sero Security].Include impact, reproduction steps, commit/build context, and whether the issue requires local access, profile access, network access, or a malicious plugin or workspace.
Sero's active profile contains auth stores, settings, workspace metadata, plugin state, memory files, and logs. The canonical path map is State and Folders; use that page when checking what to redact from bug reports, screenshots, terminal output, and shared logs.
Common sensitive paths include:
| Surface | Current location |
|---|---|
| provider auth store | <SERO_HOME>/agent/auth.json |
| profile-local env vars | <SERO_HOME>/agent/.env |
| GitHub auth | <SERO_HOME>/agent/github-auth.json |
| local/custom model config | <SERO_HOME>/agent/models.json |
| gateway token | <SERO_HOME>/agent/gateway-token |
| gateway config | <SERO_HOME>/agent/gateway-config.json |
| gateway web tokens | <SERO_HOME>/agent/gateway-web-tokens.json |
| layout and UI state | <SERO_HOME>/agent/layout.json |
| workspace registry | <SERO_HOME>/agent/workspaces.json |
| global memory files | <SERO_HOME>/workspaces/global/ |
| app state | <SERO_HOME>/apps/ and <workspace>/.sero/apps/ |
| runtime logs | /tmp/sero-*.log |
Before sharing diagnostics:
Profile-scoped storage helps keep Sero state organized, but it is not a cryptographic boundary. Someone who can read your active profile files may be able to recover useful secrets or steer connected integrations. For setup, custom profile locations, switching, deletion, and credential-copy behavior, see Profiles and Onboarding.
These surfaces are local/profile-scoped unless you explicitly copy, sync, or expose them elsewhere:
<SERO_HOME>/agent/<SERO_HOME>/workspaces/<SERO_HOME>/apps/<SERO_HOME>/agent/plugins/These surfaces can talk to external systems, while their Sero-side state remains stored locally:
Remote integrations can expand what an attacker can do with a stolen token, profile file, or malicious plugin. Enable them intentionally and remove or rotate credentials you no longer need.
Sero applies Electron/browser safeguards intended to reduce accidental exposure and common renderer risks. These are defense-in-depth controls, not a guarantee that arbitrary content or untrusted plugins are safe.
Current safeguards include:
http and https URLs are opened externally through the operating
system shell, while other popup attempts are deniedblob/data where needed,
and loopback HTTP/WebSocket sources used by local auth and viewer flowsThese controls should not be described as a hardened browser sandbox for all possible plugin or web content. Treat plugin code and embedded remote content as part of the security surface.
Sero has a focused permission gate for some dangerous bash tool calls. It does
not gate every tool, every filesystem action, every plugin action, or every
agent decision.
The current gate checks bash commands for a limited set of risky patterns,
including examples such as:
rm -rfsudochmod / chown patterns such as 777mkfs and dd ... of=Simple workspace-scoped cleanup can be auto-allowed when it parses as a plain
recursive remove inside the current workspace and does not target the workspace
root or .git paths. Complex shell constructs, globs, and shell-control
characters are treated conservatively.
In Sero mode, the gate asks through the user-feedback bridge and times out by default. In CLI/non-interactive contexts where confirmation is unavailable, dangerous matched commands are blocked by default.
Sero also includes user-feedback tools such as question, questionnaire, and interview flows. Those tools are for collecting user input; they are not the permission gate and should not be treated as a general security approval system.
Some powerful configuration and inspection features are intentionally UI-first. That keeps the agent-facing tool surface smaller, but it is not a hard security boundary by itself.
mcp tool, while mcp_manager is a UI/runtime management surface.These distinctions reduce accidental exposure and clarify intent. They do not replace careful handling of profile files, plugins, MCP servers, or gateway access.
The gateway is off by default. It only starts when explicitly enabled with
SERO_GATEWAY=1.
When enabled, a master-token gateway client has the same effective power as the desktop UI. It can open sessions on any workspace, send prompts, steer or abort agent turns, and list workspaces and sessions. Scoped web tokens may limit supported gateway workspace/session/file/artifact access to explicit workspace IDs, but that is not a comprehensive per-tool or agent-action permission system. Because prompts can lead the agent to run tools, treat gateway credentials like high-privilege secrets.
Important gateway caveats during alpha:
bash permission gate described
abovetailscale serve,
not public funnelingSERO_DISCORD_USERS is empty, because anyone who
can reach the bot may be able to interact with itPrefer login prompts or ephemeral shell variables over putting tokens in URLs or command history. Stop Tailscale serve, disable the gateway, and rotate tokens when remote access is no longer needed.

The pairing dialog is security-relevant because it shows both the access scope and expiry for a remote web device. Treat real QR codes and login URLs from this screen as secrets; redact them from screenshots and rotate exposed tokens.
The public alpha does not claim:
Use Sero on machines and workspaces where you are comfortable running a powerful local developer assistant, and review remote access, plugin installs, and stored credentials accordingly.
Current source material: