Token导航 LogoToken导航TokenDH.com
imprint (Kessler Frost) logo
办公协作stdio官方级别未说明来源级核验

imprint (Kessler Frost)

MCP Server

Imprint 是一个允许AI代理通过MCP协议控制终端并进行TUI测试的工具,提供真实的终端环境和像素级屏幕截图功能。

工具数

10

提示词数

0

GitHub Stars

7

资源数

0
GoClaude团队协作Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

kessler-frost

提供方

kessler-frost

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run pytest # Run all tests

详细介绍

imprint

Lets AI agents control a terminal and see what's on screen via MCP, allowing precise TUI testing.

概述

Imprint提供了一个AI代理可以编程控制的真实终端。代理可以随时请求终端的屏幕截图,让他们能够精确地看到用户会看到什么。

这让代理可以像真实用户一样进行测试——与终端交互,查看屏幕上的实际内容,而不管应用程序是如何构建的。TUI测试变得与框架无关,允许您测试任何终端应用程序,而无需学习或使用其内部测试策略。

它是如何工作的:

  • ttyd:Web终端守护进程通过WebSocket暴露真实的PTY
  • 终端复用器:终端多路复用器支持AI和用户之间的会话共享
  • 加油杆:用于键盘输入和屏幕截图的无头Chrome自动化
  • xterm.js:在Chrome中运行的终端模拟器,用于像素完美渲染

特性

  • MCP本地:通过stdio协议直接集成Claude代码
  • 真实终端:实际的shell执行,而不是模拟
  • 像素完美截图:这正是你在真实终端中看到的
  • 框架不可知:在没有框架特定工具的情况下测试任何TUI应用程序
  • 实时会话共享:通过浏览器观看AI实时控制终端

安装

curl -fsSL https://raw.githubusercontent.com/kessler-frost/imprint/main/install.sh | sh

这将安装印记及其依赖项(ttyd和tmux)(如果尚未安装)。

卸载

curl -fsSL https://raw.githubusercontent.com/kessler-frost/imprint/main/install.sh | sh -s -- --uninstall

手动安装

如果您更喜欢手动安装:

  1. 安装ttyd和tmux:
   # macOS
   brew install ttyd tmux

   # Ubuntu/Debian
   sudo apt install ttyd tmux

   # Arch Linux
   sudo pacman -S ttyd tmux
  1. 从下载印记 发布 或者:
   go install github.com/kessler-frost/imprint/cmd/imprint@latest

用法

Imprint旨在由Claude Code作为MCP服务器启动。请参阅下面的配置。

手动测试

# Run imprint directly (MCP on stdio)
imprint

# Options
imprint --help
  --shell   Shell to run (default: $SHELL)
  --rows    Terminal rows (default: 24)
  --cols    Terminal columns (default: 80)
  --version Print version and exit

MCP服务器(克劳德代码)

添加印记作为MCP服务器:

claude mcp add imprint -- ~/.local/bin/imprint

使用自定义终端尺寸:

claude mcp add imprint -- ~/.local/bin/imprint --rows 30 --cols 120

可用工具

  • send_keystrokes -发送按键(例如。, ["enter"], ["up", "up", "enter"])
  • type_text -键入字符串
  • get_screenshot -以base64 JPEG格式获取屏幕
  • get_screen_text -以纯文本形式获取屏幕
  • get_status -获取终端状态
  • get_ttyd_url -获取web URL和tmux附加命令以查看代理正在使用的终端
  • resize_terminal -调整终端大小
  • restart_terminal -重新启动终端(可选地使用新命令)
  • wait_for_text -等待文本出现在屏幕上(默认超时5秒)
  • wait_for_stable -等待屏幕停止变化(500毫秒稳定持续时间)

实时观看AI

imprint的一个独特功能是能够在浏览器中实时观看AI代理对终端的控制。您和AI共享相同的tmux会话。

要查看终端:

  1. 让AI打电话 get_ttyd_url
  2. 通过以下任一方法连接:

- 浏览器:打开网络URL(例如。, http://127.0.0.1:55529) - 终端:运行tmux附加命令(例如。, tmux attach -t imprint_55529)

  1. 观察AI键入命令并导航终端

您还可以通过浏览器与终端进行交互,人工智能将实时看到您的更改。这有助于:

  • 调试:看看AI到底看到了什么
  • 协作:当AI陷入困境时帮助它
  • 德莫斯:向其他人展示AI代理如何与终端交互

例子

examples/ 目录包含用于测试印记的演示应用程序:

屏幕截图演示

泡泡茶TUI 需要屏幕截图分析的视觉元素:

  • 随机颜色:启动时随机选择彩色方块-显示文本提取 ████ 但屏幕截图显示了实际颜色
  • 视觉缺陷:只能通过屏幕截图检测到的故意渲染问题(标题错位、颜色渗出、对比度差)

这说明了为什么 get_screenshot 有价值——有些东西只能通过实际操作来验证 *看见* 终端。

文本演示

一个使用ASCII字符的简单的基于文本的TUI。适合测试 get_screen_text 以及基本的键盘导航。

发生了什么变化

一款视觉记忆游戏,旨在展示印记的截图功能。游戏显示了一个彩色单元格网格,然后更改了一个单元格——玩家必须确定更改了哪个单元格。非常适合测试AI代理检测屏幕截图之间视觉差异的能力。

测试

单元测试(Go)

go test ./...

端到端测试(Python)

tests/ 该目录包含端到端测试,用于验证印记是否与真实的AI代理正常工作。这些测试使用 Claude 代码 SDK 生成Claude,然后Claude使用imprint的MCP工具与示例TUI进行交互。

为什么是Python? Claude Code SDK仅在Python和TypeScript中可用。由于目标是从AI代理的角度测试印记(而不仅仅是Go代码的单元测试),我们使用SDK让Claude实际控制终端,并验证它是否可以完成导航菜单、切换复选框和识别视觉错误等任务。

cd tests
uv sync        # Install dependencies
uv run pytest  # Run all tests

单个测试文件:

  • test_text_demo.py -测试基于文本的导航和交互
  • test_screenshot_demo.py -通过屏幕截图测试视觉错误检测
  • test_what_changed.py -测试内存游戏的屏幕截图比较

建筑

flowchart TB
    subgraph imprint
        MCP["MCP Server
(stdio)"]
        TM["Terminal Manager
(go-rod + ttyd)"]
        TMUX["tmux session
(shared terminal)"]
        TTY["ttyd + Chrome/xterm
(real PTY + render)"]

        MCP --> TM
        TM --> TTY
        TTY --> TMUX
    end

    Claude["Claude Code"] -->|"JSON-RPC over stdio"| MCP
    Browser["Your Browser"] -->|"WebSocket via ttyd"| TMUX

AI和浏览器连接到同一个tmux会话,实现实时协作。

贡献

欢迎投稿!我在空闲时间处理印记,所以回复可能需要一段时间,但我很感激所有的公关和问题。

许可证

Apache 2.0

目录标签

目录标签

GoClaude团队协作AI控制终端本地部署TUI测试终端自动化像素级截图实时协作

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

10

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP