eazepro-cli
v1.1.0
Published
CLI tool for EazePro catering management system - Moltbot integration
Maintainers
Readme
EazePro CLI
Command-line interface for managing your EazePro catering business. Full CRUD operations for orders, customers, invoices, estimates, products, drivers, and more.
Installation
npm install -g eazepro-cliQuick Start
# Login to your EazePro instance
eazepro login
# List today's orders
eazepro orders today
# Create a new order
eazepro orders create --customer <id> --event-date 2026-02-15 --item "Lunch:25:15.00"
# Check unpaid invoices
eazepro invoices unpaidAuthentication
Login with email/password (recommended)
eazepro loginThis will:
- Prompt for your API URL (defaults to
https://www.eazepro.tech/api/trpc) - Prompt for your email and password
- Authenticate and automatically create an API key
- Save the configuration to
~/.eazepro/config.json
Manual configuration
eazepro configure --api-key ep_your_api_key --api-url https://www.eazepro.tech/api/trpcEnvironment Variables
export EAZEPRO_API_KEY=ep_your_api_key
export EAZEPRO_API_URL=https://www.eazepro.tech/api/trpcOther auth commands
eazepro whoami # Show current user info
eazepro logout # Remove saved credentials
eazepro config # View current configurationCommands
Orders
# List orders
eazepro orders list # List all orders
eazepro orders list --status CONFIRMED # Filter by status
eazepro orders list --from 2026-01-01 --to 2026-01-31 # Filter by date range
eazepro orders list --customer <customerId> # Filter by customer
# Get order details
eazepro orders get <id>
# Create order
eazepro orders create --customer <id> --event-date 2026-02-15 --item "Lunch:10:15.00"
# Update order
eazepro orders update <id> --event-date 2026-02-20 --guests 100
eazepro orders update <id> --status READY
eazepro orders update <id> --item "New Item:5:20.00" # Replace all items
# Status shortcuts
eazepro orders update-status <id> READY
eazepro orders update-status <id> OUT_FOR_DELIVERY
eazepro orders update-status <id> DELIVERED
# Cancel order
eazepro orders cancel <id> --reason "Event cancelled"
# Convenience filters
eazepro orders today # List today's orders
eazepro orders upcoming # List orders for next 7 days
eazepro orders confirmed # List confirmed ordersCreate Order Options
| Option | Description |
|--------|-------------|
| -c, --customer <id> | Customer ID |
| --event-date <date> | Event date (YYYY-MM-DD) |
| --event-time <time> | Event time (HH:MM) |
| --guests <count> | Estimated guest count |
| --address <address> | Delivery address line 1 |
| --address2 <address> | Delivery address line 2 |
| --city <city> | Delivery city |
| --state <state> | Delivery state/province |
| --postal <code> | Delivery postal/ZIP code |
| --country <country> | Delivery country |
| --contact <name> | Contact person name |
| --phone <phone> | Contact person phone |
| --instructions <text> | Delivery instructions |
| --cc <emails> | CC email addresses |
| -i, --item <item> | Order item (repeatable) |
| --tax-rate <rate> | Tax rate % (default: 13) |
| --discount <amount> | Discount amount (default: 0) |
| -s, --status <status> | Order status (default: CONFIRMED) |
| --notes <text> | Internal notes |
| --driver <id> | Driver ID |
| --driver-payout <amount> | Driver payout amount |
Item format: name:quantity:unitPrice[:notes]
- Example:
"Sandwich Platter:10:25.00" - With notes:
"Beverage Package:50:5.00:Include water bottles"
Order statuses: DRAFT, CONFIRMED, READY, OUT_FOR_DELIVERY, DELIVERED, CANCELLED
Customers
# List and search
eazepro customers list # List all customers
eazepro customers list --search "john" # Search customers
eazepro customers get <id> # Get customer details with history
eazepro customers search "acme corp" # Search by name/company/email
# Create customer
eazepro customers create --name "John Doe" --email "[email protected]"
eazepro customers create \
--name "Jane Smith" \
--email "[email protected]" \
--first-name "Jane" \
--last-name "Smith" \
--company "Acme Corp" \
--phone "416-555-1234" \
--address "123 Main St" \
--city "Toronto" \
--state "ON" \
--postal "M5V 1A1" \
--country "Canada"
# Update customer
eazepro customers update <id> --name "John Smith Jr."
eazepro customers update <id> --email "[email protected]" --phone "647-555-9999"
# Delete customer
eazepro customers delete <id>Create Customer Options
| Option | Description |
|--------|-------------|
| -n, --name <name> | Display name (required) |
| -e, --email <email> | Email address (required) |
| --first-name <name> | First name |
| --last-name <name> | Last name |
| -c, --company <name> | Company name |
| -p, --phone <phone> | Phone number |
| --address <address> | Street address |
| --address2 <address> | Address line 2 |
| --city <city> | City |
| --state <state> | State/Province |
| --postal <code> | Postal code |
| --country <country> | Country |
| --notes <notes> | Notes |
Invoices
# List invoices
eazepro invoices list # List all invoices
eazepro invoices list --status SENT # List sent invoices
eazepro invoices list --status PAID # List paid invoices
eazepro invoices list --customer <customerId> # Filter by customer
# Get invoice details
eazepro invoices get <id>
# Create invoice from order
eazepro invoices create --order <orderId>
eazepro invoices create --order <orderId> --due-date 2026-02-28 --discount 50
# Update invoice
eazepro invoices update <id> --status SENT
eazepro invoices update <id> --due-date 2026-03-15 --notes "Extended payment terms"
eazepro invoices update <id> --item "Line Item:1:100.00" # Replace items
# Send and mark paid
eazepro invoices send <id> # Send invoice via email
eazepro invoices mark-paid <id> # Mark invoice as paid
eazepro invoices mark-paid <id> --amount 500 --method CREDIT_CARD
# Convenience filters
eazepro invoices unpaid # List unpaid invoices
eazepro invoices overdue # List overdue invoicesCreate Invoice Options
| Option | Description |
|--------|-------------|
| -o, --order <id> | Order ID (required) |
| --due-date <date> | Payment due date (YYYY-MM-DD) |
| --discount <amount> | Discount amount |
| --notes <notes> | Notes |
| --terms <terms> | Terms and conditions |
Invoice statuses: DRAFT, SENT, VIEWED, PAID, PARTIALLY_PAID, OVERDUE, CANCELLED
Estimates
# List estimates
eazepro estimates list # List all estimates
eazepro estimates list --status SENT # Filter by status
eazepro estimates list --customer <customerId> # Filter by customer
# Get estimate details
eazepro estimates get <id>
# Create estimate
eazepro estimates create \
--customer <customerId> \
--item "Catering Package:50:25.00" \
--item "Beverage Service:50:8.00" \
--event-date 2026-03-15 \
--guests 50
# Update estimate
eazepro estimates update <id> --expiry 2026-02-28
eazepro estimates update <id> --item "Updated Package:60:30.00"
eazepro estimates update <id> --notes "Revised based on feedback"
# Send estimate
eazepro estimates send <id> # Send estimate via email
# Convenience filters
eazepro estimates pending # List pending estimates
eazepro estimates accepted # List accepted estimatesCreate Estimate Options
| Option | Description |
|--------|-------------|
| -c, --customer <id> | Customer ID (required) |
| -i, --item <item> | Item (required, repeatable) |
| -o, --order <id> | Link to order ID |
| --expiry <date> | Expiry date (YYYY-MM-DD) |
| --event-date <date> | Event date (YYYY-MM-DD) |
| --event-time <time> | Event time (HH:MM) |
| --guests <count> | Estimated guest count |
| --delivery-date <date> | Delivery date |
| --address <address> | Delivery address |
| --city <city> | Delivery city |
| --state <state> | Delivery state/province |
| --postal <code> | Postal code |
| --country <country> | Country |
| --contact <name> | Contact person name |
| --phone <phone> | Contact person phone |
| --instructions <text> | Delivery instructions |
| --tax-rate <rate> | Tax rate % (default: 13) |
| --discount <amount> | Discount amount |
| --notes <notes> | Notes |
| --terms <terms> | Terms and conditions |
Estimate statuses: DRAFT, SENT, VIEWED, ACCEPTED, REJECTED, EXPIRED, CONVERTED
Products
# List products
eazepro products list # List all products
eazepro products list --active # List active products only
# Get product details
eazepro products get <id>
# Create product
eazepro products create --name "Sandwich Platter" --price 25.00
eazepro products create \
--name "Premium Lunch Box" \
--price 35.00 \
--description "Includes sandwich, salad, drink, and dessert"
# Update product
eazepro products update <id> --price 30.00
eazepro products update <id> --name "Deluxe Sandwich Platter"
eazepro products update <id> --inactive # Deactivate product
eazepro products update <id> --active # Reactivate product
# Delete product
eazepro products delete <id>Create Product Options
| Option | Description |
|--------|-------------|
| -n, --name <name> | Product name (required) |
| -p, --price <price> | Unit price (required) |
| -d, --description <desc> | Description |
| --inactive | Create as inactive |
Drivers
# List drivers
eazepro drivers list # List all drivers
eazepro drivers list --active # List active drivers only
# Get driver details
eazepro drivers get <id>
# Create driver
eazepro drivers create --name "John Driver"
eazepro drivers create --name "Jane Driver" --phone "416-555-1234" --notes "Part-time weekends"
# Update driver
eazepro drivers update <id> --phone "647-555-9999"
eazepro drivers update <id> --notes "Available Mon-Fri"
# Delete driver
eazepro drivers delete <id>Create Driver Options
| Option | Description |
|--------|-------------|
| -n, --name <name> | Driver name (required) |
| -p, --phone <phone> | Phone number |
| --notes <notes> | Notes |
Reports
eazepro reports revenue # Revenue report (last month)
eazepro reports revenue --period week # Last week
eazepro reports revenue --period month # Last month
eazepro reports revenue --period quarter # Last quarter
eazepro reports revenue --period year # Last year
eazepro reports revenue --from 2026-01-01 --to 2026-01-31 # Custom date range
eazepro reports orders # Orders statistics
eazepro reports orders --period month # Orders for last monthPayments
eazepro payments list # List all payments
eazepro payments list --invoice <invoiceId> # Filter by invoice
eazepro payments list --status COMPLETED # Filter by statusPayment statuses: PENDING, COMPLETED, FAILED, REFUNDED
Output Format
By default, output is formatted for human readability with colors and tables.
Use --json flag for raw JSON output (useful for scripting):
eazepro orders list --json
eazepro customers get <id> --jsonJSON output format:
{
"success": true,
"data": { ... },
"error": null
}On error:
{
"success": false,
"data": null,
"error": "Error message here"
}Common Use Cases
Check unpaid invoices
eazepro invoices unpaidView today's deliveries
eazepro orders todayGet revenue for this month
eazepro reports revenue --period monthFind a customer
eazepro customers search "John Smith"Create a customer and order
# Create customer
eazepro customers create --name "New Client" --email "[email protected]" --json
# Use the returned ID to create an order
eazepro orders create \
--customer <customerId> \
--event-date 2026-02-20 \
--item "Lunch Package:25:15.00" \
--address "100 King St" \
--city "Toronto"Mark an order as delivered
eazepro orders update-status <orderId> DELIVEREDSend an invoice
eazepro invoices send <invoiceId>Create and send an estimate
eazepro estimates create \
--customer <customerId> \
--item "Full Service Catering:100:45.00" \
--event-date 2026-04-01 \
--guests 100Add a new product to catalog
eazepro products create \
--name "Corporate Lunch Box" \
--price 28.50 \
--description "Sandwich, side salad, chips, cookie, and drink"Add a new driver
eazepro drivers create --name "Mike Wilson" --phone "416-555-0000"Moltbot Integration
This CLI is designed to work as a skill for Moltbot and other AI assistants.
Copy SKILL.md to your Moltbot skills directory:
cp SKILL.md ~/.clawdbot/skills/eazepro/SKILL.mdConfigure in ~/.clawdbot/moltbot.json:
{
"skills": {
"entries": {
"eazepro": {
"enabled": true,
"env": {
"EAZEPRO_API_KEY": "ep_your_api_key",
"EAZEPRO_API_URL": "https://www.eazepro.tech/api/trpc"
}
}
}
}
}Development
From source
git clone <repository>
cd plugin/eazepro-cli
npm install
npm run build
npm link # Makes 'eazepro' command available globallyScripts
npm run dev # Watch mode
npm run build # Build for production
npm start # Run CLIRequirements
- Node.js 18+
- An EazePro instance with API access
Notes
- All dates use ISO 8601 format (YYYY-MM-DD)
- All times use 24-hour format (HH:MM)
- API key must start with
ep_prefix - Results are limited by default (use
--limitto change) - Use
eazepro configto view current configuration - All
--itemoptions can be repeated multiple times - Item format:
name:quantity:unitPrice[:notes]
License
MIT
