What is decision-tree?
decision-tree is a Claude Code mod by ray-amjad that when Claude ends a reply with a question, explains the choice in a side pane and lets you explore any option, or your own, in a real forked session. It is listed under Interface and has 72 GitHub stars.
| Type | Claude code mod |
|---|---|
| Author | ray-amjad |
| Repository | ray-amjad/awesome-claude-code-function-hooks |
| Popularity | 72 GitHub stars |
| Category | Interface |
| Security | Review before installing (72/100) |
| Rank | #216 of 5,272 Claude Code mods; #88 in Interface |
| License | MIT |
| Last commit | 2026-10-17 |
| Stars this week | +68 |
| Hooks | 5 events |
| Sees | classic hooks |
| Draws on | Pane |
Is decision-tree safe to install?
decision-tree scores 72/100 on the MCPMods security check: Review before installing. Things to review: starts processes outside the sandbox; reads environment variables. It passed 5 of 8 checks.
Mod footprints come from claude plugin validate, which lists every event a mod hooks and every API call it makes without running it.
| Check | Result |
|---|---|
| No network access | Pass |
| Starts processes outside the sandbox | Review |
| Writes no files or config | Pass |
| Reads environment variables | Review |
| Only sees the events it hooks | Pass |
| Drives Claude (model calls, prompts) | Note |
| Passes claude plugin validate | Pass |
| Has an open-source license | Pass |
API calls in its code
| Call | What it means |
|---|---|
$.command.register | |
$.env.get | reads env vars |
$.fs.exists | reads files |
$.fs.read | reads files |
$.model.complete | drives Claude |
$.model.fork | drives Claude |
$.process.run | runs processes |
$.session.cwd | |
$.session.id | |
$.ui.close | draws interface |
$.ui.copy | draws interface |
$.ui.invalidate | draws interface |
$.ui.log | draws interface |
$.ui.open | draws interface |
$.ui.resolve | draws interface |
$.ui.toast | draws interface |
How do I install decision-tree?
- Check your Claude Code version. Mods need Claude Code 2.1.287 or later and are on by default.
claude --version
- Read its footprint. This lists every event it hooks and every API call it makes, without running it.
git clone https://github.com/ray-amjad/awesome-claude-code-function-hooks claude plugin validate ./awesome-claude-code-function-hooks/plugins/decision-tree
- Install it. Run this in your terminal, then /reload-plugins in an open session.
claude plugin marketplace add ray-amjad/awesome-claude-code-function-hooks && claude plugin install decision-tree@claude-code-mods
Or ask Claude to set it up
Paste this into Claude Code and it installs decision-tree for you:
Install the "decision-tree" Claude Code mod from https://github.com/ray-amjad/awesome-claude-code-function-hooks/tree/main/plugins/decision-tree. Run claude plugin validate on it first and show me what it can access before you enable it.
More from ray-amjad/awesome-claude-code-function-hooks
This repository has at least 9 Claude Code mods on MCPMods.
- cache-clock: A one-line band above the prompt: context used, and a countdown until the prompt cache goes cold (Review before installing)
- diagram-pane: A side pane that pins every diagram Claude draws, keeps a live map of the work, and lets you go into boxes and change th (Review before installing)
- dream-pass: A dreaming pass over Claude's memory folder: merges duplicates, rewrites stale entries, removes dead ones and tidies MEM (Review before installing)
- jev-skill-suggestion: Scores every skill against your prompt with TypeSafe Jev as you type; observe, block or steer skill loading (Review before installing)
- memory-fork: After each turn Haiku decides whether memory needs a change; a tool-less fork of the session drafts it and the mod write (Review before installing)
- prompt-bouncer: Bounces vague prompts before Claude sees them, and suggests the project's own term (Review before installing)
- secret-box: Claude can use a secret without seeing it: a masked box saves keys to .env and gives Claude a placeholder, every key a t (High risk)
- transcript-redactor: Keeps secrets and email addresses out of the session transcript: swaps each one for a stable placeholder on the way in, (Low risk)