smart-terminal — MCP-сервер для Claude Code: интерактивная оболочка
Даёт агенту постоянную PTY-сессию: команды, ввод с клавиатуры, чтение вывода по шагам. Пригодится, когда интерактивные программы зависают на обычном stdin.
claude mcp add smart-terminal -- npx -y smart-terminal-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 запускает бинарник напрямую, без интерпретатора оболочки, поэтому команда, которой нужны алиасы или конвейеры, так не сработает.
Какие задачи решает
- прогнать интерактивный установщик, который падает на пайпе
- дождаться строки запуска сервера в логе без цикла опроса
- прочитать только новый вывод после длинной сборки
- сравнить вывод двух прогонов одной команды
- сохранить рабочий каталог между командами агента
Примеры запросов агенту
- Запусти
npm run devи подожди, пока в выводе появится строка о порту - Отправь Ctrl+C в сессию
calm-reefи покажи последние строки - Прогони
git statusдважды и покажи diff между результатами
Как установить smart-terminal
Командой платформы
claude mcp add smart-terminal -- npx -y smart-terminal-mcpКомандой платформы
codex mcp add smart-terminal -- npx -y smart-terminal-mcpФайл настроек
{
"mcpServers": {
"smart-terminal": {
"command": "npx",
"args": [
"-y",
"smart-terminal-mcp"
]
}
}
}Файл настроек
{
"servers": {
"smart-terminal": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"smart-terminal-mcp"
]
}
}
}Командой платформы
gemini mcp add smart-terminal npx -y smart-terminal-mcpПо шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о smart-terminal
Как установить smart-terminal в Claude Code?
Одной командой: claude mcp add smart-terminal -- npx -y smart-terminal-mcp.
Что делает smart-terminal?
Поднимает постоянную псевдотерминальную сессию и отдаёт агенту инструменты для запуска команд, ввода, чтения вывода и ожидания нужных строк в нём.
Чем это отличается от обычного exec?
Простой exec завершает команду и теряет состояние, а PTY-сессия живёт между шагами и принимает нажатия клавиш, поэтому vim, промпты npm и установщики с TTY-проверкой не виснут.