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 or widget 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 and widget 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 |
|---|---|
| Default browser and shell | Per-user isolated runtime managed by the NeoAgent host |
| Workspace files | Server-enforced user workspace paths |
| Paired Chrome extension | The paired Chrome profile and machine |
| Paired desktop companion | The paired desktop account |
| Android | The selected host-attached ADB device or emulator |
| Integrations | NeoAgent server using stored account credentials |
The paired extension and desktop companion are access grants, not isolation boundaries. Android commands do not run in the browser and shell VM.
The implementation details are documented in Runtime and tool execution. Report vulnerabilities through SECURITY.md.