NeoAgent reads untrusted content from websites, email, messages, files, integrations, and MCP servers. Any of that content can contain prompt injection. Model instructions and injection warnings help, but authorization must come from server-enforced boundaries and operator choices.
Sensitive tools are grouped into categories for shell commands, file writes, privileged Android actions, desktop control, browser evaluation, network writes, and skill mutation.
Each category can be:
| Policy | Result |
|---|---|
| Deny | The tool does not run |
| Require approval | The run pauses for a user decision |
| Allow | The tool runs for the current session |
| Always allow | The stored policy permits future runs |
The default is approval for sensitive categories. Skill mutation is denied by default. Users can also select a global default, always-ask, or allow-all mode.
Approval prompts time out after 30 seconds. A denied or timed-out call is reported to the model as blocked rather than executed.
| Capability | Runtime |
|---|---|
| Browser, desktop, shell, and workspace files | Selected Computer provider: per-user QEMU guest or authenticated desktop app |
| Android | The selected host-attached ADB device or emulator |
| Integrations | NeoAgent server using stored account credentials |
Android commands do not run in the Linux computer. The cloud computer has controlled sudo only inside the guest and no direct access to the NeoAgent host. Local computer commands run with the signed-in desktop user’s rights only after the corresponding app-level permission is granted.
NeoAgent Workspace; local shell access is
a separate, explicit permission because it can reach anything the OS user can.The implementation details are documented in Runtime and tool execution. Report vulnerabilities through SECURITY.md.