# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Project Overview Config-Man is a Python CLI tool for managing encrypted static configuration files stored in object storage with Cloudflare CDN distribution. It's primarily used for game application configuration management with support for multi-version management and update strategies. ## Code Architecture ### Core Components - `src/config_man/core/` - Core business logic modules: - `config_manager.py` - Handles storage and CDN configuration file operations - `display_manager.py` - Manages configuration display and comparison - `view_command.py` - Implements the view command functionality - `suggest_update_command.py` - Implements the suggest-update command functionality - `force_update_command.py` - Implements the force-update command functionality ### CLI Layer - `src/config_man/cli/main.py` - Main CLI entry point using Click framework - Commands: view, suggest-update, force-update, show-config, setup-cloudflare, set-config ### Utilities - `src/config_man/utils/` - Utility modules for crypto, config management, and mock functionality ## Common Development Commands ### Installation and Setup ```bash # Install dependencies pip install -r requirements.txt # Install in development mode pip install -e . # Install with development dependencies pip install -e ".[dev]" ``` ### Running the CLI ```bash # Run the CLI tool python main.py --help # Or if installed config-man --help ``` ### Testing ```bash # Run all tests pytest # Run tests with coverage pytest --cov=src/config_man # Run tests with coverage report pytest --cov=src/config_man --cov-report=html ``` ### Code Quality ```bash # Format code with black black . # Lint with flake8 flake8 . # Type checking with mypy mypy src/ ``` ## Configuration - Uses `config-man.json` for runtime configuration - Supports environment variables for Cloudflare CDN settings - Configuration can be modified with `config-man set-config` command ## Key Dependencies - click>=8.0.0 - CLI framework - pycryptodome>=3.19.0 - Encryption/decryption - tabulate>=0.9.0 - Table formatting - requests>=2.31.0 - HTTP requests - rich>=13.0.0 - Rich text formatting - rclone - Required for storage operations