The Autonomous Shell Plugin grants AI agents direct access to your system's shell. By design, this is a powerful capability that comes with inherent risk. This document outlines the security mechanisms built into the plugin and provides recommendations for safe usage.
| Version | Supported |
|---|---|
| 1.0.x | ✅ Active support |
If you discover a security vulnerability, please do NOT open a public issue. Instead:
- Email: Send a detailed report to the repository owner via GitHub's private vulnerability reporting feature, or contact @nurujjamanpollob directly.
- Include:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
- Response time: We aim to acknowledge reports within 48 hours and provide a fix or mitigation within 7 days for critical issues.
The plugin includes a configurable command filter that intercepts all commands before execution:
| Mode | Behavior |
|---|---|
| Blacklist (default) | Commands in the list are blocked; everything else is allowed. |
| Whitelist | Only commands in the list are allowed; everything else is blocked. |
How it works:
Input command: "rm -rf /important/data"
Extracted base command: "rm"
Blacklist mode + "rm" in list → BLOCKED
Whitelist mode + "rm" NOT in list → BLOCKED
Note: The filter checks the first word of the command (the base command). Arguments are not filtered. This means
rmwould be blocked, but a creative bypass like a script alias may not be caught. The filter is a defense-in-depth measure, not a complete sandbox.
For general use, we recommend blacklisting these commands at minimum:
rm, mkfs, dd, format, shutdown, reboot, poweroff, halt, init,
fdisk, parted, mount, umount, chmod 777, chown, passwd, userdel,
curl | sh, wget | sh
- Never run Eaze Editor as
root(Linux/macOS) orAdministrator(Windows) unless absolutely required. - The AI agent inherits the permissions of the editor process. Running as root means the AI can
rm -rf /.
For shared or production environments, switch to Whitelist mode and explicitly allow only the commands the AI needs:
git, ls, cat, echo, pwd, cd, mkdir, node, npm, python, pip, java, gradle
The filter is disabled by default to avoid blocking legitimate use during initial setup. Enable it as soon as you've configured your command list.
Configure the Global Timeout to prevent runaway commands from consuming resources indefinitely. The default is 1 minute, but adjust based on your workflow.
Periodically use list_shell_sessions (or check the editor's plugin status) to ensure there are no orphaned sessions running processes you're not aware of.
Always call terminate_shell_session when finished. Orphaned sessions may leave background processes running that consume CPU, memory, and potentially hold file locks.
| Threat | Mitigation | Residual Risk |
|---|---|---|
AI runs destructive command (rm -rf /) |
Command Safety Filter (blacklist/whitelist) | Filter only checks base command; creative bypasses possible |
| Command runs indefinitely, consuming resources | Global Timeout (configurable) | Async commands aren't subject to the sync timeout |
| Orphaned sessions leak resources | terminate_shell_session / clear_all_shell_sessions |
Requires the AI (or user) to remember to clean up |
| Sensitive data exposed via command output | Token Optimization reduces repeated exposure | Output is still returned to the AI model |
AI escalates privileges via sudo |
Blacklist sudo |
User must configure the blacklist |
| Plugin JAR tampered with | Verify checksums from official releases | N/A if building from source |
- Sandboxing — Commands run directly on the host system with the editor's permissions. There is no container or VM isolation.
- Network filtering — The plugin does not restrict network access from executed commands.
- Output sanitization — Command output is returned as-is to the AI model. Sensitive data (passwords, tokens, keys) in command output will be visible to the AI.
- Audit logging — While the plugin logs tool invocations via
PluginApi.info(), it does not maintain a persistent audit trail.
| Date | Version | Change |
|---|---|---|
| 2026-01-01 | 1.0.0 | Initial release with blacklist/whitelist command filter |
If you have questions about security, please open a GitHub Discussion or contact the maintainer.