Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rosesecurity/kuzco
Kuzco reviews your Terraform and OpenTofu resources, compares them to the provider schema to detect unused parameters, and uses AI to suggest improvements
https://github.com/rosesecurity/kuzco
ai cloud go opentofu terraform
Last synced: 6 days ago
JSON representation
Kuzco reviews your Terraform and OpenTofu resources, compares them to the provider schema to detect unused parameters, and uses AI to suggest improvements
- Host: GitHub
- URL: https://github.com/rosesecurity/kuzco
- Owner: RoseSecurity
- License: apache-2.0
- Created: 2024-09-17T03:43:16.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-10-25T17:19:50.000Z (12 days ago)
- Last Synced: 2024-10-25T18:11:00.436Z (12 days ago)
- Topics: ai, cloud, go, opentofu, terraform
- Language: Go
- Homepage:
- Size: 467 KB
- Stars: 52
- Watchers: 1
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# Kuzco
Enhance your Terraform and OpenTofu configurations with intelligent analysis powered by local LLMs## Introduction
Here's the **problem**: You spin up a Terraform or OpenTofu resource, pull a basic configuration from the registry, and start wondering what other parameters should be enabled to make it more secure and efficient. Sure, you could use tools like TLint or TFSec, but `kuzco` saves you time by avoiding the need to dig through the Terraform registry and decipher unclear options. It leverages local LLMs to recommend what **should** be enabled and configured. Simply put, `kuzco` reviews your Terraform and OpenTofu resources, compares them to the provider schema to detect unused parameters, and uses AI to suggest improvements for a more secure, reliable, and optimized setup.
## Demo
## Installation
> [!NOTE]
> To use `kuzco`, Ollama must be installed. You can do this by running `brew bundle install` or `brew install ollama`. For more information on customizing Ollama models for tailored Kuzco responses, check out [Customizing Ollama](./docs/Customizing_Ollama.md)### Go
If you have a functional Go environment, you can install with:
```sh
go install github.com/RoseSecurity/kuzco@latest
```### Apt
To install packages, you can quickly setup the repository automatically:
```sh
curl -1sLf \
'https://dl.cloudsmith.io/public/rosesecurity/kuzco/setup.deb.sh' \
| sudo -E bash
```Once the repository is configured, you can install with:
```sh
apt install kuzco=
```### Source
```sh
git clone [email protected]:RoseSecurity/Kuzco.git
cd Kuzco
make build
```## Usage
The following configuration options are available:
```sh
❯ kuzco██ ██ ██ ██ ███████ ██████ ██████
██ ██ ██ ██ ███ ██ ██ ██
█████ ██ ██ ███ ██ ██ ██
██ ██ ██ ██ ███ ██ ██ ██
██ ██ ██████ ███████ ██████ ██████Intelligently analyze your Terraform and OpenTofu configurations to receive personalized recommendations for boosting efficiency, security, and performance.
Usage:
kuzco [flags]
kuzco [command]Available Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
version Print the CLI versionFlags:
-a, --address string IP Address and port to use for the LLM model (ex: http://localhost:11434) (default "http://localhost:11434")
-f, --file string Path to the Terraform and OpenTofu file (required)
-h, --help help for kuzco
-m, --model string LLM model to use for generating recommendations (default "llama3.2")
-p, --prompt string User prompt for guiding the response format of the LLM model
-t, --tool terraform Specifies the configuration tooling for configurations. Valid values include: terraform and opentofu (default "terraform")
```## Contributing
For bug reports & feature requests, please use the [issue tracker](https://github.com/rosesecurity/kuzco/issues).
PRs are welcome! We follow the typical "fork-and-pull" Git workflow.
1. **Fork** the repo on GitHub
2. **Clone** the project to your own machine
3. **Commit** changes to your own branch
4. **Push** your work back up to your fork
5. Submit a **Pull Request** so that we can review your changes> [!TIP]
> Be sure to merge the latest changes from "upstream" before making a pull request!### Many Thanks to Our Contributors