Packages
claude_code
0.32.0
0.36.5
0.36.4
0.36.3
0.36.2
0.36.1
0.36.0
0.35.0
0.34.0
0.33.1
0.32.2
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.1
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Claude Agent SDK for Elixir – Build AI agents with Claude Code
Current section
Files
Jump to
Current section
Files
lib/claude_code/session/slash_command.ex
defmodule ClaudeCode.Session.SlashCommand do
@moduledoc """
Information about an available skill (invoked via /command syntax).
Returned as part of the initialization response from the CLI.
## Fields
* `:name` - Skill name (without the leading slash)
* `:description` - Description of what the skill does
* `:argument_hint` - Hint for skill arguments (e.g., `"<file>"`)
"""
use ClaudeCode.JSONEncoder
defstruct [
:name,
:description,
:argument_hint
]
@type t :: %__MODULE__{
name: String.t(),
description: String.t(),
argument_hint: String.t() | nil
}
@doc """
Creates a SlashCommand from a JSON map.
## Examples
iex> ClaudeCode.Session.SlashCommand.new(%{"name" => "commit", "description" => "Create a commit", "argumentHint" => "<message>"})
%ClaudeCode.Session.SlashCommand{name: "commit", description: "Create a commit", argument_hint: "<message>"}
"""
@spec new(map() | String.t()) :: t()
def new(data) when is_map(data) do
%__MODULE__{
name: data["name"],
description: data["description"],
argument_hint: data["argument_hint"]
}
end
def new(name) when is_binary(name) do
%__MODULE__{name: name, description: nil, argument_hint: nil}
end
end