Skip to main content

Catalog CLI Light - Free CLI for querying Amazon Category Listing Reports

Project description

Catalog CLI Light

PyPI version License: MIT

Free CLI for Amazon catalog auditing

The first AI-agent-friendly Amazon catalog analysis tool. Query your CLRs with natural language, automate catalog audits, and integrate with AI workflows.

💡 Want more? Check out Catalog Audit Pro for web-based audits, unlimited reports, and client-ready PDFs.

Features

  • 🤖 Agent-Native - CLI/JSON output designed for AI agent integration
  • Fast - Query 1000+ SKU catalogs in seconds
  • 🔌 Extensible - Plugin system for custom queries
  • 📊 Comprehensive - 9 built-in catalog health checks
  • 🎯 RUFUS Optimized - Amazon AI shopping assistant bullet scoring

Installation

pip install amazon-catalog-cli

Or install from source:

git clone https://github.com/BWB03/amazon-catalog-cli.git
cd amazon-catalog-cli
pip install -e .

Quick Start

# Run all catalog checks
catalog scan my-catalog.xlsx

# Run specific check
catalog check missing-attributes my-catalog.xlsx

# Export results as JSON (for agents)
catalog scan my-catalog.xlsx --format json --output results.json

# List available queries
catalog list-queries my-catalog.xlsx

Available Queries

Attribute Audits

  • missing-attributes - Find mandatory attributes missing from listings
  • missing-any-attributes - Find all missing attributes (required + conditional)
  • new-attributes - Find unused template fields that might add value

Content Quality

  • rufus-bullets - Score bullet points against Amazon's RUFUS AI framework
  • bullet-prohibited-content - Find bullet points with prohibited chars, emojis, claims, or placeholders
  • bullet-formatting - Check bullet formatting (capitalization, length, punctuation)
  • long-titles - Find titles exceeding 200 characters
  • title-prohibited-chars - Find titles with prohibited characters
  • prohibited-chars - Find prohibited characters in title/brand (basic validation)

Catalog Structure

  • product-type-mismatch - Find mismatched product types and item keywords
  • missing-variations - Find products that should be variations but aren't

🆕 Bullet Point Validation (v1.2.0)

The new bullet-prohibited-content and bullet-formatting queries enforce Amazon's official bullet point requirements:

Prohibited Content Detected:

  • Special characters (™, ®, €, …, †, ‡, °, ¢, £, ¥, ©, ±, ~, â)
  • Emojis (☺, ☹, ✅, ❌)
  • Placeholder text ("NA", "n/a", "TBD", "copy pending", "not applicable")
  • Banned claims ("eco-friendly", "anti-microbial", "anti-bacterial")
  • Guarantee language ("full refund", "unconditional guarantee")

Formatting Rules Enforced:

  • Must begin with capital letter
  • Must NOT end with punctuation (sentence fragments, not sentences)
  • Length: 10-255 characters
  • Minimum 3 bullets per product recommended

Note: Product Description is intentionally excluded (has different content rules).


Usage Examples

For Humans

# Quick scan with summary
catalog scan my-catalog.xlsx

# Detailed results
catalog scan my-catalog.xlsx --show-details

# Check specific issue
catalog check rufus-bullets my-catalog.xlsx

For AI Agents

# JSON output for agent parsing
catalog scan my-catalog.xlsx --format json

# CSV export for spreadsheet analysis
catalog scan my-catalog.xlsx --format csv --output audit.csv

# Single query with structured output
catalog check missing-attributes my-catalog.xlsx --format json

Example JSON Output

{
  "timestamp": "2026-02-21T10:30:00Z",
  "total_queries": 9,
  "total_issues": 47,
  "total_affected_skus": 23,
  "queries": [
    {
      "query_name": "missing-attributes",
      "description": "Find mandatory attributes missing from listings",
      "total_issues": 12,
      "affected_skus": 8,
      "issues": [
        {
          "row": 7,
          "sku": "ABC-123",
          "field": "brand",
          "severity": "required",
          "details": "Missing required field: brand",
          "product_type": "HAIR_STYLING_AGENT"
        }
      ]
    }
  ]
}

CLI Commands

catalog scan

Run all queries on a CLR file.

catalog scan <clr-file> [OPTIONS]

Options:
  --format [terminal|json|csv]  Output format (default: terminal)
  --output PATH                 Output file path
  --show-details / --no-details Show detailed results

catalog check

Run a specific query.

catalog check <query-name> <clr-file> [OPTIONS]

Options:
  --format [terminal|json|csv]  Output format (default: terminal)
  --output PATH                 Output file path
  --show-details / --no-details Show detailed results

catalog list-queries

List available queries.

catalog list-queries <clr-file>

Agent Integration

This tool is designed for AI agent workflows:

import subprocess
import json

# Run scan and parse results
result = subprocess.run(
    ['catalog', 'scan', 'my-catalog.xlsx', '--format', 'json'],
    capture_output=True,
    text=True
)

data = json.loads(result.stdout)

# Agent can now process catalog issues
for query in data['queries']:
    if query['total_issues'] > 0:
        print(f"Found {query['total_issues']} issues in {query['query_name']}")

RUFUS Bullet Optimization

The rufus-bullets query evaluates bullet points against Amazon's RUFUS AI framework:

  • Bullet 1: Should lead with Hero Benefit (why buy this?)
  • Bullet 2: Should state who it's for (target audience)
  • Bullet 3: Should differentiate (why this vs. competitors?)
  • All bullets: Checked for specifics, length, vague marketing, ALL CAPS

Scores 1-5 with actionable suggestions.

Extending with Custom Queries

Create a new query plugin:

from catalog.query_engine import QueryPlugin

class MyCustomQuery(QueryPlugin):
    name = "my-custom-check"
    description = "My custom catalog check"
    
    def execute(self, listings, clr_parser):
        issues = []
        
        for listing in listings:
            # Your logic here
            if some_condition:
                issues.append({
                    'row': listing.row_number,
                    'sku': listing.sku,
                    'field': 'FieldName',
                    'severity': 'warning',
                    'details': 'Issue description',
                    'product_type': listing.product_type
                })
        
        return issues

Register in cli.py and it's instantly available.

Requirements

  • Python 3.7+
  • openpyxl
  • click
  • rich

How to Get Your CLR

  1. Go to Amazon Seller CentralCatalogCategory Listing Report
  2. Click Generate Report
  3. Download the .xlsm or .xlsx file
  4. Run catalog CLI on it

Contributing

This is an open-source project. Contributions welcome!

  • Add new query plugins
  • Improve parsing logic
  • Enhance output formats
  • Build integrations

Roadmap

v1.1

  • Excel export (formatted like CLR Auditor)
  • Natural language query parsing
  • Query result caching

v2.0

  • Query composition ("missing attributes AND rufus score <3")
  • Saved query templates
  • Diff mode (compare two CLRs)
  • Watch mode (monitor CLR file for changes)

License

MIT License - Free to use, modify, and distribute.

Author

Built by Brett Bohannon (@BWB03)

Amazon consulting veteran, AI automation enthusiast, open-source believer.

Related Projects


First AI-agent-friendly Amazon catalog tool. Built for the future of catalog management.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

amazon_catalog_cli-1.2.0-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

Details for the file amazon_catalog_cli-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for amazon_catalog_cli-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d2ca020fe40e27d20bec1dbf0ba2a383b1ab7d29bef6e1bc98cb5cef24cd761d
MD5 5e1d74b92b9468d61ad3c85669688af9
BLAKE2b-256 595912494b299c4666928d99e60926152e63a8331d959819e91c9e668ee61f69

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page