# aptu-core
Core library for Aptu - AI-Powered Triage Utility.
[](https://docs.rs/aptu-core)
[](https://crates.io/crates/aptu-cli)
[](https://api.reuse.software/info/github.com/clouatre-labs/aptu)
[](https://www.bestpractices.dev/projects/11662)
## Features
- **AI Triage** - Analyze issues with summaries, labels, and contributor guidance
- **PR Review** - AI-powered pull request analysis and feedback
- **Release Notes** - AI-generated release notes from PRs between tags
- **Multiple Providers** - Gemini (default), Cerebras, Groq, `OpenRouter`, `Z.AI`, and `ZenMux`
- **GitHub Integration** - Auth, issues, PRs, and GraphQL queries
- **Resilient** - Exponential backoff, circuit breaker, rate limit handling
## Installation
Add to your `Cargo.toml`:
```toml
[dependencies]
aptu-core = "0.2"
```
### Optional Features
| `keyring` | Secure token storage using system keyring (macOS Keychain, Linux Secret Service, Windows Credential Manager) |
To enable optional features:
```toml
[dependencies]
aptu-core = { version = "0.2", features = ["keyring"] }
```
## Example
```rust,no_run
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(())
}
```
## Modules
- [`ai`](https://docs.rs/aptu-core/latest/aptu_core/ai/) - AI integration and triage analysis
- [`config`](https://docs.rs/aptu-core/latest/aptu_core/config/) - Configuration loading and XDG paths
- [`github`](https://docs.rs/aptu-core/latest/aptu_core/github/) - GitHub API and authentication
- [`history`](https://docs.rs/aptu-core/latest/aptu_core/history/) - Contribution history tracking
- [`repos`](https://docs.rs/aptu-core/latest/aptu_core/repos/) - Curated repository list
## Support
For questions and support, visit [clouatre.ca](https://clouatre.ca/about/).
## License
Apache-2.0. See [LICENSE](https://github.com/clouatre-labs/aptu/blob/main/LICENSE).