CCPP Emmet
Emmet for every language, expanded before the file is written, so Claude types less.
Claude writes abbreviations, CCPP Emmet expands them into the full code or markup before it reaches the disk. Fewer output tokens, the same files.
ccpp emmet profiles
- language, one syntax
- Every
- the write, never after
- Before
- runtime dependencies
- 0
- hook to install
- 1
Output tokens are the slowest and most expensive tokens of a session. Boilerplate is most of them. CCPP Emmet lets Claude write the short form and expands it on the way to the file.
Why it matters
Write less, get the same file
An abbreviation expands deterministically into the code it stands for. The file on disk is exactly what a human would have typed.
Beyond HTML
Dictionaries describe each language, so the same syntax covers markup, stylesheets and code.
Invisible when unused
A document opts in with its envelope. Every other write goes through untouched.
How it works
A file that starts with the #!emmet envelope is expanded by the hook before Claude Code writes it. The Lua package emmet does the same inside a chunk.
#!emmet html
nav.menu>ul>li*4>a[href=#]{Item $}
Specifications
- Stage
- Beta
- Expansion
- Deterministic, from dictionaries shipped with the plugin
- Interfaces
- ccpp emmet, a Claude Code hook, the Lua package emmet
- Platforms
- Linux, macOS, Windows
Free with every account
Install the emmet plugin from the CCPP marketplace.
Works well with CCPP Emmet
Every productCCPP Limits
No tool result reaches the agent whole, and every token a session spends is measured.
CCPP Lua
The harness Claude Code was missing: one Lua chunk does a whole step of work.
ccpp shell
One Bash, the same on every operating system, with its core commands written in Go.
One account. Every tool Claude needs.
Free products come with a free account. Builder unlocks the rest, the harness first.