| Crates.io | aptu-core |
| lib.rs | aptu-core |
| version | 0.2.13 |
| created_at | 2025-12-22 21:23:44.449472+00 |
| updated_at | 2026-01-03 03:45:19.753861+00 |
| description | Core library for Aptu - OSS issue triage with AI assistance |
| homepage | |
| repository | https://github.com/clouatre-labs/aptu |
| max_upload_size | |
| id | 2000280 |
| size | 491,621 |
Core library for Aptu - AI-Powered Triage Utility.
OpenRouter, Z.AI, and ZenMuxAdd to your Cargo.toml:
[dependencies]
aptu-core = "0.2"
| Feature | Description |
|---|---|
keyring |
Secure token storage using system keyring (macOS Keychain, Linux Secret Service, Windows Credential Manager) |
To enable optional features:
[dependencies]
aptu-core = { version = "0.2", features = ["keyring"] }
use aptu_core::{load_config, AiClient, IssueDetails, ai::AiProvider};
use anyhow::Result;
#[tokio::main]
async fn main() -> Result<()> {
// Load configuration
let config = load_config()?;
// Create AI client
let client = AiClient::new(&config.ai.provider, &config.ai)?;
// Create issue details
let issue = IssueDetails::builder()
.owner("block".to_string())
.repo("goose".to_string())
.number(123)
.title("Example issue".to_string())
.body("Issue description...".to_string())
.url("https://github.com/block/goose/issues/123".to_string())
.build();
// Analyze with AI
let response = client.analyze_issue(&issue).await?;
println!("Summary: {}", response.triage.summary);
Ok(())
}
ai - AI integration and triage analysisconfig - Configuration loading and XDG pathsgithub - GitHub API and authenticationhistory - Contribution history trackingrepos - Curated repository listFor questions and support, visit clouatre.ca.
Apache-2.0. See LICENSE.