Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Term-CLI – interactive terminals for AI agents (for SSH/TUI/REPL flows) (github.com/eliasoenal)
9 points by eliasoe 5 days ago | hide | past | favorite | 2 comments
Agents can run non-interactive commands, but they often fail once a workflow needs a real terminal (SSH sessions, installers, debuggers, REPLs, TUIs). I built term-cli so an agent can drive an interactive terminal session (keystrokes in, output out, wait for prompts). And it comes with agent skill for easy integration.

It supports in-band file transfer: the agent can move files through the terminal stream itself (same channel as the interactive session), which is useful when the agent doesn’t have scp/sftp, shared volumes, or direct filesystem access across boundaries.

Recent example: My Claude Opus was SSH'd into a server and ended up at a Firejail shell running inside a Docker container. It pushed a Python file in via term-cli, moving it across SSH → Docker → Firejail over the terminal channel, and explicitly commented how it was surprised this worked end-to-end.

And it comes with the companion tool term-assist, so agents can bring in their human to handle credentials and MFA: https://www.youtube.com/watch?v=A70tZEVqSOQ

 help



how's this different from the many existing tmux/terminal MCP servers?

The main difference is that term-cli is intentionally not MCP. There's been a shift away from MCP, to the more token-efficient combination of CLI tools plus agent skills. Microsoft explains it well here: https://github.com/microsoft/playwright-cli

Beyond that, term-cli focuses on agent-centric features like file transfer, full mouse support, color annotations, joint agent+human sessions (via term-assist) and more. I had Claude Opus drive the interactive colored menus of OpenCode (TUI) while reproducing a bug.

term-cli is designed to meet agents' needs, and not just wrapping a terminal. Another example: humans click on coordinates, but agents are really bad at counting terminal columns due to tokenization. So with term-cli, agents instead define the string they want to click on.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: