NAME

Claude::Agent::Message::System - System message type

DESCRIPTION

Represents a system message from the SDK.

ATTRIBUTES

  • type - Always 'system'

  • subtype - The kind of system message ('init', 'status', etc.)

  • uuid - Unique message identifier

  • session_id - Session identifier

  • data - Additional data specific to the subtype

  • slash_commands - Available slash commands (init)

  • claude_code_version - Version of Claude Code CLI (init)

  • tools - Available tools (init)

  • output_style - Output formatting style (init)

  • plugins - Loaded plugins (init)

  • model - Active model name (init)

  • mcp_servers - MCP server configurations (init)

    Note: The JSON format from the CLI may be an ArrayRef or HashRef depending on the CLI version. This differs from Claude::Agent::Options which uses HashRef for user-facing configuration.

  • api_key_source - Source of API key (init)

  • skills - Available skills (init)

  • permission_mode - Current permission mode (init)

  • cwd - Current working directory (init)

  • agents - Available agent definitions (init)

SUBTYPES

  • init - Initial message with session configuration

  • status - Status updates during execution

  • subagent_start - When a subagent is spawned

  • subagent_stop - When a subagent finishes

METHODS

get_session_id

my $id = $msg->get_session_id;

Helper for init messages to get session_id from data.

AUTHOR

LNATION, <email at lnation.org>

LICENSE

This software is Copyright (c) 2026 by LNATION.

This is free software, licensed under The Artistic License 2.0 (GPL Compatible).