pimalaya-cli 0.1.1

CLI utils for Pimalaya
Documentation

Pimalaya CLI Documentation Matrix Mastodon

CLI utils for Pimalaya

Shared building blocks for the Pimalaya command-line tools: the pieces every CLI would otherwise reimplement, factored out behind cargo features so each binary pulls in only what it uses. Unlike the io-* protocol libraries this crate is deliberately std, since it exists to talk to a terminal, a filesystem and a human.

Table of contents

Features

  • Argument parsing glue: shared clap arguments and the ready-made completion and manual generation commands, so every binary exposes them the same way.
  • Output rendering: a printer that writes command output and a reporter that writes failures, both to stdout, with optional JSON output and formatted tables.
  • Logging: a logger initialized from a shared verbosity flag.
  • Interactive input: text and password prompts, reusable value validators, and a cancellable spinner for long-running work.
  • Account wizards: guided collection of account settings per protocol, IMAP, SMTP, JMAP, CalDAV and CardDAV, each behind its matching feature.
  • Build helpers: small utilities for build scripts, such as feature and git metadata.

[!TIP] Pimalaya CLI is written in Rust and uses cargo features to gate each tool. The default feature set is declared in Cargo.toml or on docs.rs.

Usage

The whole API is documented on docs.rs.

Examples

Complete runnable programs live in ./examples.

AI disclosure

This project is developed with AI assistance. This section documents how, so users and downstream packagers can make informed decisions.

  • Tools: Claude Code (Anthropic), invoked locally with a persistent project-scoped memory and a small set of repo-specific rules.
  • Used for: Refactors, mechanical multi-file edits, boilerplate (feature gates, error enums, derive macros, trait impls), test scaffolding, doc polish, exploratory design conversations.
  • Not used for: Engineering, critical code, git manipulation (commit, merge, rebase…), real-world tests.
  • Verification: Every AI-assisted change is read, compiled, tested, and formatted before commit. Behavioural correctness is verified against the relevant spec, not assumed from the model output. Tests are never adjusted to fit AI-generated code; the code is adjusted to fit correct behaviour.
  • Limitations: AI models occasionally produce code that compiles and passes tests but is subtly wrong. The verification workflow catches most of this; it does not catch all of it. Bug reports are welcome and taken seriously.
  • Last reviewed: 15/07/2026

License

This project is licensed under either of:

at your option.

Social

Contributing

Contributions are welcome: start with CONTRIBUTING.md, which opens with the Pimalaya-wide guides to read first.

Sponsoring

nlnet

Special thanks to the NLnet foundation and the European Commission that have been financially supporting the project for years:

If you appreciate the project, feel free to donate using one of the following providers:

GitHub Ko-fi Buy Me a Coffee Liberapay thanks.dev PayPal