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
  • 3 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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.