Drop-in agent skill
koban skill install teaches Claude Code, Codex, Cursor, and any AGENTS.md-aware tool to drive koban — so your agent tracks work in Invoice Ninja automatically, with guarded writes it always previews first.
A small, scriptable Rust CLI and client library for Invoice Ninja, built for humans at a terminal and AI agents that need stable JSON, explicit errors, and shell completions.
# Point koban at the public Invoice Ninja demo API.
export INVOICE_NINJA_BASE_URL="https://demo.invoiceninja.com"
export INVOICE_NINJA_API_TOKEN="TOKEN"
koban clients list --per-page 20
koban invoices list --filter status_id=gt:1 --sort 'date|desc' --all
koban invoices show <id> --output json | jq '.data.balance'
# Writes are guarded: preview first, then confirm.
koban invoices create --client-id <id> \
--line-item product_key=Consulting,quantity=1,cost=100 --dry-run
koban invoices action <id> --action mark_paid --yesUse it as a library from any Rust app:
use koban::{ApiClient, Config};
#[tokio::main]
async fn main() -> koban::Result<()> {
let client = ApiClient::new(Config::from_env()?);
for invoice in client.invoices().list().await? {
println!("{} -> {}", invoice.number, invoice.balance);
}
Ok(())
}Install koban as a skill and your coding agent drives it for you:
koban skill install --target allNow an agent can log billable tasks and time, draft and send invoices, record expenses, and report on outstanding balances in Invoice Ninja as it works — using koban's stable JSON and its --dry-run/--yes safety gates so every write is previewed first. Works with Claude Code, OpenAI Codex CLI, pi, Cursor, Claude Desktop, and any AGENTS.md-aware tool.
New here? Start with the Installation and Quickstart guides, or jump to the Commands overview.