ssh ssh-session-mcp
v2.8.0
Comparison对比

This is not just another SSH command wrapper.这不只是另一个 SSH 命令包装层。

If you are deciding whether this is meaningfully different from a normal SSH wrapper, this page gives the clearest side-by-side explanation.很多用户在信任一个新的远程运行时之前,会先做对比搜索。这个页面就是专门回答:当终端变成“共享的、有状态的、对人和 AI 同时可见的”之后,到底改变了什么?

Question问题
Why not just use a normal SSH wrapper?为什么不直接用普通 SSH wrapper?
Core Difference核心差异
SSH Session MCP keeps a shared PTY alive instead of re-wrapping each command as isolated work.SSH Session MCP 保留一条共享 PTY,而不是把每条命令都重新包装成孤立执行。
Best For适合
Deciding whether this feels meaningfully different from a normal SSH wrapper.想判断它和普通 SSH wrapper 到底是不是同一类东西。
shared pty vs stateless shell ssh wrapper comparison browser viewer input lock async tracking
Side-By-Side并排对比

Normal wrapper vs shared SSH runtime.普通 wrapper 与共享 SSH 运行时的差别。

The strongest argument is behavioral, not marketing. The comparison below stays concrete.最有说服力的不是营销话术,而是行为差异。下面的对比尽量保持具体。

Normal SSH Wrapper普通 SSH Wrapper

Runs commands, but does not preserve the terminal as shared state.能跑命令,但不会把终端当成共享状态保留下来。

Each command is treated like a separate call. Prompt state, partial context, interactive pauses, and manual takeover become awkward because the wrapper is not centered on a durable PTY.每条命令都像单独调用。提示符状态、半截上下文、交互暂停和人工接管都会变得尴尬,因为它不是围绕一条持久 PTY 来设计的。

statelesscommand-onlyweak takeover
SSH Session MCPSSH Session MCP

Keeps one PTY alive so the user and AI agent operate on the same runtime.保留一条 PTY,让用户和 AI Agent 操作同一份运行时。

The browser viewer, input lock, async tracking, diagnostics, and policy rules all make more sense once the terminal is treated as a shared, stateful place instead of disposable command output.一旦终端被当成共享的、有状态的地方,而不是一次性命令输出,浏览器 viewer、输入锁、异步跟踪、诊断和策略规则就都变得合理了。

shared PTYbrowser vieweroperator-aware
What Changes到底改变了什么

Five practical differences that matter in real workflows.五个在真实工作流里确实重要的差异。

Each card focuses on one practical difference you can feel in a real workflow.每张卡都只讲一个你在真实工作流里能感受到的差异。

Terminal state终端状态

One command call vs one shared PTY单次命令调用 vs 一条共享 PTY

Shared PTY keeps shell state visible to both sides instead of reconstructing context after every command.共享 PTY 会把 shell 状态留给双方,而不是每次命令后再去重构上下文。

Visibility可见性

Hidden execution vs browser viewer隐藏执行 vs 浏览器 viewer

A viewer gives the human a live window into prompts, logs, and terminal anomalies.viewer 会把提示符、日志和终端异常实时暴露给人。

Input ownership输入归属

No guardrail vs input lock无护栏 vs 输入锁

Input lock matters when the shell turns interactive or risky and the AI must stop typing over the operator.当 shell 变成交互态或高风险态时,输入锁能阻止 AI 覆盖操作者输入。

Long jobs长任务

Fire-and-forget guesswork vs async tracking靠猜的放飞式执行 vs 异步跟踪

Async tracking acknowledges that remote work is often slow and non-blocking.异步跟踪承认远程工作本来就经常是慢的、非阻塞的。

Safety model安全模型

All-or-nothing execution vs policy-aware control全有或全无的执行 vs 策略感知控制

Policy rules let operators expose AI help without fully surrendering the machine.策略规则让操作者能开放 AI 帮助,但不必把整台机器完全让出去。

Comparison Questions对比问题

A few direct answers for people who are still deciding.给还在比较阶段的人几个直接答案。

If you are still judging whether this is meaningfully different, start with these.如果你还在判断它是不是和普通做法有本质区别,可以先看这几条。

What is the difference between SSH Session MCP and a normal SSH wrapper?SSH Session MCP 和普通 SSH wrapper 到底差在哪?

The biggest difference is that SSH Session MCP keeps one shared PTY alive for the human and AI, while a normal wrapper usually treats each command like isolated, disposable work.最大的差异是:SSH Session MCP 会为人和 AI 保留一条共享 PTY,而普通 wrapper 往往把每条命令都当成相互隔离、可丢弃的单次执行。

Why is a browser viewer part of the comparison?为什么浏览器 viewer 也是对比重点?

Because visibility changes behavior. A visible terminal is easier to trust, inspect, interrupt, and manually take over than hidden command execution.因为“可见性”本身就会改变行为。一个可见终端比隐藏式命令执行更容易被信任、检查、中断和人工接管。

Why do shared PTY and input lock belong together?为什么 shared PTY 和输入锁经常要一起出现?

Once the terminal becomes shared and stateful, you need a way to stop the AI and human from racing each other in the same shell. Input lock is that control.一旦终端变成共享且有状态,就必须有办法阻止 AI 和人同时在同一个 shell 里互相抢输入,而输入锁就是这个控制。

Why is async tracking part of the architecture difference?为什么异步跟踪也算架构差异的一部分?

Because a stateful remote runtime acknowledges that commands may outlive one request-response turn. Async tracking makes that explicit instead of pretending everything finishes immediately.因为有状态的远程运行时承认:命令可能会活得比一次请求响应更久。异步跟踪把这件事显式表达出来,而不是假装所有命令都会立刻结束。

Next下一步

If the difference is clear, these pages help next.如果差异已经看明白了,下一步看这些。

From here, the next step is usually install steps, examples, or a few direct answers.从这里继续,下一步通常就是去看安装、例子或几个直接答案。