# smart-terminal

Даёт агенту постоянную PTY-сессию: команды, ввод с клавиатуры, чтение вывода по шагам. Пригодится, когда интерактивные программы зависают на обычном stdin.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 12
- Автор: pungggi
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/pungggi/smart-terminal-mcp
- Обновлён: 2026-10-21
- HTML: https://affpapa.org/nevibecode/mcp/smart-terminal

## Что делает

Сервер держит открытую оболочку через `node-pty` и не убивает её между шагами. Агент отправляет команды и нажатия, читает ответ и продолжает в том же каталоге, с теми же переменными окружения и запущенными процессами. Отдельные инструменты закрывают ввод-вывод: `terminal_write` и `terminal_read` для запросов и REPL, `terminal_wait` ждёт нужный текст в выводе, `terminal_watch` возвращает управление при совпадении, тишине, таймауте или выходе.

Решён и вопрос больших результатов. `terminal_read` с параметром `since` отдаёт только новую часть буфера начиная с байтовой позиции. `terminal_run_paged` листает длинный вывод страницами, `terminal_diff` сравнивает два результата как unified diff, а `terminal_exec` при переполнении оставляет начало и конец. Для хрупких команд есть `terminal_retry` с ограниченным повтором.

Под Windows сервер выбирает оболочку по цепочке `pwsh.exe`, `powershell.exe`, `cmd.exe`; на Linux и macOS смотрит в `$SHELL`, потом на `bash` и `sh`. Одновременно можно держать до 10 именованных сессий с человекочитаемыми идентификаторами. `terminal_run` запускает бинарник напрямую, без интерпретатора оболочки, поэтому команда, которой нужны алиасы или конвейеры, так не сработает.

## Требования
- Нужно: Node.js (команды через npx)

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add smart-terminal -- npx -y smart-terminal-mcp
```

### Codex

**Командой платформы**
```bash
codex mcp add smart-terminal -- npx -y smart-terminal-mcp
```

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "smart-terminal": {
            "command": "npx",
            "args": [
                "-y",
                "smart-terminal-mcp"
            ]
        }
    }
}
```

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "smart-terminal": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "smart-terminal-mcp"
            ]
        }
    }
}
```

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add smart-terminal npx -y smart-terminal-mcp
```

## Когда брать
- прогнать интерактивный установщик, который падает на пайпе
- дождаться строки запуска сервера в логе без цикла опроса
- прочитать только новый вывод после длинной сборки
- сравнить вывод двух прогонов одной команды
- сохранить рабочий каталог между командами агента

## Примеры запросов агенту
- Запусти `npm run dev` и подожди, пока в выводе появится строка о порту
- Отправь Ctrl+C в сессию `calm-reef` и покажи последние строки
- Прогони `git status` дважды и покажи diff между результатами

## Похожие
- [REA](https://affpapa.org/nevibecode/mcp/rea.md) — MCP-сервер · ★ 386989
- [GitHub](https://affpapa.org/nevibecode/mcp/github.md) — MCP-сервер · ★ 33918
- [Netdata](https://affpapa.org/nevibecode/mcp/netdata.md) — MCP-сервер · ★ 81115
- [browser-use](https://affpapa.org/nevibecode/mcp/browser-use.md) — MCP-сервер · ★ 119160
- [Codebase Memory](https://affpapa.org/nevibecode/mcp/codebase-memory.md) — MCP-сервер · ★ 47392
- [mcp-server](https://affpapa.org/nevibecode/mcp/mcp-server.md) — MCP-сервер · ★ 43872

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
