An unofficial shell plugin for Eaze Editor that provides comprehensive shell command execution capabilities with security filtering, session management, and interactive command support.
This server defines 8 shell-execution tools with reasonable naming (verb_noun pattern) and descriptions. However, critical gaps exist: input schemas are present but lack formal type definitions and constraints (no enums, ranges, or validation rules); descriptions are adequate (100-200 chars) but lack dependency hints and error recovery guidance; no output schemas are documented; error handling is absent from tool definitions; and no security patterns (permission gates, audit trails, secret injection) are visible. The tools follow a logical composition (session management + command execution + monitoring), but lack idempotency guarantees and confirmation patterns for destructive operations. Average per-tool score: 62.
Creates a new persistent shell session and returns a unique session ID. The session ID is required for all subsequent command execution, input, and monitoring tools. Always create a session first before running any commands.
Starts a shell command asynchronously and returns immediately with a command ID. Use getCommandResult to poll for output and status. Supports interactive commands when interactive=true. Useful for long-running tasks or commands that require user input.
Executes a shell command synchronously within a session and waits for completion. Returns the full output (stdout and stderr combined) once the command finishes. Use this for simple, quick commands. For long-running or interactive commands, use executeCommandAsync instead.
Retrieves the current output and status of an asynchronously running command. Returns partial output accumulated since the last call, command status (running/finished), exit code, and any error messages. Poll this repeatedly to monitor long-running commands.
Returns system information including OS name, version, architecture, available processors, total memory, and Java version. Useful for understanding the execution environment.
Returns a list of all active shell sessions. Useful to find an existing session ID if you lost it, or to check which environments are currently running.
No output schemas documented. Tools return results but LLMs cannot predict field names, types, or structure. This forces agents to guess at response format and breaks downstream tool chaining.
Input schemas lack formal constraints. 'command' parameter accepts free-form strings with no validation rules, length limits, or injection guards. 'sessionId' has no format specification. No enums, ranges, or patterns defined.
No error handling guidance in tool definitions. Descriptions do not explain what errors can occur, how to recover, or what the LLM should do next. No distinction between retryable vs fatal failures.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | <=2025-11-25 | v2 |
Sends input (stdin) to an interactive shell command. Use this to respond to prompts or provide input to running commands. Only works with commands started with interactive=true.
Terminates and closes a specific shell session by ID. Always use this to clean up resources when you are done with a shell session. Make sure to call this to prevent orphaned processes freezing system resources. Example: terminate_shell_session("session-1234")
Destructive operations (terminateShellSession, executeCommandSync with rm/delete) lack confirmation or dry-run patterns. Agents can irreversibly delete files without safeguards.
No security patterns visible: no permission gates, no audit trail declarations, no scope declarations. Tool definitions do not specify what permissions are required or what actions are logged.