# Prosa.kt > Declarative Kotlin code generation, written in pure Kotlin. ## Documentation - [Installation](https://prosakt.com/docs/installation.md): Add Prosa.kt to a Kotlin or Kotlin Multiplatform project using Maven Central. - [Your first Kotlin file](https://prosakt.com/docs/first-file.md): Build a Kotlin source file step by step, from a package declaration to a function. - [Classes](https://prosakt.com/docs/classes.md): Use ktClass to generate classes, primary constructors, constructor properties, and members. - [Interfaces](https://prosakt.com/docs/interfaces.md): Use ktInterface to generate interfaces, abstract members, and default implementations. - [Objects](https://prosakt.com/docs/objects.md): Use ktObject and companionObject to generate singleton and companion objects. - [Functions](https://prosakt.com/docs/functions.md): Use ktFunction to generate functions with parameters, default arguments, return types, and bodies. - [Values and Variables](https://prosakt.com/docs/properties.md): Use ktValue and ktVariable to generate properties and initializers. - [Types](https://prosakt.com/docs/types.md): Use type, reference, argument, and nullable to describe Kotlin types. - [Annotations](https://prosakt.com/docs/annotations.md): Use annotations and ktFileAnnotation to generate declaration and file annotations. - [Visibility & modifiers](https://prosakt.com/docs/visibility.md): Set visibility and modifiers on generated Kotlin declarations. - [Imports](https://prosakt.com/docs/imports.md): Learn how Prosa.kt collects imports from types, expressions, calls, and annotations. ## Complete documentation - [All documentation](https://prosakt.com/llms-full.txt): All guides in one Markdown file.