Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Warp terminal integration for Claude Code — native notifications via OSC 777 escape sequences. Hooks into SessionStart, Stop, Notification, PermissionRequest, UserPromptSubmit, and PostToolUse lifecycle events. Sends structured JSON payloads to Warp for session status, idle prompts, permission requests, and task completion.
.claude/skills/kunanonj-cursor-plugin-warp/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -23% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -39% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -43% | 0% |
Native Warp terminal notifications for Claude Code sessions. Uses OSC 777 escape sequences to send structured JSON payloads to Warp's cli-agent notification system.
| Hook | Trigger | Purpose | |------|---------|---------| | SessionStart | startup, resume | Emit plugin version, detect Warp | | Stop | session end | Notify task completion with last query/response | | Notification | idle_prompt | Alert when Claude is idle and waiting for input | | PermissionRequest | tool approval | Notify when Claude needs permission to run a tool | | UserPromptSubmit | prompt sent | Transition session status back to running | | PostToolUse | tool complete | Transition session from blocked back to running |
Payloads follow the cli-agent notification schema with version negotiation:
json{ "v": 1, "agent": "claude", "event": "stop|session_start|idle_prompt|permission_request|prompt_submit|tool_complete", "session_id": "...", "cwd": "...", "project": "..." }
The should-use-structured.sh guard checks WARP_CLI_AGENT_PROTOCOL_VERSION and WARP_CLIENT_VERSION to avoid sending structured notifications to Warp builds that advertise protocol support but cannot render them.
build-payload.sh — Shared payload builder with protocol version negotiationshould-use-structured.sh — Feature detection for structured notification supportwarp-notify.sh — OSC 777 escape sequence emitter to /dev/ttyon-session-start.sh — SessionStart hook handleron-stop.sh — Stop hook with transcript parsing for last query/responseon-notification.sh — Idle prompt notificationon-permission-request.sh — Tool permission request with human-readable summaryon-prompt-submit.sh — Prompt submission status updateon-post-tool-use.sh — Post-tool-use status updatejq for JSON payload construction| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 14,660 | 7,532 | -49% | 1 | 1 | 0% | 2,618 | 2,017 | -23% | 0 | 0 | — |
case-02 | fail→pass | 18,002 | 13,173 | -27% | 1 | 1 | 0% | 3,155 | 3,133 | -1% | 0 | 0 | — |
case-03 | fail→pass | 16,868 | 6,310 | -63% | 1 | 1 | 0% | 3,125 | 1,896 | -39% | 0 | 0 | — |
case-04 | pass→pass | 15,689 | 13,107 | -16% | 1 | 1 | 0% | 3,258 | 3,270 | +0% | 0 | 0 | — |
case-05 | fail→pass | 13,036 | 12,900 | -1% | 1 | 1 | 0% | 2,252 | 2,783 | +24% | 0 | 0 | — |
case-06 | pass→fail | 14,217 | 13,372 | -6% | 1 | 1 | 0% | 2,729 | 3,015 | +10% | 0 | 0 | — |
case-07 | fail→pass | 13,071 | 4,464 | -66% | 1 | 1 | 0% | 2,527 | 1,450 | -43% | 0 | 0 | — |
case-08 | fail→pass | 8,758 | 1,784 | -80% | 1 | 1 | 0% | 1,531 | 745 | -51% | 0 | 0 | — |
case-09 | fail→fail | 17,787 | 1,588 | -91% | 1 | 1 | 0% | 1,763 | 757 | -57% | 0 | 0 | — |
case-10 | fail→pass | 8,359 | 1,497 | -82% | 1 | 1 | 0% | 1,302 | 664 | -49% | 0 | 0 | — |
case-11 | fail→pass | 12,187 | 1,845 | -85% | 1 | 1 | 0% | 2,196 | 842 | -62% | 0 | 0 | — |
case-12 | fail→pass | 11,116 | 1,470 | -87% | 1 | 1 | 0% | 1,892 | 701 | -63% | 0 | 0 | — |
case-13 | fail→pass | 11,076 | 3,187 | -71% | 1 | 1 | 0% | 1,783 | 741 | -58% | 0 | 0 | — |
case-14 | fail→pass | 14,655 | 3,045 | -79% | 1 | 1 | 0% | 2,303 | 722 | -69% | 0 | 0 | — |
case-15 | pass→pass | 9,782 | 2,061 | -79% | 1 | 1 | 0% | 1,713 | 766 | -55% | 0 | 0 | — |
case-16 | pass→pass | 5,032 | 2,117 | -58% | 1 | 1 | 0% | 693 | 641 | -8% | 0 | 0 | — |
case-17 | pass→pass | 13,299 | 1,522 | -89% | 1 | 1 | 0% | 2,348 | 696 | -70% | 0 | 0 | — |
case-22 | pass→pass | 14,289 | 1,925 | -87% | 1 | 1 | 0% | 2,423 | 805 | -67% | 0 | 0 | — |
case-18 | fail→pass | 7,325 | 1,767 | -76% | 1 | 1 | 0% | 1,336 | 849 | -36% | 0 | 0 | — |
case-19 | fail→pass | 3,700 | 1,983 | -46% | 1 | 1 | 0% | 623 | 772 | +24% | 0 | 0 | — |
case-20 | fail→pass | 14,588 | 3,598 | -75% | 1 | 1 | 0% | 2,261 | 1,097 | -51% | 0 | 0 | — |
case-21 | fail→pass | 9,202 | 1,896 | -79% | 1 | 1 | 0% | 1,577 | 765 | -51% | 0 | 0 | — |
case-23 | fail→pass | 8,804 | 1,773 | -80% | 1 | 1 | 0% | 1,550 | 743 | -52% | 0 | 0 | — |
case-24 | fail→pass | 10,778 | 1,490 | -86% | 1 | 1 | 0% | 1,811 | 710 | -61% | 0 | 0 | — |
case-25 | fail→pass | 8,917 | 4,684 | -47% | 1 | 1 | 0% | 1,415 | 874 | -38% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted. The headline lift of +68 percentage points is the difference between those two pass rates over the 25 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.