Metadata-Version: 2.4
Name: cctl
Version: 0.2.0
Summary: Universal cloud CLI — one command for AWS, Azure, and GCP
Project-URL: Homepage, https://github.com/cloudctlio/cloudctl
Project-URL: Repository, https://github.com/cloudctlio/cloudctl
Project-URL: Issues, https://github.com/cloudctlio/cloudctl/issues
Project-URL: Changelog, https://github.com/cloudctlio/cloudctl/releases
Author-email: Harish Guttikonda <cloudctlhq@gmail.com>
License: MIT
License-File: LICENSE
Keywords: aws,azure,cli,cloud,cloudctl,devops,gcp,multicloud,sre
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Utilities
Requires-Python: >=3.11
Requires-Dist: boto3>=1.34
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0
Requires-Dist: typer[all]>=0.12
Provides-Extra: ai
Requires-Dist: anthropic>=0.30; extra == 'ai'
Requires-Dist: openai>=1.0; extra == 'ai'
Requires-Dist: requests>=2.31; extra == 'ai'
Provides-Extra: all-clouds
Requires-Dist: azure-identity>=1.16; extra == 'all-clouds'
Requires-Dist: azure-mgmt-apimanagement>=10.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-authorization>=4.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-cognitiveservices>=13.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-compute>=32.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-containerinstance>=10.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-containerregistry>=10.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-containerservice>=30.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-cosmosdb>=9.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-costmanagement>=4.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-datafactory>=4.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-dns>=8.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-eventhub>=10.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-keyvault>=10.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-logic>=9.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-monitor>=6.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-msi>=7.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-network>=25.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-rdbms>=10.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-recoveryservices>=3.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-redis>=14.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-resource>=23.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-security>=5.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-servicebus>=8.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-sql>=3.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-storage>=21.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-subscription>=3.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-synapse>=2.0; extra == 'all-clouds'
Requires-Dist: azure-mgmt-web>=7.0; extra == 'all-clouds'
Requires-Dist: google-api-python-client>=2.0; extra == 'all-clouds'
Requires-Dist: google-auth>=2.0; extra == 'all-clouds'
Requires-Dist: google-cloud-resource-manager>=1.10; extra == 'all-clouds'
Requires-Dist: google-cloud-storage>=2.0; extra == 'all-clouds'
Provides-Extra: azure
Requires-Dist: azure-identity>=1.16; extra == 'azure'
Requires-Dist: azure-mgmt-apimanagement>=10.0; extra == 'azure'
Requires-Dist: azure-mgmt-authorization>=4.0; extra == 'azure'
Requires-Dist: azure-mgmt-cognitiveservices>=13.0; extra == 'azure'
Requires-Dist: azure-mgmt-compute>=32.0; extra == 'azure'
Requires-Dist: azure-mgmt-containerinstance>=10.0; extra == 'azure'
Requires-Dist: azure-mgmt-containerregistry>=10.0; extra == 'azure'
Requires-Dist: azure-mgmt-containerservice>=30.0; extra == 'azure'
Requires-Dist: azure-mgmt-cosmosdb>=9.0; extra == 'azure'
Requires-Dist: azure-mgmt-costmanagement>=4.0; extra == 'azure'
Requires-Dist: azure-mgmt-datafactory>=4.0; extra == 'azure'
Requires-Dist: azure-mgmt-dns>=8.0; extra == 'azure'
Requires-Dist: azure-mgmt-eventhub>=10.0; extra == 'azure'
Requires-Dist: azure-mgmt-keyvault>=10.0; extra == 'azure'
Requires-Dist: azure-mgmt-logic>=9.0; extra == 'azure'
Requires-Dist: azure-mgmt-monitor>=6.0; extra == 'azure'
Requires-Dist: azure-mgmt-msi>=7.0; extra == 'azure'
Requires-Dist: azure-mgmt-network>=25.0; extra == 'azure'
Requires-Dist: azure-mgmt-rdbms>=10.0; extra == 'azure'
Requires-Dist: azure-mgmt-recoveryservices>=3.0; extra == 'azure'
Requires-Dist: azure-mgmt-redis>=14.0; extra == 'azure'
Requires-Dist: azure-mgmt-resource>=23.0; extra == 'azure'
Requires-Dist: azure-mgmt-security>=5.0; extra == 'azure'
Requires-Dist: azure-mgmt-servicebus>=8.0; extra == 'azure'
Requires-Dist: azure-mgmt-sql>=3.0; extra == 'azure'
Requires-Dist: azure-mgmt-storage>=21.0; extra == 'azure'
Requires-Dist: azure-mgmt-subscription>=3.0; extra == 'azure'
Requires-Dist: azure-mgmt-synapse>=2.0; extra == 'azure'
Requires-Dist: azure-mgmt-web>=7.0; extra == 'azure'
Provides-Extra: dev
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Provides-Extra: gcp
Requires-Dist: google-api-python-client>=2.0; extra == 'gcp'
Requires-Dist: google-auth>=2.0; extra == 'gcp'
Requires-Dist: google-cloud-resource-manager>=1.10; extra == 'gcp'
Requires-Dist: google-cloud-storage>=2.0; extra == 'gcp'
Provides-Extra: mcp
Requires-Dist: mcp>=1.0.0; extra == 'mcp'
Description-Content-Type: text/markdown

# ⚡ cctl — Universal Cloud CLI

> One command for AWS, Azure, and GCP.

[![Security Scan](https://github.com/cloudctlio/cloudctl/actions/workflows/security.yml/badge.svg)](https://github.com/cloudctlio/cloudctl/actions/workflows/security.yml)

`cctl` installs the `cloudctl` command — a universal CLI that lets you query and manage AWS, Azure, and GCP resources with one unified syntax, using your existing credentials.

## Install

```bash
pip install cctl
```

## Quick Start

```bash
cloudctl init                          # detect existing cloud credentials
cloudctl accounts list                 # show all configured accounts
cloudctl compute list                  # list EC2 instances
cloudctl storage list                  # list S3 buckets
cloudctl database list                 # list RDS instances
cloudctl cost summary                  # monthly cost breakdown
cloudctl security audit                # check for misconfigurations
```

## Commands

| Command | Description |
|---|---|
| `cloudctl init` | First-run setup — detects AWS/Azure/GCP credentials |
| `cloudctl accounts list/verify/use` | Manage cloud accounts and profiles |
| `cloudctl compute list/describe/stop/start` | EC2 instances (VMs coming for Azure/GCP) |
| `cloudctl storage list/describe/ls/du` | S3 buckets |
| `cloudctl database list/describe/snapshots` | RDS instances and snapshots |
| `cloudctl network vpcs/security-groups` | VPCs and security groups |
| `cloudctl iam roles/users/check` | IAM roles, users, permission checks |
| `cloudctl cost summary/by-service` | Cost Explorer breakdown |
| `cloudctl security audit/public-resources` | Security posture checks |
| `cloudctl pipeline list/analyze` | CodePipeline status |
| `cloudctl config get/set/list` | Manage cloudctl config |

## How It Works

- **No new auth** — reads your existing `~/.aws/config`, `~/.azure/`, and `~/.config/gcloud/`
- **Auto output** — Rich table in terminal, clean JSON when piped
- **Multi-account** — use `--account prod` to target any profile by name
- **Multi-cloud** — use `--cloud all` to query across all providers at once (Azure + GCP coming in v0.3.0)

## Status

| Cloud | Status |
|---|---|
| AWS | ✅ Implemented |
| Azure | 🔄 In progress (v0.3.0) |
| GCP | 🔄 In progress (v0.3.0) |

## Links

- **GitHub:** https://github.com/cloudctlio/cloudctl
- **Issues:** https://github.com/cloudctlio/cloudctl/issues
- **Security:** See [SECURITY.md](SECURITY.md)

## License

MIT
