Concise checks before the write.

A prompt can ask an agent to be brief. Concise checks the text before the write runs and tells the agent what to fix.

Install Concise

Catch it before it lands.

Concise gives the finding, and the agent can revise.
Concise does not rewrite your files.

An example, not a live agent
What the agent tries to writePending
src/auth.ts
// Check whether the provided user has// permission to access the resource.// First read their permissions list,// then look for the requested entry.// Return true when a match is found.export function canAccess(user, resource) {  return user.permissions.includes(resource);}
5 comment linesTypeScript
With Concise Rewritten
src/auth.ts
// Check resource permissions.export function canAccess(user, resource) {  return user.permissions.includes(resource);}
1 comment line
Caught before the write

Comment is 5 lines (limit 2).

5 comment lines become 1. The code stays the same.See the hook in action

These examples are illustrations, not a live agent. No files change.

Three core checks.

These checks run without configuration. They check the submitted write or the added lines, not the whole repository.

Comments
A comment block over 2 lines gets a denial with its location and the limit.
Files
A whole-file write or a new-file patch over 300 lines gets a denial. In an ordinary update hunk, Concise checks only the added lines.
PRs and issues
An inline body can have 1 prose paragraph of up to 3 sentences. Headings and lists are permitted.

See each decision.

After 2 denials on the same target, Concise allows the next attempt and flags it. The em-dash and AI-writing checks are optional and off by default.

Live activity with a denied git commit expanded: three vocabulary matches (Leverage, robust, seamless) and the hook response sent to the agent.
Each hook call as it happens. Expand one to see the findings and the exact response your agent received.
Playground result for a Write call: matches for an em dash, delve, In conclusion, and game-changer, each with a suggested fix, and the hook decision.
Paste text and run it through the real hooks. Each match comes with its rule, line, and suggested fix.
Choose checks and exceptions

Quieter test output.

A passing test run reaches the agent as a short summary. A failed run keeps its full output. Concise saves the complete log of each run and prints its path with the summary.

pytest, go test, npm test, Jest, and Vitest

Example output in Claude Codepytest
$ pytest tests/
[filtered] runner=pytest exit=0 (cap 100)
[filtered] available output: cat '$TMPDIR/concise-test-output-hS2x6f/output.log'
[filtered] last 5 lines:
…
========== 214 passed in 3.82s ==========