Skip to content
Back to skills

Playwright Compress

ASecurity

PostToolUse hook that compresses Playwright MCP tool output using Haiku summarization — Layer 4 of the token defense stack

  • 43 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 9, 2026
toolsbashgitapi

Works with

  • api
  • mcp

Security analysis

A100/100

Scanned October 4, 2026

npx -y skills add baekenough/oh-my-customcode --skill playwright-compress --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Playwright Compress?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Playwright Compress
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/baekenough-playwright-compress/badge)](https://www.skillsdirectory.com/skills/baekenough-playwright-compress)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: playwright-compress
description: PostToolUse hook that compresses Playwright MCP tool output using Haiku summarization — Layer 4 of the token defense stack
scope: core
version: 1.0.0
user-invocable: false
disable-model-invocation: true
---

# Playwright MCP Output Compression (Layer 4)

## Purpose

Reduces Playwright MCP tool output tokens by 94-96% using intelligent Haiku summarization while preserving `ref=` values for interactive flow continuity.

## Architecture

```
MCP tool response (37K+ chars)
  ↓ PostToolUse hook
  ↓ playwright-compress.sh
  ↓ claude -p --model haiku (summarize)
  ↓ updatedMCPToolOutput (1.4K-1.9K chars)
```

## Token Defense Stack Position

| Layer | Component | Mechanism | Scope |
|-------|-----------|-----------|-------|
| 1 | cc-token-saver | Time-based budget alerts | Session |
| 2 | R013 Ecomode | Context-aware output compression | Agent |
| 3 | MAX_MCP_OUTPUT_TOKENS | Hard truncation (lossy) | Setting |
| **4** | **playwright-compress** | **Intelligent summarization (lossless ref=)** | **Hook** |

## Behavior

- **Trigger**: PostToolUse on `mcp__playwright__.*` tools
- **Skip condition**: Output < 3000 characters (not worth compressing)
- **ref= preservation**: All `ref=` attribute values are extracted and preserved in the summary
- **Fallback**: If Haiku summarization fails, original output is returned unchanged
- **Auth**: Uses Claude subscription auth (`claude -p`), no API key needed

## Integration

| Rule | Interaction |
|------|-------------|
| R001 | No external data transmission — uses local `claude -p` |
| R013 | Complements Ecomode (Layer 2) with MCP-specific compression |
| R021 | Advisory PostToolUse hook — never blocks |

## Hook Configuration

Configured in `.claude/hooks/hooks.json` PostToolUse section (the entry whose command runs `playwright-compress.sh`):

```json
{
  "matcher": "mcp_tool_name matches \"mcp__playwright__.*\" || mcp_tool_name matches \"mcp__claude-in-chrome__.*\"",
  "hooks": [{
    "type": "command",
    "command": "bash \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/scripts/playwright-compress.sh\""
  }],
  "description": "Layer 4: Compress Playwright/Chrome MCP output via Haiku summarization"
}
```

## Source

Adapted from [treesoop/claude-native-plugin](https://github.com/treesoop/claude-native-plugin) playwright-optimizer (MIT).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…