{"name":"session.start","slug":"session-start","family":"setting","title":"Settings keys","noun":"settings key","description":"Two hook events arrive: session.start fires on terminal session start, and prompt.context is registered but has no emitter here.","description_source":"entry","described_by":{"version":"2.1.259","anchor":"new-pluginhook-events-promptcontext-and-sessionstart"},"presence":{"first_seen":null,"removed_in":null,"in_current_build":false,"newest_mined":"2.1.319","builds":0,"mined_builds":159,"first_cited":{"version":"2.1.259","released_at":"2026-09-02 21:21:42","spans":7}},"aliases":[],"entries":[{"version":"2.1.318","anchor":"mods-classicsessionstart-hook-refuses-calls-in-pre-started","heading":"Some mod calls are refused in a classic.SessionStart hook on pre-started sessions","line":"If a host started the session early, some mod calls made from a `classic.SessionStart` hook are now refused instead of hanging","released_at":"2026-11-03 21:55:17","reason":"found in this entry's text, named in this entry"},{"version":"2.1.292","anchor":"hook-re-entry-handling-added-to-the-hooks-module-runtime","heading":"Plugin hooks are kept from setting themselves off again","line":"The hooks module now skips a hook that would run again inside its own plugin, and limits hooks that asked to catch errors to answering","released_at":"2026-10-06 17:10:31","reason":"found in this entry's text"},{"version":"2.1.281","anchor":"hooks-module-sessionstart-and-sessionend-lifecycle-tweaks","heading":"Hooks-module session.start and session.end lifecycle tweaks","line":"Hook session.start now skips if it is no longer wanted after modules load, and session.end waits for its fallback under the timeout","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text"},{"version":"2.1.271","anchor":"turn-scoped-tracking-for-plugin-originated-prompt-submission","heading":"Turn-scoped tracking for plugin-originated prompt submissions","line":"Prompts submitted by plugins are now tracked against the current conversation turn","released_at":"2026-09-14 19:45:19","reason":"found in this entry's text"},{"version":"2.1.265","anchor":"hook-registry-gains-commanddescribe-as-a-core-hook-event","heading":"Hook registry gains command.describe as a core hook event","line":"Claude Code adds a new internal hook event called command.describe","released_at":"2026-09-08 19:05:16","reason":"found in this entry's text"},{"version":"2.1.260","anchor":"late-loaded-plugins-now-get-sessionstart-events-replayed","heading":"Late-loaded plugins now get session.start events replayed","line":"Plugins loaded late now correctly receive the session-start event they previously missed.","released_at":"2026-09-03 22:32:02","reason":"found in this entry's text, named in this entry"},{"version":"2.1.260","anchor":"new-plugin-authoring-skill-for-function-hooks-plugins","heading":"New plugin-authoring skill for function-hooks plugins","line":"A new bundled skill teaches how to write function-hook plugins.","released_at":"2026-09-03 22:32:02","reason":"found in this entry's text"},{"version":"2.1.259","anchor":"new-pluginhook-events-promptcontext-and-sessionstart","heading":"New plugin\/hook events 'prompt.context' and 'session.start'","line":"Two hook events arrive: session.start fires on terminal session start, and prompt.context is registered but has no emitter here.","released_at":"2026-09-02 21:21:42","reason":"found in this entry's text, named in this entry"},{"version":"2.1.259","anchor":"promptcontext-dispatch-hook-point","heading":"prompt.context dispatch hook point","line":"Computed prompt context blocks are forwarded through a registered prompt.context handler when one exists, alongside a session-bound extension point.","released_at":"2026-09-02 21:21:42","reason":"found in this entry's text, named in this entry"}],"entries_total":9,"docs":[{"source":"api","path":"api\/compliance\/apps","title":"Apps","documented":false},{"source":"api","path":"api\/compliance\/apps\/sessions","title":"Sessions","documented":false},{"source":"api","path":"api\/compliance\/apps\/sessions\/remote","title":"Remote","documented":false},{"source":"api","path":"api\/compliance\/apps\/sessions\/remote\/messages","title":"Messages","documented":false},{"source":"api","path":"api\/compliance\/apps\/sessions\/remote\/messages\/list","title":"Retrieve remote session messages","documented":false},{"source":"claude-code","path":"agent-sdk\/python","title":"Agent SDK reference - Python","documented":false},{"source":"claude-code","path":"plugins\/mods\/admin","title":"Manage mods for your organization","documented":false},{"source":"claude-code","path":"plugins\/mods\/api","title":"Use the mods API","documented":false},{"source":"claude-code","path":"plugins\/mods\/create","title":"Create a mod","documented":false},{"source":"claude-code","path":"plugins\/mods\/events","title":"React to events with a mod","documented":false}],"docs_total":12,"gates":[],"related":[{"name":"session","slug":"session","description":"A per-session workshop document gets snapshotted with your session files and is only writable in plan mode."},{"name":"session.attach","slug":"session-attach","description":"Plugin hooks can now react to tool-call dry-runs, config changes, and session attach\/detach events."},{"name":"session.authorize","slug":"session-authorize","description":"Plugins gain $.session.authorize(), which mints an auth handle for the session."},{"name":"session.compact","slug":"session-compact","description":"A new `session.compact` plugin hook can intercept and rewrite conversation compaction"},{"name":"session.detach","slug":"session-detach","description":"Plugin hooks can now react to tool-call dry-runs, config changes, and session attach\/detach events."},{"name":"session.end","slug":"session-end","description":"Two new lifecycle events, `session.end` and `session.measure`, added for plugins and hooks"},{"name":"session.measure","slug":"session-measure","description":"Two new lifecycle events, `session.end` and `session.measure`, added for plugins and hooks"},{"name":"session.receive","slug":"session-receive","description":"A new `session.compact` plugin hook can intercept and rewrite conversation compaction"},{"name":"session.root","slug":"session-root","description":"Plugin API policy list adds session.root, prompt.read, and ui.panes as permitted actions"},{"name":"session.send","slug":"session-send","description":"Plugin hooks can now listen for a new session.send event, alongside session.receive\/detach\/end"}],"url":"https:\/\/changelogs.core-directive.com\/reference\/setting\/session-start","family_url":"https:\/\/changelogs.core-directive.com\/reference\/setting.json"}