Notifications not working on Windows — OSC 777 sequences captured by Claude Code hook runner
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 38/100
Hướng nghiên cứu
Start with warp-notify.sh, then inspect build-payload.sh and the Stop, Notification, and SessionStart hook scripts. Reproduce the Git Bash failure and compare /dev/tty with stderr delivery. Done means Windows notifications reach Warp without being captured by Claude Code, while existing macOS and Linux behavior remains working.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Environment
- OS: Windows 11
- Warp version: v0.2026.05.06.15.42.stable_05
- Claude Code version: 2.1.77
- Shell: Git Bash (MSYS2)
- Plugin version: warp@claude-code-warp 2.0.0
- TERM_PROGRAM: WarpTerminal
- WARP_CLI_AGENT_PROTOCOL_VERSION: 1
Problem
Warp notifications from the Claude Code plugin never appear on Windows. All hooks fire correctly (verified via debug logging to /tmp/warp-debug.log), should_use_structured returns true, and build-payload.sh constructs valid JSON — but the notification never reaches Warp.
Root Cause
warp-notify.sh sends the OSC 777 escape sequence via:
printf '\033]777;notify;%s;%s\007' "$TITLE" "$BODY" > /dev/tty
On Windows (Git Bash), this fails because:
-
/dev/ttyfails to open — Git Bash inside Claude Code's hook runner cannot access/dev/tty. It exists as a path but writing to it gives:/dev/tty: No such device or address -
stderr fallback is captured — The fallback
>&2writes to stderr, but Claude Code's hook execution framework captures both stdout and stderr from hook subprocesses (stdout is used for structured JSON responses likesystemMessage). The OSC sequence goes into Claude Code's internal buffer, never reaching Warp's terminal emulator. -
No alternative fd exists — Unlike macOS/Linux where
/dev/ttyreliably connects to the controlling terminal, Windows has no equivalent side-channel that bypasses Claude Code's stdio capture.
Verified Working
should_use_structured→ returns 0 (true) ✅jqinstalled (1.8.1) ✅build-payload.sh→ produces valid JSON ✅- Hook scripts fire on Stop, Notification, SessionStart events ✅
- Plugin enabled in settings.json ✅
Debug Log (hooks are firing)
[WARP DEBUG] on-stop.sh fired at Sat May 16 21:18:31 IST 2026
[WARP DEBUG] on-stop.sh fired at Sat May 16 21:19:09 IST 2026
[WARP DEBUG] on-notification.sh fired at Sat May 16 21:20:12 IST 2026
[WARP DEBUG] on-stop.sh fired at Sat May 16 21:24:37 IST 2026
[WARP DEBUG] on-notification.sh fired at Sat May 16 21:25:39 IST 2026
Suggestion
The plugin needs a Windows-compatible delivery mechanism for OSC sequences. Possible approaches:
- Use Warp's IPC/socket if one exists (env var like
WARP_SOCKET?) - Request Claude Code to pass through OSC sequences from hook output instead of capturing them
- Use a Windows-specific API (ConPTY handle) to write directly to the terminal
This is a Windows-only issue — macOS/Linux work fine since /dev/tty connects directly to the controlling terminal.
- Ngôn ngữ chính
- Shell
- Star
- 234
- Fork
- 59
- Merge trung bình
- 2 ngày 8 giờ
- Pull request đã merge (30 ngày)
- 2
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của warpdotdev/claude-code-warp
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 85/100
warpdotdev/claude-code-warp#96 · 2 bình luận ·
-
on-stop.sh slurps the entire transcript with jq -s every turn — ~1 GB RSS on long sessions, triggered a host OOMCó thể đã có người làm @GeiserX đã nhận 19 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
warpdotdev/claude-code-warp#90 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Tất cả issue của warpdotdev/claude-code-warp
Issue tương tự
-
admission-deferred priority: medium status: ready work-class: scoped
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
melodic-software/claude-code-plugins#10887 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
allows image
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
DaoCloud/public-image-mirror#46272 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
kubernetes-csi/csi-driver-iscsi#485 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
Euro-Office/DocumentServer#485 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày