# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Project Overview zzpyjenkins is a CLI tool to interact with Jenkins servers for building jobs. It wraps the `python-jenkins` library with a user-friendly CLI using Click and rich terminal output. ## Development Commands ```bash # Install dependencies uv sync # Run the CLI uv run zzpyjenkins --help # Format code uv run ruff format . # Lint uv run ruff check . # Run tests uv run pytest ``` ## Architecture - **`src/zzpyjenkins/cli.py`**: Click-based CLI entry point. Defines commands (`info`, `list`, `build`, `status`, `watch`) and handles parameter parsing. Uses `get_client()` to create `JenkinsClient` from environment variables. - **`src/zzpyjenkins/jenkins_client.py`**: `JenkinsClient` class that wraps `python-jenkins` library. Handles all Jenkins API interactions and formats output using Rich (tables, colored status). ## Configuration Credentials are read from `~/.config/zzpyjenkins/config.toml`. Create this file with your Jenkins server configurations: ```toml [work] url = "https://jenkins.work.com" username = "myuser" password = "mypassword" [home] url = "http://localhost:8080" username = "admin" password = "admin123" ``` Use `-s/--server` option to select which server to use: ```bash zzpyjenkins -s work info zzpyjenkins --server home list ```