use opencode_sdk_rs::{Opencode, OpencodeError};
#[tokio::main(flavor = "current_thread")]
async fn main() -> Result<(), OpencodeError> {
let client = Opencode::new()?;
println!("Base URL: {}", client.base_url());
let app = client.app().get(None).await?;
println!("Hostname: {}", app.hostname);
println!("Git: {}", app.git);
println!("Root: {}", app.path.root);
let modes = client.app().modes(None).await?;
for mode in &modes {
println!("Mode: {}", mode.name);
}
let sessions = client.session().list(None).await?;
println!("\nSessions ({}):", sessions.len());
for session in &sessions {
println!(" {} - {}", session.id, session.title);
}
let config = client.config().get(None).await?;
if let Some(theme) = &config.theme {
println!("\nTheme: {theme}");
}
let files = client.file().status().await?;
println!("\nModified files ({}):", files.len());
for f in &files {
println!(" {} ({:?})", f.path, f.status);
}
Ok(())
}