Official Python CLI for Trello - Extensible workflow management with plugin system and comprehensive board auditing.
- 🧠 Claude AI Context Analysis - Intelligent opinions on every card movement
- 🔌 Plugin System - Extensible architecture for custom functionality
- 🔍 Board Audit - Expose workflow chaos and structural problems (available as plugin!)
- 🤖 Optimized for Claude Code - AI-first design with discovery commands
- 🏃 Sprint Planning - Complete sprint lifecycle management
- 📦 Bulk Operations - Process multiple cards efficiently
- 📊 Board Standardization - Enforce Agile/Scrum best practices
- 🔍 Advanced Queries - Filter and analyze cards
- ⚡ Quick Workflows - Shortcuts for common operations
- 🎯 50+ Commands - Comprehensive board management
Two major innovations in this release:
Every card movement now includes Claude AI analysis:
- What: Understands what the card is about (title, description, labels)
- Why: Analyzes why the movement matters in context
- Concerns: Identifies risks (overdue items, incomplete checklists, unmet criteria)
- Recommendations: Provides actionable insights
Enhanced Commands:
trello move-card <card_id> <list_id> # General movement with analysis
trello quick-start <card_id> # Start work with context insight
trello quick-test <card_id> # Testing phase with validation analysis
trello quick-done <card_id> # Completion with quality assessmentExample Output:
✅ Moved card 'Frontend: System Health Dashboard' to list '⚙️ In Progress'
💡 CLAUDE AI ANALYSIS
────────────────────────────────────────────────────────────
This card focuses on building a comprehensive monitoring dashboard...
Moving to "In Progress" signals the team is prioritizing observability...
The 12-16 hour estimate seems optimistic considering the scope includes
6 API integrations, real-time polling, and responsive design...
- Language-agnostic (Python, Bash, JS, Ruby, Go, etc.)
- Environment injection (credentials, config paths)
- Metadata validation and discovery
- Timeout protection and error handling
- 8 critical workflow validations
- Health score system (0-100)
- JSON output for CI/CD integration
- 600+ lines of production-ready code
Previous in v2.1:
- 29 new commands across 5 categories (Quick, Sprint, Bulk, Query, Standardization)
- See CLAUDE.md for complete v2.1 features
pip3 install py-trello-
Clone or download this repository
-
Add to PATH (already done if using from
~/Documents/trello-cli-python) -
Configure API credentials:
trello configGet your credentials from:
- API Key: https://trello.com/app-key
- Token: Follow the link provided during config
For intelligent card movement analysis, configure Claude AI:
# Create .env file with your Anthropic API key
echo 'ANTHROPIC_API_KEY=sk-ant-api03-YOUR_KEY_HERE' > .env
# Or set as environment variable
export ANTHROPIC_API_KEY=sk-ant-api03-YOUR_KEY_HEREGet your API key from: https://console.anthropic.com/
Note: The system works without Claude AI (graceful degradation). With the API key, card movements include intelligent analysis.
🎯 Essential Command:
trello help-json # Get ALL commands in JSON formatKey Discovery Commands:
trello boards # List all boards
trello board-overview <board_id> # Complete board structure
trello board-ids <board_id> # Quick ID reference
trello search-cards <board_id> "query" # Find cards anywhere📖 Full Guide: CLAUDE.md
The Trello CLI features a production-ready plugin system that allows you to extend functionality without modifying core code.
Even the board auditor runs as a plugin. If critical analysis logic can live externally, anything can.
This isn't just a feature - it's an architectural statement: The core doesn't need to change for the CLI to evolve.
# List available plugins
trello plugin list
# See plugin details
trello plugin info board-audit
# Run the official board auditor plugin
trello plugin run board-audit <board_id>
# JSON output for CI/CD integration
trello plugin run board-audit <board_id> --jsonExposes the structural chaos that Trello hides.
Your board looks organized, but underneath:
- ❌ Cards in "Done" without due dates (can't measure velocity)
- ❌ Cards in "Done" with incomplete checklists (false completion)
- ❌ Overdue cards not marked complete (zombie tasks)
⚠️ Active cards without due dates (no accountability)⚠️ Execution cards without owners (orphaned work)⚠️ Empty checklists (fake productivity signals)
Real Example:
$ trello plugin run board-audit 68fcf05e481843db13204397
🔍 BOARD AUDIT REPORT - AI Portfolio Sprint 1
Health Score: 60/100 - 🟠 NEEDS ATTENTION
Critical Issues: 1
- 17 cards in Done without due dates
High Priority: 2
- 11 active cards without due dates
- 11 execution cards without ownersHealth Score System:
90-100: 🟢 EXCELLENT - Board ready for production70-89: 🟡 GOOD - Minor issues detected50-69: 🟠 NEEDS ATTENTION - Significant workflow problems0-49: 🔴 CRITICAL - Severe structural problems
- board-audit.py - Comprehensive workflow auditor (600+ lines, production-ready)
- example-python.py - Python plugin template
- example-bash.sh - Bash plugin template
Plugins can be written in any language (Python, Bash, JavaScript, Ruby, Go, etc.)
Example plugin structure:
#!/usr/bin/env python3
# trello-plugin
# name: My Plugin
# description: What it does
# usage: plugin run my-plugin [args]
# author: Your Name
# version: 1.0.0
import os
import sys
# Access injected credentials
api_key = os.environ.get('TRELLO_API_KEY')
token = os.environ.get('TRELLO_TOKEN')
# Your plugin logic here...Available Environment Variables:
TRELLO_API_KEY- Your API keyTRELLO_TOKEN- Your API tokenTRELLO_USER_ID- Your user IDTRELLO_BASE_URL- Trello API base URLTRELLO_CLI_VERSION- CLI versionTRELLO_CONFIG_DIR- Config directoryTRELLO_PLUGIN_DIR- Plugin directory
📖 Full Plugin Guide: PLUGINS.md
trello help # Show all commands
trello help-json # Get commands in JSON
trello board-overview <id> # Board structure + metrics
trello board-ids <id> # All IDs in one place
trello search-cards <id> "q" # Find cards by texttrello quick-start <card_id> # Move to "In Progress" + comment
trello quick-test <card_id> # Move to "Testing" + comment
trello quick-done <card_id> # Move to "Done" + comment
trello my-cards <board_id> # Show all assigned cards
trello card-age <list_id> # See how old cards aretrello sprint-start <board_id> # Start sprint (interactive)
trello sprint-status <board_id> # Sprint progress dashboard
trello sprint-close <board_id> # Close sprint + cleanup
trello sprint-velocity <board_id> # Calculate team velocity# Move multiple cards
trello bulk-move-cards <source_list> <target_list> ["filter"]
# Label multiple cards
trello bulk-add-label cards.txt "red" "Priority"
# Set due dates in bulk
trello bulk-set-due cards.txt "2025-12-31"
# Archive multiple cards
trello bulk-archive-cards <list_id> ["filter"]
# Create cards from CSV/JSON
trello bulk-create-cards <list_id> cards.csvtrello cards-by-label <board_id> "red" # Find by label
trello cards-due-soon <board_id> [days] # Due soon (default: 7d)
trello cards-overdue <board_id> # Overdue cards
trello list-metrics <list_id> # List analytics
trello board-health <board_id> # Health check (score 0-100)trello list-templates # Show available templates
trello standardize-lists <id> agile # Apply template to board
trello scrum-check <board_id> # Validate Agile conformity
trello migrate-cards <list> <board> # Move cards between boards# Boards
trello boards
trello create-board "Name"
# Lists
trello lists <board_id>
trello create-list <board_id> "Name"
trello archive-list <list_id>
# Cards
trello cards <list_id>
trello add-card <list_id> "Title" ["Description"]
trello show-card <card_id>
trello update-card <card_id> "Description"
trello move-card <card_id> <list_id>
# Enhancements
trello add-label <card_id> "color" ["name"]
trello add-checklist <card_id> "Name"
trello add-checkitem <card_id> "Checklist" "Item"
trello set-due <card_id> "YYYY-MM-DD"
trello add-comment <card_id> "Text"# Morning: Check your cards
trello my-cards <board_id>
# Start working on a card
trello quick-start <card_id>
# Move to testing
trello quick-test <card_id>
# Mark as done
trello quick-done <card_id># Check board health
trello scrum-check <board_id>
trello board-health <board_id>
# Start new sprint
trello sprint-start <board_id>
# Monitor progress
trello sprint-status <board_id>
# Close sprint
trello sprint-close <board_id>
trello sprint-velocity <board_id># Standardize all company boards
trello list-templates
trello standardize-lists <board_id> agile --dry-run
trello standardize-lists <board_id> agile
# Validate conformity
trello scrum-check <board_id># Find overdue cards
trello cards-overdue <board_id>
# Archive old cards
trello bulk-archive-cards <list_id> "2023"
# Move stale cards to backlog
trello card-age <list_id>
trello bulk-move-cards <source> <backlog>- docs/README.md - Documentation index
- TESTING_GUIDE.md - Pytest setup
- REPORTING_GUIDE.md - Export reports to HTML/PDF
- PROJECT_SUMMARY.md - Architecture
- CONTRIBUTING.md - How to contribute
- MIGRATION.md - v1→v2 migration
Three standard templates available:
💡 Ideas → 📥 Inbox → 📋 Backlog → 📋 To Prioritize → 🔍 Refinement
→ ✅ Ready → 📐 Design → 📝 Sprint → ⚙️ In Progress → 🧪 Testing → ✅ Done → 📚 Architecture
📝 To Do → ⚙️ In Progress → ✅ Done
📋 Backlog → 📝 To Do → ⚙️ In Progress → ✅ Done
Apply with:
trello standardize-lists <board_id> <template>The scrum-check command validates:
- ✅ Required Lists - Backlog, Ready, Sprint, In Progress, Testing, Done
- ⚙️ WIP Limits - In Progress should have ≤3-5 cards
- 📝 Sprint Size - Sprint should have 5-15 cards
- 🧪 Testing Queue - Testing should have ≤3-5 cards
- 📋 Backlog Health - Should have 10-50 cards
Score: 0-100 with recommendations
- 🟢 EXCELLENT (90-100)
- 🟡 GOOD (70-89)
- 🟠 NEEDS WORK (50-69)
- 🔴 CRITICAL (<50)
trello scrum-check <board_id>trello-cli-python/
├── trello_cli/
│ ├── commands/ # All command modules
│ │ ├── board.py
│ │ ├── list.py
│ │ ├── card.py
│ │ ├── bulk.py # Bulk operations
│ │ ├── quick.py # Quick shortcuts
│ │ ├── sprint.py # Sprint planning
│ │ ├── query.py # Advanced queries
│ │ ├── standardize.py # Board standardization
│ │ └── ...
│ ├── utils/ # Utilities
│ └── cli.py # Main CLI entry
├── tests/ # Test suite
├── docs/ # Documentation
└── trello # Executable
pytest tests/
pytest --cov=trello_cli tests/See CONTRIBUTING.md
# cards.csv
title,description,due_date,labels
Feature A,Description A,2025-12-25,red:P0
Feature B,Description B,2025-12-30,blue:Featuretrello bulk-create-cards <list_id> cards.csv#!/bin/bash
# Generate daily report
DATE=$(date +%Y-%m-%d)
trello scrum-check <board_id> > "reports/${DATE}_report.txt"
trello board-health <board_id> >> "reports/${DATE}_report.txt"# Start sprint on Monday
trello sprint-start <board_id>
# Daily standup - check status
trello sprint-status <board_id>
# Friday - close sprint
trello sprint-close <board_id>
trello sprint-velocity <board_id>Claude Code should always start with:
trello help-jsonThis returns all available commands in machine-readable format.
Key commands for AI:
board-overview- Understand board structuresearch-cards- Find cards without knowing their locationscrum-check- Validate board healthbulk-*commands - Process multiple items efficiently
📖 Complete Guide: CLAUDE.md
- Total Commands: 48
- Command Categories: 7
- Board Templates: 3
- Lines of Code: ~5,000
- Test Coverage: Expanding
- GitHub: bernardurizaorozco/trello-cli-python
- Issues: Report bugs
- Trello API: Documentation
MIT License - See LICENSE
Bernard Uriza Orozco
- Built with py-trello
- Designed for Claude Code
- Inspired by Agile/Scrum best practices
Version: 2.1.0 Last Updated: 2025-10-27