IaNL: Infrastructure as Natural Language ☁️🤖
Why write HCL when you can just talk to your Cloud?
📖 Overview
IaNL (Infrastructure as Natural Language) is an AI-powered cloud architecture agent that bridges the gap between high-level architectural thoughts and fully deployed, secure AWS environments.
Instead of manually clicking through the AWS Console or meticulously writing HashiCorp Configuration Language (HCL) syntax, you simply describe your desired infrastructure in plain English. The IaNL Agent autonomously plans, provisions, self-heals, and manages the state lifecycle of your cloud resources using OpenTofu/Terraform under the hood.
✨ Core Capabilities
- 🧠 Natural Language to IaC: Converts plain English prompts into complete, multi-file Terraform modules (
main.tf,variables.tf,outputs.tf). - 🔐 Strategic Self-Permissioning: Runs pre-flight IAM checks. If it lacks necessary permissions (and is authorized to do so), it can self-bootstrap the required policies before touching infrastructure.
- 🛠️ Autonomous Self-Healing: If an AWS API error occurs during deployment (e.g., mismatched subnets, missing dependencies), the agent reads the
stderr, refactors the HCL code on the fly, and seamlessly re-applies. - 🛡️ Secure-by-Default: Automatically enforces AWS best practices. Routes credentials through AWS Secrets Manager, enforces KMS encryption, blocks S3 public access, and ensures least-privilege Security Groups.
- 💾 Full State Lifecycle Management: Powered by OpenTofu and an SQLite memory backend, the agent remembers previous sessions. You can ask it to tear down specific environments gracefully without leaving orphaned resources.
🏗️ Tech Stack
- Orchestration: Python & LangGraph
- LLM Brain: Mistral Small (via
ChatMistralAI) - IaC Engine: OpenTofu / Terraform
- State Persistence: SQLite & Local Filesystem
- Cloud Provider: Amazon Web Services (AWS)
🚀 Example Usage
You don't write code; you start a conversation:
User: "Deploy a micro MySQL RDS instance. Generate a secure 16-character password automatically, store it in AWS Secrets Manager under the name 'db-creds', and configure the RDS instance to use that secret for its master password. "
What the Agent does autonomously:
- Verifies AWS credentials and Region availability.
- Generates a 10-resource Terraform module (VPC, Subnet, IGW, Route Table, Security Group, Keys, EC2).
- Executes
tofu init,plan, andapply. - Intercepts and fixes any dependency or network mapping errors automatically.
- Saves the
.pemfile locally with secure0400permissions. - Outputs the exact
sshcommand for you to connect.
⚙️ Getting Started
Prerequisites
- Python 3.10+
- OpenTofu installed and added to PATH.
- AWS CLI installed and configured.
Installation
Install the package from PyPI:
pip install ianl-agent
Configuration
Create a .env file in your working directory (or export variables in your shell):
MISTRAL_API_KEY="your_mistral_api_key" # https://console.mistral.ai/
AWS_ACCESS_KEY_ID="your_aws_access_key"
AWS_SECRET_ACCESS_KEY="your_aws_secret_key"
If any of the above are missing, the CLI will prompt you securely at startup.
Run
ianl-agent
To resume a previous session:
ianl-agent --session-id <your-session-id>
For a full list of options:
ianl-agent --help
Metadata
Release files for ianl-agent 0.1.14
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ianl_agent-0.1.14.tar.gz | 19.7 kB | Without provenance | Details for ianl_agent-0.1.14.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ianl_agent-0.1.14-py3-none-any.whl | Python 3 | none | any | Details for ianl_agent-0.1.14-py3-none-any.whl |
Total release size: 40.4 kB
Release files / ianl_agent-0.1.14.tar.gz
| Download URL | ianl_agent-0.1.14.tar.gz |
|---|---|
| Size | 19.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0c896b2a6a660850bad83b3f0a11140a66cb9f57d72f77ef23151ffac31817b9
|
|
BLAKE2b-256 checksum How to use checksums |
930c1232879d0814338c3b105fe1c608cd770fbd5e1087e1244a06718dade5ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / ianl_agent-0.1.14-py3-none-any.whl
| Download URL | ianl_agent-0.1.14-py3-none-any.whl |
|---|---|
| Size | 20.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b5bab3df51bb95121cb1473d2d999b1897b1e6d65d7c9765daaf48a694758cd3
|
|
BLAKE2b-256 checksum How to use checksums |
45e7eacab2e3e7eb69d664ee861f977980db7b15fb1291b652ccd640f9f0e3af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Security for ianl-agent 0.1.14
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.