Appends a short-answer style section to the system prompt: action first, numbered steps, capped lists, no preamble or closers.

Personal Claude Code mods, published as one local-style marketplace named heitor-mods.
Requires a Claude Code build with mod (function hooks) support.
1. Add the marketplace. The repository is private, so gh auth login (or any git credential that can read it) must work first.
claude plugin marketplace add fhva29/claude-code-mods
Or clone it and add the folder; Claude Code then reads the mods straight from it, so an edit plus /reload-plugins is enough, with no reinstall:
git clone https://github.com/fhva29/claude-code-mods ~/.claude/mods
claude plugin marketplace add ~/.claude/mods
2. Install the mods you want (user scope):
claude plugin install next-lite@heitor-mods
claude plugin install tidy-tools@heitor-mods
# ...or all of them:
for m in blast-radius commit-gate model-stack next-lite pixel-quest prompt-git \
replay-theater tidy-tools usage-weather brief-mode; do
claude plugin install "$m@heitor-mods"
done
3. Reload inside Claude Code with /reload-plugins.
Options (userConfig) are set in /plugin → pick the mod → configure, then /reload-plugins. They are stored in ~/.claude/settings.json under pluginConfigs.
| Mod | What it does | Command | |
|---|---|---|---|
next-lite | Suggests up to three next prompts above the input (press 1/2/3 to fill the prompt box, 0 to dismiss; the top one is also Tab ghost text). Sends a ~1–2k token digest of the turn to a small model instead of forking the whole session, so its cost does not grow with the conversation. Replacement for next-steps. Options: mode (auto/manual), model, minAnswerChars, suggestSkills. | /next | |
model-stack | Routes the model and effort of the main chat turn and of each subagent with TypeSafe's Jev, and shows the roster, decisions and agent graph in a pane. Needs TYPESAFE_API_KEY in the environment. | /stack | |
tidy-tools | Draws each tool call as one compact line, or folds a whole turn into one "N steps this turn" line. | /lines | |
blast-radius | Holds risky shell commands (rm -rf, git reset --hard, git clean, force push, migrations) and shows what they would change, with Proceed and Cancel buttons. | ||
commit-gate | Holds git commit in a pane listing the staged files, flags files not edited this session and blocks AI attribution trailers. | ||
replay-theater | Steps through the file edits Claude made in the last turn, one diff at a time. | /replay | |
usage-weather | A forecast band above the prompt: context fill, sparkline, rate limits, model and effort. | ||
prompt-git | Appends the git branch and working-tree counts to the hint line under the prompt. | ||
pixel-quest | Replaces the spinner with a pixel RPG scene for each tool, with XP, levels and achievements. No model calls. | /toons | |
brief-mode | Appends a short-answer style section to the system prompt: answer or next action first, numbered steps, lists capped at five, no preamble, recap or closers. Edit hooks/rules.ts to tune it. | ||
midnight-neon | Draws assistant replies with a dark neon palette: filled h1 banner, colored h2–h6, colored bullets, quote bars, highlighted bold, italic, inline code and links. Fences and tables keep the engine's renderer. Not installed by default; /neon flips it per session, `claude plugin enable\ | disable` flips it for good. | /neon |
_archive holds mods that are kept but not in use (branch-hud); they are not listed in the marketplace.
Each mod is a folder with .claude-plugin/plugin.json, hooks/hooks.json and a hooks module (register.ts or register.tsx). Check one with:
claude plugin validate <mod>
claude plugin test <mod>
claude plugin test does not type-check; run tsc against the SDK declarations Claude Code writes to <mod>/.claude-plugin/types/ as well.
next-lite builds on next-steps (MIT, Thariq Shihipar): it reuses the text sanitizer and the reply parsing, and replaces the session fork with a small digest.
hooks/register.ts 14 lines1import type { Register } from 'claude-code'
2
3import { BRIEF_RULES } from './rules'
4
5export const register: Register = on => {
6 on('prompt.compose', async ($, e, next) => {
7 const { sections } = await next(e)
8
9 return {
10 sections: [...sections, { id: 'brief-mode:rules', text: BRIEF_RULES, scope: 'session' }],
11 }
12 })
13}
14hooks/rules.ts 22 lines1export const BRIEF_RULES = `# Brief mode
2
3Shape every reply so it can be acted on from the first line.
4
51. Lead with the answer, result, or next action. Context comes after, only if it changes what the reader does.
62. Match length to the question. A simple question gets 1-3 sentences, no headers.
73. Multi-step work: numbered list, one bounded action per step, fewest steps that work.
84. Lists: at most 5 items per group, most relevant first. Group the rest; show them only if asked.
95. If something is still open, end with ONE concrete next step. If nothing is open, stop.
106. No preamble ("Let me...", "Great question"), no recap of what you just did, no closers ("Hope this helps").
117. A side issue goes in one trailing line starting with "Separately:", never inline.
128. Errors: state the observed failure, then the cause only if the evidence shows it, then the fix. If the cause is unknown, say so and name the one check that would find it.
139. Delete hedges that carry no information; keep hedges that carry real uncertainty.
14
15Overrides, in this order:
16- Explicit format or length requested by the user wins.
17- "Explain" / "walk me through": answer fully, with headers to skim. Still no preamble or closer.
18- Destructive or irreversible action: be explicit and complete before acting.
19- Real ambiguity: ask one short question instead of guessing.
20- If a rule would delete the answer itself, keep the answer and the shape.
21- This section never changes the reply language.`
22