# Copilot SDK v2.5.0 - Table of Contents

> Elixir SDK for the GitHub Copilot CLI

## Pages

- [Copilot Supercharged SDK for Elixir](readme.md)

## Modules

- [Copilot](Copilot.md): Elixir SDK for the GitHub Copilot CLI.
- [Copilot.Client](Copilot.Client.md): Main client for interacting with the Copilot CLI.
- [Copilot.DefineTool](Copilot.DefineTool.md): Helper for defining tools to expose to the Copilot CLI.
- [Copilot.JsonRpcClient](Copilot.JsonRpcClient.md): GenServer-based JSON-RPC 2.0 client using Port for stdio communication.
- [Copilot.SdkProtocolVersion](Copilot.SdkProtocolVersion.md): SDK protocol version constant.
- [Copilot.Session](Copilot.Session.md): Represents a single conversation session with the Copilot CLI.
- [Copilot.Types](Copilot.Types.md): Type definitions for the Copilot SDK.
- [Copilot.Types.CommandContext](Copilot.Types.CommandContext.md): Context for a slash-command invocation.
- [Copilot.Types.CommandDefinition](Copilot.Types.CommandDefinition.md): Definition of a slash command registered with the session.
- [Copilot.Types.CopilotClientOptions](Copilot.Types.CopilotClientOptions.md): Options for creating a CopilotClient.
- [Copilot.Types.CustomAgentConfig](Copilot.Types.CustomAgentConfig.md): Configuration for a custom agent.
- [Copilot.Types.ElicitationContext](Copilot.Types.ElicitationContext.md): Context for an elicitation request from the server.
- [Copilot.Types.ElicitationResult](Copilot.Types.ElicitationResult.md): Result returned from an elicitation handler.
- [Copilot.Types.GetAuthStatusResponse](Copilot.Types.GetAuthStatusResponse.md): Response from auth.getStatus.
- [Copilot.Types.GetStatusResponse](Copilot.Types.GetStatusResponse.md): Response from status.get.
- [Copilot.Types.GitHubAttachment](Copilot.Types.GitHubAttachment.md): GitHub-anchored attachment variants.
- [Copilot.Types.InfiniteSessionConfig](Copilot.Types.InfiniteSessionConfig.md): Configuration for infinite sessions with automatic context compaction.
- [Copilot.Types.MCPLocalServerConfig](Copilot.Types.MCPLocalServerConfig.md): Configuration for a local/stdio MCP server.
- [Copilot.Types.MCPRemoteServerConfig](Copilot.Types.MCPRemoteServerConfig.md): Configuration for a remote MCP server (HTTP or SSE).
- [Copilot.Types.MemoryConfiguration](Copilot.Types.MemoryConfiguration.md): Opt-in persistent session memory.
- [Copilot.Types.MessageOptions](Copilot.Types.MessageOptions.md): Options for sending a message to a session.
- [Copilot.Types.ModelBilling](Copilot.Types.ModelBilling.md): Model billing information.
- [Copilot.Types.ModelCapabilities](Copilot.Types.ModelCapabilities.md): Model capabilities and limits.
- [Copilot.Types.ModelInfo](Copilot.Types.ModelInfo.md): Information about an available model.
- [Copilot.Types.ModelLimits](Copilot.Types.ModelLimits.md): Model limits.
- [Copilot.Types.ModelPolicy](Copilot.Types.ModelPolicy.md): Model policy state.
- [Copilot.Types.ModelSupports](Copilot.Types.ModelSupports.md): Model support flags.
- [Copilot.Types.ModelVisionLimits](Copilot.Types.ModelVisionLimits.md): Vision-specific limits.
- [Copilot.Types.PermissionRequest](Copilot.Types.PermissionRequest.md): Permission request from the server.
- [Copilot.Types.PermissionRequestResult](Copilot.Types.PermissionRequestResult.md): Result of a permission decision.
- [Copilot.Types.PingResponse](Copilot.Types.PingResponse.md): Response from ping.
- [Copilot.Types.ProviderConfig](Copilot.Types.ProviderConfig.md): Configuration for a custom API provider (BYOK).
- [Copilot.Types.ProviderTokenArgs](Copilot.Types.ProviderTokenArgs.md): Arguments passed to a BYOK bearer-token provider (per-session scoping).
- [Copilot.Types.ResumeSessionConfig](Copilot.Types.ResumeSessionConfig.md): Configuration for resuming an existing session.
- [Copilot.Types.SectionOverride](Copilot.Types.SectionOverride.md): Override operation for a single system prompt section.
- [Copilot.Types.SessionConfig](Copilot.Types.SessionConfig.md): Configuration for creating a session.
- [Copilot.Types.SessionFsConfig](Copilot.Types.SessionFsConfig.md): Configuration for a custom session filesystem provider.
- [Copilot.Types.SessionFsFileInfo](Copilot.Types.SessionFsFileInfo.md): File metadata returned by session filesystem operations.
- [Copilot.Types.SessionFsProvider](Copilot.Types.SessionFsProvider.md): Behaviour for session filesystem providers.
- [Copilot.Types.SessionHooks](Copilot.Types.SessionHooks.md): Configuration for session hooks.
- [Copilot.Types.SessionLifecycleEvent](Copilot.Types.SessionLifecycleEvent.md): Session lifecycle event notification.
- [Copilot.Types.SessionLimitsConfig](Copilot.Types.SessionLimitsConfig.md): Per-session AI-credit budget; set `max_ai_credits` to cap spend.
- [Copilot.Types.SessionMetadata](Copilot.Types.SessionMetadata.md): Metadata about a session.
- [Copilot.Types.SystemMessageAppendConfig](Copilot.Types.SystemMessageAppendConfig.md): Append mode: SDK foundation plus optional appended content.
- [Copilot.Types.SystemMessageCustomizeConfig](Copilot.Types.SystemMessageCustomizeConfig.md): Customize mode: override individual sections of the system prompt.
- [Copilot.Types.SystemMessageReplaceConfig](Copilot.Types.SystemMessageReplaceConfig.md): Replace mode: caller provides entire system message.
- [Copilot.Types.SystemMessageSection](Copilot.Types.SystemMessageSection.md): System-message section identifiers. The `preamble/0` section targets only the
identity preamble; `preserve/0` protects an addressable section from removal.

- [Copilot.Types.Tool](Copilot.Types.Tool.md): Definition of a tool exposed to the Copilot CLI.
- [Copilot.Types.ToolBinaryResult](Copilot.Types.ToolBinaryResult.md): Binary result from a tool invocation.
- [Copilot.Types.ToolDefer](Copilot.Types.ToolDefer.md): Tool "defer" loading policy: `auto/0` (lazy via search) or `never/0` (eager pre-load).
- [Copilot.Types.ToolInvocation](Copilot.Types.ToolInvocation.md): Context passed to a tool handler when invoked.
- [Copilot.Types.ToolResult](Copilot.Types.ToolResult.md): Structured result of a tool invocation.
- [Copilot.Types.UserInputRequest](Copilot.Types.UserInputRequest.md): Request for user input from the agent (enables ask_user tool).
- [Copilot.Types.UserInputResponse](Copilot.Types.UserInputResponse.md): Response to a user input request.

