使用说明
克劳德临场感
在现代Linux上运行Claude代码,同时通过TCP在传统Unix系统(NeXTSTEP、HP-UX、IRIX、Solaris、AIX)上运行。
⚠️ 安全警告: 此工具专为无法支持现代安全的老式系统而设计。有 无加密 -所有流量(包括终端I/O和文件内容)均以纯文本形式通过TCP发送。请勿在不受信任的网络上使用。仅在隔离/专用网络上运行。 使用风险自负。
🤖 AI生成的代码: 这个代码库主要是由Claude(Anthropic的AI)编写的,还没有经过人类的彻底审查。它可能包含错误、安全漏洞或其他问题。在任何重要环境中使用之前,请自己检查代码。
+-----------------------+ TCP +-----------------------+
| Legacy Unix Box |<-------------------->| Linux Host |
| (NeXTSTEP, etc) | Port 5000 | |
| | | +---------------+ |
| +---------------+ | | | Claude Code | |
| | Client | | Terminal I/O | | (claude) | |
| | (C binary) |<---+----------------------+--| | |
| +---------------+ | | +-------+-------+ |
| | | | | |
| | | File/Exec Requests | +-------v-------+ |
| Local File <+----------------------+--| Relay | |
| Operations | | | (relay.py) | |
| | | +---------------+ |
+-----------------------+ +-----------------------+
为什么?
传统的Unix系统不能运行现代软件,但它们仍然可以用于开发、学习或维护旧代码库。这使您可以在所有文件操作和shell命令在旧系统上本机执行时使用Claude Code的AI辅助。
需求
Linux主机:
- Python 3.7+
- 克劳德代码 已安装并验证(
claude命令可用) - GCC或兼容的C编译器
- 对遗留系统的网络访问
传统系统:
- C编译器(cc、gcc或同等编译器)
- TCP/IP网络
- 至少支持VT100的终端
快速开始
1.设置Linux主机
# Clone the repo
git clone https://github.com/nathanodle/claude-telepresence.git
cd claude-telepresence
# Start the relay (listens on port 5000 by default)
python3 relay.py --port 5000
继电器将:
- 在端口5001上启动MCP服务器
- 等待端口5000上的客户端连接
- 客户端连接时生成Claude代码
2.设置传统客户端
转移 client.c 到您的旧系统(通过FTP、NFS或您移动文件的方式),然后编译:
# NeXTSTEP
cc -o claude-telepresence client.c
# HP-UX
cc -o claude-telepresence client.c
# Solaris
cc -o claude-telepresence client.c -lsocket -lnsl
# IRIX / AIX / Tru64
cc -o claude-telepresence client.c
# FreeBSD / NetBSD / OpenBSD
cc -o claude-telepresence client.c
# Linux (for testing)
gcc -o claude-telepresence client.c
3.连接
从传统系统来看:
./claude-telepresence <linux-host-ip> 5000
你会看到克劳德代码TUI。您的所有命令和文件操作都发生在旧系统上!
客户端选项
./claude-telepresence [options] <host> <port>
Options:
-s Simple mode: Convert Unicode to ASCII for old terminals
(recommended for NeXTSTEP, older HP-UX, etc.)
-r Resume previous conversation (continues where you left off)
-l Enable debug logging to /tmp/telepresence.log
所有选项示例:
./claude-telepresence -s -r -l 192.168.1.100 5000
运作原理
-
终端I/O:客户端通过TCP连接,并将您的击键转发给在Linux上运行的Claude Code。Claude的终端输出流回到您的传统终端。
-
文件操作:当Claude需要读/写文件时,它使用MCP工具向客户端发送请求。客户端在传统系统上本地执行实际的文件操作。
-
shell命令:当Claude运行shell命令时,中继通过MCP将它们发送到客户端。客户端在本地执行命令并流式返回输出。
-
Web访问:由于传统系统无法执行现代HTTPS
download_url该工具获取Linux主机上的文件并将其传输到旧系统。 -
主机↔ 远程传输:文件可以直接在Linux主机和旧系统之间传输,使用
upload_to_host和download_from_host工具。
特性
- TCP上的完整克劳德代码TUI
- 本机文件操作(读、写、编辑、搜索、查找)
- 远程系统上的Shell命令执行
- 旧终端的Unicode到ASCII转换(
-s旗帜) - 动画旋转器(
-\|/),箭头,ASCII中的复选标记 - 通过Linux主机进行Web下载(绕过传统的SSL/TLS限制)
- Linux主机和远程系统之间的直接文件传输
MCP工具
继电器为Claude提供以下工具(自动使用):
| 工具 | 说明 |
|---|---|
read_file |
读取带有行号的文件 |
write_file |
写入整个文件 |
edit_file |
手术绳索更换 |
list_directory |
列出目录内容 |
find_files |
按名称模式查找文件 |
search_files |
搜索文件内容 |
execute_command |
运行shell命令 |
download_url |
通过Linux下载URL,保存到远程的/tmp |
upload_to_host |
将文件从远程复制到Linux主机 |
download_from_host |
将文件从Linux主机复制到远程 |
list_host_directory |
列出Linux主机上的文件 |
get_cwd |
获取当前目录 |
file_info |
获取文件元数据 |
file_exists |
检查路径是否存在 |
make_directory |
创建目录 |
remove_file |
删除文件 |
move_file |
移动/重命名文件 |
故障排除
客户端无法编译:
- 检查你有一个C编译器:
which cc或which gcc - 在Solaris上,确保链接套接字库:
-lsocket -lnsl - 在HP-UX上,捆绑的K&R编译器运行良好
无法连接:
- 验证继电器是否在Linux上运行
- 检查防火墙是否允许端口5000
- 测试:
telnet <linux-host> 5000
乱码输出:
- 使用
-s简单/ASCII模式标志 - 确保您的终端设置为VT100或兼容
程序抱怨未知的终端类型:
- 在运行基于诅咒的程序之前设置TERM:
export TERM=vt100 - 在HP-UX上,您还可以尝试:
export TERM=hp
已知限制
命令超时: 长时间运行的命令可能会在完成之前超时。中继和客户端具有当前不可配置的内置超时。对于非常长的操作,可以考虑将它们分解为更小的步骤,或者在后台运行它们,并将输出重定向到文件。 未来版本中将提供可配置的超时。
文件传输大小限制: 这 download_url 工具和文件操作使用固定大小的缓冲区(目前约7-10MB)。非常大的文件下载或传输可能会失败或被截断。对于大文件,考虑使用传统的传输方法(FTP、NFS等)而不是远程呈现文件操作。 在未来的版本中改进了缓冲区处理。
download_url安全: 这 download_url 该工具在不进行URL验证的情况下从中继主机获取URL。不要在可以访问敏感内部网络或云元数据端点的主机上运行中继(169.254.169.254)。该工具也没有下载大小限制,并将响应完全加载到内存中。 URL验证和大小限制将在未来的版本中发布。
文档
看 建筑.md 获取详细的技术文档。
许可证
麻省理工学院