Skip to main content

Crate openheim

Crate openheim 

Source
Expand description

§openheim

A fast, multi-provider LLM agent runtime written in Rust.

§Quick start

use openheim::{OpenheimClient, Result};

#[tokio::main]
async fn main() -> Result<()> {
    let client = OpenheimClient::builder()
        .provider("openai")
        .api_key("sk-...")
        .model("gpt-4o")
        .build()
        .await?;

    let session = client.new_session().start().await?;
    session.prompt("List the files in the current directory.", |_update| {}).await?;

    Ok(())
}

§Providers

ProviderValueDefault model
OpenAI"openai"gpt-4o
Anthropic"anthropic"claude-sonnet-4-6
Google"gemini"gemini-2.0-flash
Compatibleany stringset via .model()

§Configuration file

By default openheim loads ~/.openheim/config.toml. Use OpenheimClient::from_config to load from a custom path, or set individual fields via the builder for fully programmatic configuration.

§MCP servers

External tools are registered as MCP servers and namespaced as {server_name}__{tool_name}. They are automatically available in every agent session.

§Key types

Re-exports§

pub use config::AgentConfig;
pub use config::AppConfig;
pub use config::McpServerConfig;
pub use config::ModelsInfo;
pub use core::agent;
pub use core::llm;
pub use core::models;
pub use error::Error;
pub use error::Result;
pub use llm::AnthropicClient;
pub use llm::GeminiClient;
pub use llm::LlmClient;
pub use llm::OpenAiClient;
pub use llm::OpenAiCompatibleClient;
pub use rag::Conversation;
pub use rag::ConversationMeta;
pub use rag::HistoryManager;
pub use rag::PromptBuilder;
pub use rag::RagContext;
pub use client::OpenheimBuilder;
pub use client::OpenheimClient;
pub use client::SessionBuilder;
pub use client::SessionHandle;
pub use models::*;

Modules§

acp
client
config
core
error
mcp
rag
Conversation history and skill injection for agent prompts.
tools
transport
tui

Structs§

AcpToolCall
Represents a tool call that the language model has requested.
ContentChunk
A streamed item of content
SessionInfo
Information about a session returned by session/list
ToolCallUpdate
An update to an existing tool call.

Enums§

ContentBlock
Content blocks represent displayable information in the Agent Client Protocol.
SessionUpdate
Different types of updates that can be sent during session processing.
ToolCallStatus
Execution status of a tool call.