kanban-cli-0.2.0 is not a library.
kanban-cli
Command-line interface for the kanban project management tool. Supports both an interactive TUI mode and a scriptable CLI mode for automation and integration.
Installation
From Source
After Building
# Binary located at: target/release/kanban
Usage
Interactive TUI Mode
# Launch interactive TUI
# Launch with specific file
# Launch with absolute path
CLI Mode
# All CLI commands require a data file
# Or use KANBAN_FILE environment variable
CLI Commands
Board Operations
# List all boards
# Create a new board
# Get board details
# Update a board
# Delete a board
Column Operations
# List columns for a board
# Create a column
# Reorder a column (change position)
# Delete a column
Card Operations
# List cards
# Create a card
# Get card details
# Update a card
# Move a card to another column
# Archive/restore/delete cards
# Sprint assignment
# Git integration
# Bulk operations (comma-separated IDs)
Sprint Operations
# List sprints for a board
# Create a sprint
# Sprint lifecycle
Export/Import
# Export a single board (outputs JSON to stdout)
# Export all boards
# Import boards from file
Shell Completions
# Generate completions for your shell
Output Format
All CLI commands output JSON for easy parsing and scripting:
# Pipe to jq for processing
|
# Check if operation succeeded
|
Environment Variables
Data File:
# Set default data file
Logging Configuration:
# Set log level (trace, debug, info, warn, error)
RUST_LOG=debug
RUST_LOG=info
# Multiple crates
RUST_LOG=kanban_tui=debug,kanban_domain=info
Custom Editor (TUI mode):
EDITOR=vim
File Format Specification
JSON structure for board files:
File Management
Initialization
When launching with a file path:
- File exists: Load boards from JSON
- File doesn't exist: Create empty file with
{"boards": []} - No file argument: Use temporary storage (lost on exit)
Auto-Save Behavior
- Immediate save: Changes are saved automatically after each action
- In-memory only: Without file argument, all data discarded on exit
Logging and Diagnostics
Structured Logging
The application uses tracing for structured logging:
# Debug level for development
RUST_LOG=debug
# Info level for normal operation
RUST_LOG=info
# Trace level for detailed diagnostics
RUST_LOG=trace
Log Levels
TRACE- Extremely detailed internal stateDEBUG- Debug information for troubleshootingINFO- Normal operational informationWARN- Warning messages (unexpected but handled)ERROR- Error messages (application failures)
Architecture
Entry point layer coordinating all workspace crates:
kanban-core (foundation)
↑
└── kanban-domain (domain logic)
↑
└── kanban-tui (TUI layer)
↑
└── kanban-cli (entry point & file management)
Responsibilities
- Argument parsing with clap
- File initialization and path handling
- Logging setup with tracing
- Tokio async runtime initialization
- TUI application launch and coordination
- Graceful shutdown handling
Examples
Launch with Logging
# Start with debug logging
RUST_LOG=debug
# Filter by crate
RUST_LOG=kanban_domain=info,kanban_tui=debug
File Operations
# Create new file if doesn't exist
# → Creates new_project.json with empty boards array
# Use existing file
# → Loads boards from existing.json
# No file (temporary, loses data on exit)
# → Uses in-memory storage only
Dependencies
kanban-core- Foundation types and traitskanban-domain- Domain modelskanban-tui- Terminal UIclap- CLI argument parsingtokio- Async runtimeanyhow- Error handlingtracing,tracing-subscriber- Structured logging
Binary Configuration
Cargo.toml:
[[]]
= "kanban"
= "src/main.rs"
Produces executable: kanban (named kanban.exe on Windows)
License
Apache 2.0 - See LICENSE.md for details