Skip to main content

claude_code_sdk_rust/
lib.rs

1pub mod client;
2mod client_stream;
3pub mod client_types;
4pub mod error;
5pub mod mcp;
6pub mod options;
7pub mod query;
8pub mod session_store;
9pub mod session_summary;
10pub mod sessions;
11pub mod types;
12
13/// SDK crate version.
14pub const VERSION: &str = env!("CARGO_PKG_VERSION");
15
16pub mod internal {
17    pub mod cli_args;
18    #[cfg(test)]
19    mod cli_args_tests;
20    pub mod cli_discovery;
21    pub mod control;
22    pub mod message_parser;
23    pub mod parser;
24    pub mod protocol;
25    pub mod runtime;
26    pub mod sdk_mcp;
27    pub mod session_resume;
28    #[cfg(test)]
29    mod session_resume_tests;
30    pub mod session_store_validation;
31    pub mod sessions_fs;
32    mod stdout_decoder;
33    pub mod transcript_mirror;
34    pub mod transport;
35}
36
37// Re-export commonly used types
38pub use types::*;
39
40pub type McpServerInfo = types::MCPServerInfo;
41pub type McpServerStatus = types::MCPServerStatus;
42pub type McpStatusResponse = types::MCPStatusResponse;
43pub type McpToolAnnotations = types::MCPToolAnnotations;
44pub type McpToolInfo = types::MCPToolInfo;
45
46// Re-export error types
47pub use error::{
48    CLIConnectionError, CLIJSONDecodeError, CLINotFoundError, ClaudeSDKError, MessageParseError,
49    ProcessError, Result,
50};
51
52// Re-export options types
53pub use options::ClaudeAgentOptionsBuilder;
54
55// Re-export query function and types
56pub use query::{
57    query, query_messages, query_messages_with_transport, query_stream_messages,
58    query_stream_messages_with_transport, QueryResult, TokenUsage,
59};
60
61// Re-export client types
62pub use client::ClaudeAgentClient;
63pub use client_types::{MessageResponse, StreamEvent};
64
65/// Python SDK-compatible alias for the interactive client.
66pub type ClaudeSDKClient = ClaudeAgentClient;
67
68// Re-export in-process MCP helpers
69pub use mcp::{
70    create_sdk_mcp_server, create_sdk_mcp_server_with_version, initialize_server, tool,
71    tool_with_annotations, MCPContent, MCPTool, MCPToolAnnotations, SdkMcpTool, SimpleMCPServer,
72};
73
74// Re-export session store and session helpers
75pub use session_store::{
76    project_key_for_directory, InMemorySessionStore, SessionKey, SessionListSubkeysKey,
77    SessionStore, SessionStoreEntry, SessionStoreHandle, SessionStoreListEntry,
78    SessionSummaryEntry,
79};
80pub use sessions::{
81    delete_session, delete_session_via_store, fork_session, fork_session_via_store,
82    get_session_info, get_session_info_from_store, get_session_messages,
83    get_session_messages_from_store, get_subagent_messages, get_subagent_messages_from_store,
84    import_session_to_store, list_sessions, list_sessions_from_store, list_subagents,
85    list_subagents_from_store, rename_session, rename_session_via_store, tag_session,
86    tag_session_via_store, ForkSessionResult, ImportSessionOptions, ListSessionsOptions,
87    LocalForkSessionResult, SDKSessionInfo, SDKSessionMessage, SessionInfo, SessionMessage,
88    SessionMutationOptions, SessionQueryOptions,
89};