terminal-use
Lets AI agents drive a real terminal: type, press keys, click, read the screen, take screenshots.
Connector by computer-agent-labs · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/computer-agent-labs-terminal-use
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 4 read · 3 write · 6 delete
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 13
Read from the source code; the running server may list different tools.
Read 4 · Look things up without changing anything.
terminal_listterminal_readterminal_screenshotterminal_wait
Write 3 · Create, change, send or run things.
terminal_createterminal_resizeterminal_scroll
Delete 6 · Delete, drop, revoke or wipe things.
terminal_batchterminal_clickterminal_destroyterminal_pressterminal_resetterminal_type
Network hosts it talks to 2
github.com· found in coderaw.githubusercontent.com· found in code
Files it touches
/usr/share/fonts/google-noto-cjk/NotoSansCJK-Regular.ttc/usr/share/fonts/google-noto-color-emoji-fonts/NotoColorEmoji.ttf/usr/share/fonts/noto-cjk/NotoSansCJK-Regular.ttc/usr/share/fonts/noto/NotoColorEmoji.ttf/usr/share/fonts/noto/NotoSansCJK-Regular.ttc/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc/usr/share/fonts/truetype/noto/NotoColorEmoji.ttfC:\\Windows\\Fonts\\malgun.ttfC:\\Windows\\Fonts\\msyh.ttcC:\\Windows\\Fonts\\seguiemj.ttfC:\\Windows\\Fonts\\YuGothR.ttc- Any path the agent passes to its tools
Tools (13)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
terminal_batchRun several terminal inputscan change or delete dataSend a sequence of inputs in one call and get the screen back once at the end — for driving a full-screen program without a round trip per keystroke (open a menu, move down three, press Enter, type a name, confirm). Actions run in order, each given a moment to take effect before the next. Each action is an object with a `type` and the fields that type uses: - `type`: `text` — typed as keystrokes; \n presses Enter. - `paste`: `text` — delivered as one bracketed paste where the program supports it. - `press`: `key`, optional `count` — same key specs as terminal_press. - `click`: `col`, `row` — …
terminal_clickClick in terminalcan change or delete dataDeliver a left mouse-button click at a cell in the terminal. Only works when the program currently in the foreground has opted into mouse tracking (vim with `set mouse=a`, fzf, lazygit, less with mouse mode, etc.) — at a plain shell prompt mouse mode is off and the click would just print escape sequences as text, so we refuse the actual click in that case. Coordinates are 1-indexed and refer to the live screen viewport: col 1, row 1 is the top-left cell, and the bottom-right cell is (terminal width, terminal height) which you can see via `terminal_read`'s state header. PREVIEW MODE (default …
terminal_createCreate terminal sessionSpawn a new terminal session and return its sessionId. You must call this before any per-session tool — there is no shared default session. By default the session is an interactive shell. Pass `command` to run one program in the terminal instead (a TUI, a test run, a CLI under test): the session then lasts as long as that program, reports its exit status when it ends, and keeps its final screen readable until you destroy it. If the server already holds 50 live sessions, the least-recently-used one is evicted to make room (its sessionId is tombstoned and any later call against it will respawn w…
terminal_destroyDestroy terminal sessioncan change or delete dataKill a session and forget the sessionId entirely. The shell process is terminated and the sessionId is *not* tombstoned — future calls against it will error with "Unknown sessionId". Use this when you're explicitly done with a session. Tombstones (which auto-respawn on next access) only happen for system-driven terminations: idle-kill, eviction, or shell exit.
terminal_listList terminal sessionsread-onlyList every active session and every tombstoned (recently-killed but reserved) sessionId. Tombstones are reservations: the shell is gone but the sessionId can still be called against — doing so respawns a fresh shell under the same id and surfaces the original termination reason (shell-exit, idle-killed, or evicted). Tombstones expire after 30 days; after that the id is gone.
terminal_pressPress key in terminalcan change or delete dataPress a single named key or key combination. Examples of supported `key` values: `Enter`, `Tab`, `Escape`, `Backspace`, `Space`, `ArrowUp` / `ArrowDown` / `ArrowLeft` / `ArrowRight`, `Home`, `End`, `PageUp`, `PageDown`, `Delete`, `Insert`, `F1`..`F12`, `Ctrl+C`, `Ctrl+D`, `Ctrl+L`, `Ctrl+A`..`Ctrl+Z`, `Shift+Tab`, `Alt+B`, `Ctrl+ArrowLeft`, `Ctrl+Shift+ArrowRight`, etc. Same settle behavior as `terminal_type`.
terminal_readRead terminal textread-onlyDescription is built at runtime.
terminal_resetReset terminalcan change or delete dataWipe the terminal buffer and scrollback. By default the shell process keeps running (env vars, cwd, history all preserved). Pass `hardReset: true` to kill the current shell and spawn a brand-new one — anything mid-execution gets killed. When `hardReset: true`, you can also override `cols`, `rows`, `shell`, and `cwd`. In a session created with `command`, a hard reset runs that command again.
terminal_resizeResize terminalChange the terminal size. Both `cols` and `rows` are optional; omitting one preserves the current value. Resizes both the PTY and the emulator (so programs running inside see the change via SIGWINCH).
terminal_screenshotScreenshot terminalread-onlyDescription is built at runtime.
terminal_scrollScroll in terminalTurn the mouse wheel over a cell of a full-screen program: scroll a pager, a file list, a log pane. Behaves as a terminal emulator does — programs that track the mouse receive wheel events at that cell (so the pane under it scrolls); full-screen programs that do not (less, man) receive arrow keys instead. At a plain shell prompt there is nothing to scroll and the call fails: earlier output is read with `terminal_read` and its `page` argument, not by scrolling.
terminal_typeType into terminalcan change or delete dataType literal characters into the terminal as if a human were pressing keys. Embedded `\n` is normalized to `\r` so `"git push\n"` actually submits. Always waits for the buffer to settle (or to time out) before returning. The wait is capped at 10s; for anything slower (builds, installs, test runs) follow up with `terminal_wait`, which blocks until the command actually finishes.
terminal_waitWait for terminalread-onlyDescription is built at runtime.
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 1
- Last commit
- Oct 21, 2026 (7 days ago)
- Last release
- Oct 21, 2026 (7 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.computer-agent-labs/terminal-use- Version
- 0.2.1
- Auth
- No auth
- Packages
- npm terminal-use
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
Cite this page
terminal-use MCP server. Agent Mart. https://agentmart.dev/connectors/computer-agent-labs-terminal-use (last updated 2026-10-25)