Metadata-Version: 2.1
Name: iac-code
Version: 0.12.1
Summary: Your AI-powered Infrastructure as Code assistant
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: agent-client-protocol (>=0.9.0)
Requires-Dist: aiohttp (<4,>=3.10)
Requires-Dist: alibabacloud-credentials-api (>=1.0.0)
Requires-Dist: alibabacloud-credentials (>=1.0.8)
Requires-Dist: alibabacloud-gateway-mns (<0.1,>=0.0.2)
Requires-Dist: alibabacloud-gateway-oss (<1,>=0.0.25)
Requires-Dist: alibabacloud-gateway-pop (<1,>=0.1.3)
Requires-Dist: alibabacloud-gateway-sls (<0.5,>=0.4.2)
Requires-Dist: alibabacloud-openapi-util (<0.3,>=0.2.4)
Requires-Dist: alibabacloud-oss-v2 (<2,>=1.2)
Requires-Dist: alibabacloud-ros20190910 (>=3.0.0)
Requires-Dist: alibabacloud-tea-openapi (<0.5,>=0.4.4)
Requires-Dist: aliyun-python-sdk-core (<3,>=2.16)
Requires-Dist: anthropic (>=0.40)
Requires-Dist: cryptography (>=42.0)
Requires-Dist: defusedxml (<1,>=0.7)
Requires-Dist: httpx (>=0.27.0)
Requires-Dist: jsonschema (>=4.20)
Requires-Dist: keyring (>=25.0)
Requires-Dist: loguru (>=0.7.0)
Requires-Dist: mcp (>=1.28.0)
Requires-Dist: openai (>=1.50)
Requires-Dist: opentelemetry-distro (>=0.48b0)
Requires-Dist: opentelemetry-exporter-otlp (>=1.27.0)
Requires-Dist: packaging (>=24.0)
Requires-Dist: pillow (==12.3.0)
Requires-Dist: pydantic (>=2.0)
Requires-Dist: pyperclip (>=1.8.0)
Requires-Dist: python-dateutil (==2.8.2)
Requires-Dist: pyyaml (>=6.0)
Requires-Dist: rich (>=13.0)
Requires-Dist: tiktoken (>=0.7.0)
Requires-Dist: tree-sitter-bash (<0.26,>=0.25)
Requires-Dist: tree-sitter (<0.26,>=0.25)
Requires-Dist: typer (>=0.9.0)
Provides-Extra: a2a
Requires-Dist: a2a-sdk[http-server,signing] (<2,>=1.0.2) ; extra == 'a2a'
Requires-Dist: cryptography (>=42.0) ; extra == 'a2a'
Requires-Dist: starlette (>=0.39.0) ; extra == 'a2a'
Requires-Dist: uvicorn[standard] (>=0.30.0) ; extra == 'a2a'
Provides-Extra: a2a-grpc
Requires-Dist: grpcio-status (>=1.60.0) ; extra == 'a2a-grpc'
Requires-Dist: grpcio (>=1.60.0) ; extra == 'a2a-grpc'
Provides-Extra: a2a-redis
Requires-Dist: redis (>=5.0.0) ; extra == 'a2a-redis'
Provides-Extra: a2a-signing
Requires-Dist: a2a-sdk[signing] (<2,>=1.0.2) ; extra == 'a2a-signing'
Provides-Extra: diagram
Requires-Dist: termaid (>=0.1) ; (python_version >= "3.11") and extra == 'diagram'
Provides-Extra: http
Requires-Dist: a2a-sdk[http-server,signing] (<2,>=1.0.2) ; extra == 'http'
Requires-Dist: starlette (>=0.39.0) ; extra == 'http'
Requires-Dist: uvicorn[standard] (>=0.30.0) ; extra == 'http'

<p align="center">
  <img src="website/static/img/logo-with-front.png" alt="iac-code" width="200">
</p>
<p align="center">
  <em>AI-powered Infrastructure as Code assistant for cloud infrastructure through natural language interaction. Currently supports Alibaba Cloud ROS and Terraform workflows.</em>
</p>
<p align="center">
  <a href="https://github.com/aliyun/iac-code/actions/workflows/test.yml"><img src="https://github.com/aliyun/iac-code/actions/workflows/test.yml/badge.svg" alt="Test"></a>
  <a href="https://pypi.org/project/iac-code"><img src="https://img.shields.io/pypi/v/iac-code?color=%2334D058&label=pypi%20package" alt="PyPI Package"></a>
  <a href="https://pypi.org/project/iac-code"><img src="https://img.shields.io/pypi/pyversions/iac-code?color=%2334D058&label=python" alt="Python"></a>
</p>
<p align="center">
  <strong>Language</strong>: English | <a href="readme/README.zh.md">中文</a> | <a href="readme/README.es.md">Español</a> | <a href="readme/README.fr.md">Français</a> | <a href="readme/README.de.md">Deutsch</a> | <a href="readme/README.ja.md">日本語</a> | <a href="readme/README.pt.md">Português</a>
</p>

> **Documentation**: [https://aliyun.github.io/iac-code/](https://aliyun.github.io/iac-code/)

<p align="center">
  <img src="website/static/img/demo_en.gif" alt="iac-code demo" width="100%">
</p>

## Installation

IaC Code requires Python 3.10 or later. It supports macOS, Linux, and Windows.

> **Windows note**: On Windows, [Git for Windows](https://gitforwindows.org/) must be installed to provide the bash shell used by the tool execution environment. If Git Bash is installed but not on PATH, set the `IAC_CODE_GIT_BASH_PATH` environment variable.

```bash
pip install iac-code
```

## Usage

On first use, configure the LLM provider and IaC cloud service by entering `/auth` in interactive mode.

### Interactive Mode

Run directly to enter the interactive REPL:

```bash
iac-code
```

### Non-Interactive Mode

Pass a one-shot prompt via `--prompt`:

```bash
iac-code --prompt "Create a VPC and two ECS instances"
```

Reading from stdin is also supported:

```bash
echo "Create an OSS Bucket" | iac-code --prompt -
```

### Web App

Prefer a graphical interface? Launch the local web app, which runs the same engine as the CLI and shares the same sessions. The web app needs the `http` extra, so install it first:

```bash
pip install 'iac-code[http]'
iac-code web
```

By default it opens `http://127.0.0.1:8766` in your browser (loopback only). See the [Web App guide](https://aliyun.github.io/iac-code/web-app) for details.

### Desktop App

For an installed native experience, download the package for your platform from [GitHub Releases](https://github.com/aliyun/iac-code/releases):

- macOS Apple Silicon: `.dmg`
- Windows x64: setup `.exe`
- Linux x64: `.AppImage` or `.deb`

The Desktop app runs the same IaC Code engine and uses the same providers, cloud credentials, settings, projects, and sessions as the CLI and Web app. On first launch, select the project directory you want IaC Code to work in. Windows also checks for Git Bash and guides you through installation if it is missing.

macOS, Windows, and AppImage builds can check for and apply cryptographically signed updates in the app. The deb package is updated by installing a newer package. Release installers do not yet carry commercial publisher signatures, so macOS or Windows may display an unknown-developer warning; verify the accompanying `SHA256SUMS` before installation. See the [Desktop App guide](https://aliyun.github.io/iac-code/docs/desktop-app) for installation and troubleshooting details.

## Contributing

Install [uv](https://docs.astral.sh/uv/getting-started/installation/), then:

```bash
make install   # install dependencies and pre-commit hooks
make dev       # run in debug mode
make test      # run tests
make lint      # run linters
make format    # format code
```

See the [Contributing Guide](https://aliyun.github.io/iac-code/getting-started/contributing) for details.

## Contact Us

| [DingTalk](https://qr.dingtalk.com/action/joingroup?code=v1,k1,ubm/77U7qRh/STFZUNBP26X4PNg2z6+uhiPcLGtDNfU=&_dt_no_comment=1&origin=11) | [Discord](https://discord.gg/qECFuFBwF) |
| :----------------------------------------------------------: | :----------------------------------------------------------: |
| [<img src="website/static/img/qrcode-dingtalk.jpg" width="120" height="120" alt="DingTalk">](https://qr.dingtalk.com/action/joingroup?code=v1,k1,ubm/77U7qRh/STFZUNBP26X4PNg2z6+uhiPcLGtDNfU=&_dt_no_comment=1&origin=11) | [<img src="website/static/img/qrcode-discord.jpg" width="120" height="120" alt="Discord">](https://discord.gg/qECFuFBwF) |
