Welcome to Kite

Updated on January 2025

Kite is a modern IaC language designed for the multi-cloud era. Write your infrastructure once using clean, declarative syntax β€” then provision seamlessly across AWS, Google Cloud, Azure, and more.

Built from the ground up with simplicity and power in mind, Kite brings a fresh approach to infrastructure management. Every feature is thoughtfully designed to make your workflow faster, safer, and more intuitive.

  • β€’ Intuitive syntax. Familiar patterns combined with modern expressiveness.
  • β€’ True portability. Define once, provision anywhere.
  • β€’ Built to extend. Mixins and plugins adapt seamlessly to your team's workflow.
  • β€’ Secure and reliable. State management in a proper database ensures complete traceability.

Kite empowers teams to manage infrastructure with confidence and clarity, eliminating complexity without sacrificing control.

πŸ‘·

Develop providers

πŸ“š

Reference

Overview

Updated on January 2025

What is Kite?

Kite is a declarative IaC language built to provision cloud infrastructure with precision and consistency.

Define your resources once. Provision them anywhere. A single Kite configuration describes exactly what you need, then scales effortlessly across your entire development lifecycle, from staging to production.

Clean syntax meets powerful type safety. Catch configuration errors before they reach the cloud. Share infrastructure modules across teams. The result? Infrastructure that's not just automated. It's remarkably simple to understand and maintain.

Why Kite?

  • β€’ One language. Every cloud. True portability without the pain.
  • β€’ Designed to feel familiar. Kite's syntax draws from the best of Terraform, Bicep, and modern languages like TypeScript, C# and Java.
  • β€’ Refactor fearlessly. Rename resources in code without ever losing the real ones in the cloud.
  • β€’ Import with ease. Bring your existing cloud infrastructure into Kite. No rewrites, no headaches, just instant control.
  • β€’ Build without limits. Extend resources effortlessly with annotations or mixins, and compose infrastructure the way you imagine it.
  • β€’ State that scales with you. Just a proper database managing everything automatically. Safe, fast, secure, and recoverable when things go wrong.

Basics

Updated on January 2025

Basic syntax

Learn the fundamental syntax of Kite, including package definitions, functions, variables, and control flow.

View Basic syntax β†’

Idioms

Discover common patterns and best practices for writing idiomatic Kite code.

Coding conventions

Follow established conventions for naming, formatting, and organizing your Kite projects.

Basic syntax

Updated on August 5, 2025

This is a collection of basic syntax elements with examples. At the end of every section, you'll find a link to a detailed description of the related topic.

πŸ’‘ You can also learn all the Kite essentials with the free Kite Core track by JetBrains Academy.

Package definition and imports

Package specification should be at the top of the source file:

package my.demo import kite.text.* // ...

It is not required to match directories and packages: source files can be placed arbitrarily in the file system.

See Packages β†’

Program entry point

An entry point of a Kite application is the main function:

fun main() { println("Hello world!") }

Another form of main accepts a variable number of String arguments:

fun main(args: Array<String>) { println(args.contentToString()) }