Expand description
§LLM CLI Ecosystem Integration
Integrates Simon Willison’s LLM CLI tool for multi-model orchestration, embeddings, clustering, and RAG pipelines.
§Usage
ⓘ
use reasonkit::thinktool::llm_cli::{LlmCliClient, EmbeddingConfig, ClusterConfig};
let client = LlmCliClient::new()?;
// Execute a prompt
let response = client.prompt("Analyze this code", Some("claude-sonnet-4")).await?;
// Generate embeddings
let embeddings = client.embed("text to embed", None).await?;
// Cluster documents
let clusters = client.cluster("documents", 5, None).await?;§Security
All user-provided inputs are validated and sanitized before being passed to shell commands. This includes:
- Model names (alphanumeric, hyphens, underscores, slashes, colons, dots)
- Collection names (alphanumeric, hyphens, underscores)
- Database paths (validated as safe filesystem paths)
- Template names (alphanumeric, hyphens, underscores)
Structs§
- Cluster
Assignment - Individual cluster assignment
- Cluster
Config - Configuration for clustering operations
- Cluster
Result - Result from clustering operation
- Embedding
Config - Configuration for embedding operations
- Embedding
Result - Result from embedding operation
- LlmCli
Client - LLM CLI Client for multi-model orchestration
- LlmCli
Config - Configuration for the LLM CLI client
- Prompt
Result - Result from an LLM prompt
- RagConfig
- Configuration for RAG operations
- Similarity
Match - Individual similarity match
- Similarity
Result - Result from similarity search