跨平台代码执行工具

claude-telepresence是一个允许在现代Linux系统上运行Claude代码,同时在传统Unix系统(如NeXTSTEP、HP-UX等)上通过TCP进行操作的跨平台工具。

  • by nathanodle
  • C
  • 本地部署
  • 12 星标
  • 更新于
在 GitHub 查看 nathanodle/claude-telepresence

使用说明

克劳德临场感

在现代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

运作原理

  1. 终端I/O:客户端通过TCP连接,并将您的击键转发给在Linux上运行的Claude Code。Claude的终端输出流回到您的传统终端。

  2. 文件操作:当Claude需要读/写文件时,它使用MCP工具向客户端发送请求。客户端在传统系统上本地执行实际的文件操作。

  3. shell命令:当Claude运行shell命令时,中继通过MCP将它们发送到客户端。客户端在本地执行命令并流式返回输出。

  4. Web访问:由于传统系统无法执行现代HTTPS download_url 该工具获取Linux主机上的文件并将其传输到旧系统。

  5. 主机↔ 远程传输:文件可以直接在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 获取详细的技术文档。

许可证

麻省理工学院