| name | terminal |
| description | Execute shell commands in persistent, stateful VT100 terminal sessions. WHEN: User needs to "run a command", "execute shell", "build project", "run tests", "deploy", system administration. WHEN NOT: Simple file operations (use fs_* tools), reading known files (use fs_read_file). |
| version | 0.1.0 |
terminal - Shell Command Execution
Core Concept
mcp__plugin_kg_kodegen__terminal executes shell commands in persistent VT100 terminal sessions. Terminals maintain environment variables, working directory, and shell state across commands. Use different terminal numbers for parallel work.
Actions
| Action | Description | Required Parameters |
|---|---|---|
EXEC |
Execute command (default) | command |
READ |
Get current buffer snapshot | None |
LIST |
Show all active terminals | None |
KILL |
Gracefully shutdown terminal | None |
Key Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
action |
string | "EXEC" |
Action to perform |
terminal |
number | 0 | Terminal instance (0, 1, 2...) |
command |
string | null | Command to execute (EXEC only) |
await_completion_ms |
number | 300000 | Max wait time (5 min default) |
clear |
boolean | true | Clear buffer before command |
tail |
number | 2000 | Max output lines to return |
Usage Examples
Execute Command (default action)
{ "command": "ls -la" }
Execute in Specific Terminal
{ "terminal": 1, "command": "cargo build --release" }
Background Execution (fire-and-forget)
{
"command": "npm run build",
"await_completion_ms": 0
}
Execute with Timeout
{
"command": "cargo test",
"await_completion_ms": 60000
}
Read Current Buffer
{ "action": "READ", "terminal": 0 }
List All Terminals
{ "action": "LIST" }
Kill Terminal
{ "action": "KILL", "terminal": 0 }
Response Format
{
"terminal": 0,
"exit_code": 0,
"cwd": "/project/path",
"duration_ms": 1234,
"completed": true
}
Parallel Work Pattern
Use different terminal numbers for concurrent tasks:
// Terminal 0: Build
{ "terminal": 0, "command": "cargo build" }
// Terminal 1: Tests (parallel)
{ "terminal": 1, "command": "cargo test" }
// Terminal 2: Watch logs
{ "terminal": 2, "command": "tail -f app.log" }
Background Execution
For long-running commands:
- Fire-and-forget:
await_completion_ms: 0 - Check progress:
{ "action": "READ", "terminal": N } - Wait with timeout: If timeout occurs, command continues in background
Important Notes
- Persistent sessions: Environment and working directory preserved
- VT100 emulation: Actual rendered terminal output, not raw bytes
- Automatic cleanup: Terminals cleaned up on connection close
- State preservation:
cdcommands persist across calls
Remember
- Terminals are numbered 0, 1, 2... - use different numbers for parallel work
- Default action is EXEC - just provide
command - Use
await_completion_ms: 0for background tasks - Use
action: "READ"to check on background commands - Working directory persists -
cdworks across commands - For simple file operations, prefer
fs_*tools (faster, safer)