{"version":"2.1.283","anchor":"new-session-scoped-mod-hot-reloading-for-plugins-in-a-per","canonical_anchor":"new-session-scoped-mod-hot-reloading-for-plugins-in-a-per","heading":"New mod hot-reloading: a per-session mods folder, a consent prompt and a skill for writing mods","tier":"use","area":"Mods","url":"https:\/\/changelogs.core-directive.com\/v\/2.1.283\/e\/new-session-scoped-mod-hot-reloading-for-plugins-in-a-per","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.283","markdown":"### New mod hot-reloading: a per-session mods folder, a consent prompt and a skill for writing mods\n\nClaude can write plugin mods into a per-session folder that hot-reload after you agree, with a bundled skill and restore on resume\n\n**Unclear.** No skill shipped with this build seems to contain the placeholder, so it is not clear whether anyone can reach this feature yet.\n\n**What**\n\nA mod here is a small plugin made of function hooks (code that runs at set points) that adds things like a pane, band, status line, toast or hook inside Claude Code. This release adds a way to write mods and have them load live during a session:\n\n- Mods folder: each session can have its own mods folder. Skill text reaches it through the placeholder `${CLAUDE_DEV_MODS_DIR}`, which is replaced with the folder's path. Using it starts a watcher on the folder, except when the skill is only being preloaded.\n\n- Consent prompt: when plugins appear in the folder, Claude Code asks \"Enable hot reloading for this session?\" with \"Not now\" or \"Enable for this session\". If you agree, it loads the mods and reloads them whenever their files change.\n\n- Claude is told the outcome. If you decline, it is told that what it wrote is written but not loaded.\n\n- Bundled skill: a new skill you can invoke describes itself as \"Make a mod: a live pane, band, status line, toast or hook inside Claude Code (terminal or desktop Code tab), written as a plugin of function hooks that hot-reloads in this session.\" It ships examples: `examples\/pane.tsx`, `band.tsx`, `tool-call.ts`, `reference.md` and `types\/claude-code.d.ts`.\n\n- Resume: the chosen folder is saved in the session transcript as a `dev-mods` entry, the last one winning, and restored when you resume or fork the session. A folder that does not belong to that session is dropped.\n\n- Refusals: hot-reloading is refused, with the reason given to Claude, when hooks modules are switched off, all hooks are disabled, `disableAllHooks` is set, only managed hooks are allowed, policy forbids side-loaded plugins or local plugin folders, the session is in safe or bare mode, or the workspace is untrusted.\n\nThe hooks-modules checks involve the flag `tengu_plugin_hooks_modules`, which has not been read.\n\n**Why**\n\nThis is a built-in way for Claude to build live additions to Claude Code from inside a session, with an explicit prompt before anything it wrote runs. Existing policy and hook settings still block it.\n\n- Area: Mods\n- Tier: Use it now\n- Useful: 5\/5\n- Signal: 5\/5"}