{"name":"session.send","slug":"session-send","family":"setting","title":"Settings keys","noun":"settings key","description":"Plugin hooks can now listen for a new session.send event, alongside session.receive\/detach\/end","description_source":"entry","described_by":{"version":"2.1.280","anchor":"new-plugin-hookable-event-sessionsend"},"presence":{"first_seen":null,"removed_in":null,"in_current_build":false,"newest_mined":"2.1.280","builds":0,"mined_builds":123,"first_cited":{"version":"2.1.280","released_at":"2026-09-22 15:44:39","spans":7}},"aliases":[],"entries":[{"version":"2.1.280","anchor":"new-plugin-hookable-event-sessionsend","heading":"New plugin-hookable event: session.send","line":"Plugin hooks can now listen for a new session.send event, alongside session.receive\/detach\/end","released_at":"2026-09-22 15:44:39","reason":"named in this entry, found in this entry's text"},{"version":"2.1.280","anchor":"plugin-hooks-can-intercept-and-readdress-sendmessage-sends","heading":"Plugin hooks can intercept and readdress SendMessage sends","line":"Plugin hooks can now intercept SendMessage calls, rewriting or blocking who a message goes to","released_at":"2026-09-22 15:44:39","reason":"found in this entry's text"},{"version":"2.1.280","anchor":"pluginsdk-host-api-new-sessionsend-operation","heading":"Plugin\/SDK host API: new $.session.send operation","line":"Plugins and SDK integrations gain a session.send call to message a target by name, agent id, or session\/agent address","released_at":"2026-09-22 15:44:39","reason":"found in this entry's text"},{"version":"2.1.280","anchor":"plugin-sessionmessages-and-sessionusage-now-accept","heading":"Plugin $.session.messages and $.session.usage now accept an agentId\/as parameter","line":"Plugin session.messages and session.send can now target a specific agent via an agentId\/as parameter","released_at":"2026-09-22 15:44:39","reason":"found in this entry's text"}],"entries_total":4,"docs":[{"source":"claude-code","path":"agent-sdk\/typescript-v2-preview","title":"TypeScript SDK V2 session API (removed)","documented":false},{"source":"mcp","path":"docs\/2024-11-05\/tools\/debugging","title":"Debugging","documented":false},{"source":"mcp","path":"docs\/2025-03-26\/tools\/debugging","title":"Debugging","documented":false},{"source":"mcp","path":"docs\/2025-06-18\/tools\/debugging","title":"Debugging","documented":false},{"source":"mcp","path":"docs\/2025-11-25\/tools\/debugging","title":"Debugging","documented":false}],"docs_total":5,"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.start","slug":"session-start","description":"Two hook events arrive: session.start fires on terminal session start, and prompt.context is registered but has no emitter here."}],"url":"https:\/\/changelogs.core-directive.com\/reference\/setting\/session-send","family_url":"https:\/\/changelogs.core-directive.com\/reference\/setting.json"}