verify — Trình ghi kiểm thử app terminal headless
Điều khiển app terminal (kitty graphics) trong pty không cần terminal thật, ghi lại toàn bộ thành video kèm timeline và bảng check.
Lập trìnhNâng cao★ 922⑂ 44Điểm AI 7/10Cập nhật lần cuối: 11 thg 8, 2026
Giúp được gì
- Chạy app trong pty giả lập: harness tự đặt
TERM=xterm-kitty, kích thước cửa sổ theo pixel, trả lời truy vấn chế độ chuột 1016. - Dùng
Driverđể mô phỏng phím, gõ chữ, click, drag, cuộn chuột, di chuyển chuột; mỗi hành động kèm mô tả sẽ thành caption trong video và mục trong timeline. Recorderbắt mọi frame app phát ra, encode thành mp4, tạosummary.htmlgồm bảng pass/fail từcheck()và ảnh chụp từstill().- Kết thúc bằng
pixel open file:///tmp/verify-runs/<name>-<stamp>/summary.html— trang này chính là sản phẩm giao nộp. - Liệt kê các cạm bẫy thực tế: framebuffer bị làm tròn theo lưới ô nên phải lấy toạ độ từ
d.frame_size, ESC phải gửi dạng kitty CSI-u, drag cần đủ press/drag/release, đường dẫn file phải tuyệt đối.
Dành cho ai
- Lập trình viên làm app TUI/terminal vẽ bằng kitty graphics protocol, cần kiểm thử hồi quy giao diện.
- Nhóm cần báo cáo kiểm thử "đã test gì, vì sao" thay vì vài ảnh PNG rời rạc.
- Dự án có sẵn harness
tools/verify-recordernhư repo zenbu-labs/terminal-browser.
Ví dụ sử dụng
- Kiểm tra cuộn bằng wheel không làm lệch con trỏ: mở app →
pump→ cuộn 3 lần ở giữa → check số frame tăng →still("after-scroll")→ mở trang summary. - Kiểm tra chọn bằng kéo chuột: gửi riêng
press,drag,releasevà xác nhận không phát sinh click sai ở vị trí nhả chuột. - Chụp trạng thái hover: kết thúc bằng
moveđể bật hover, rồi đọc màu pixel bằngpng_readđể viết assertion thật.
· · · Hướng dẫn cài đặt · · ·
Dùng thử ngay, không cần cài
Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.
Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình: https://raw.githubusercontent.com/zenbu-labs/terminal-browser/HEAD/.claude/skills/verify/SKILL.md Mình muốn: (viết việc bạn cần ở đây)
Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.
↓ Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.
Cài vào ứng dụng Claude (không cần terminal)
- Tải tệp ZIP bằng nút bên dưới.
- Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
- Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Cài vào Claude Code
Để Claude làm — dán câu dưới đây vào Claude Code
Hãy cài skill mình tìm thấy trên Claude Skill Mart. Copy thư mục .claude/skills/verify từ repo GitHub zenbu-labs/terminal-browser vào ~/.claude/skills/verify/ của mình. Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.
Cài bằng lệnh thủ công
git clone https://github.com/zenbu-labs/terminal-browser.git && mkdir -p ~/.claude/skills/verify && cp -r terminal-browser/.claude/skills/verify/* ~/.claude/skills/verify/⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.
- Clone repo:
git clone https://github.com/zenbu-labs/terminal-browser.git - Tạo thư mục skill:
mkdir -p ~/.claude/skills/verify - Sao chép skill:
cp -r terminal-browser/.claude/skills/verify/* ~/.claude/skills/verify/ - Skill phụ thuộc vào harness
tools/verify-recordertrong repo, nên giữ lại bản clone và ghi nhớ đường dẫn. - Build app cần kiểm thử trước (ví dụ
cargo buildđể cóengine/target/debug/...; app Node thìnpm installtrong package). - Đảm bảo có
ffmpeg(encode video) và lệnhpixel(mở trang summary). - Khởi động lại Claude Code rồi yêu cầu "verify app này". Kết quả nằm ở
/tmp/verify-runs/<tên>-<timestamp>/summary.html.
Xem mã nguồn trên GitHub ↗Giấy phép: MIT