二进制丢给了 claude 分析了一下,这个还是"中转",外面包了一层,服务端还是可以拿到用户的输入,并且这样的劣势太明显了,100ms 的 RTT 会在多次远程文件 I/O 上产生大量开销,而且对原生 EDIT 这些命令还会放大,之前也想过这样的架构,之前测试下来复杂项目会有 10 倍的开销,还是放弃了😂
另外说一句,这个架构下,装了这玩意,相当于服务端可以远程任意代码执行

本机终端 <──── TerminalStream ────> 远端 Claude Code 会话
│
服务端适配层
│
本机执行器 <──── CommandStream ─────> 命令代理
本机文件 <──── FileSyncStream ────> 文件副本或文件代理
service PtyService {
rpc TerminalStream (stream .coding.PtyClientMessage) returns (stream .coding.PtyServerMessage);
rpc AdminSpectateStream (.coding.AdminSpectateRequest) returns (stream .coding.PtyServerMessage);
}
service ExecService {
rpc CommandStream (stream .coding.ExecClientMessage) returns (stream .coding.ExecServerMessage);
}
service FileService {
rpc FileSyncStream (stream .coding.FileClientMessage) returns (stream .coding.FileServerMessage);
}
service SessionService {
rpc Handshake (.coding.HandshakeRequest) returns (.coding.HandshakeResponse);
rpc KeepAlive (.coding.Ping) returns (.coding.Pong);
rpc AdminTerminateSession (.coding.AdminTerminateRequest) returns (.coding.AdminTerminateResponse);
}
service AttachmentService {
rpc UploadAttachment (.coding.UploadAttachmentRequest) returns (.coding.UploadAttachmentResponse);
}