pkl is a purpose-built configuration-as-code language developed by Apple that combines declarative structure, validation, and tooling to improve over traditional configuration formats like JSON, YAML, or Plists. Its goal is to let you write configuration logic (modules, imports, conditions, defaults) while still producing static outputs suitable for tools that expect JSON, YAML, or other formats. Configurations in Pkl are type-safe and support validation constraints (e.g. bounds, relations) so many errors can be caught before deployment. The language is embeddable, meaning it can run inside applications (Java, Swift, Go, etc.) to load configuration dynamically with the same safety guarantees. There’s also code generation support: writing Pkl modules can generate matching classes or data structures in target languages (Swift, Go, Java, Kotlin) so runtime config and statically typed code stay in sync.

Features

  • Declarative configuration language with embedded validation and type checking
  • Ability to compile or emit JSON, YAML, Plist, or other static config formats
  • Embeddable runtime in multiple languages (Swift, Go, Java, etc.)
  • Code generation for typed classes/modules in host languages
  • Tooling support: syntax checking, editor integrations, IDE plugins
  • Modular configuration with imports, parameter defaults, and expressive scoping

Project Samples

Project Activity

See All Activity >

License

Apache License V2.0

Follow Pkl

Pkl Web Site

Other Useful Business Software
Go From AI Idea to AI App Fast Icon
Go From AI Idea to AI App Fast

One platform to build, fine-tune, and deploy ML models. No MLOps team required.

Access Gemini 3 and 200+ models. Build chatbots, agents, or custom models with built-in monitoring and scaling.
Try Free
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of Pkl!

Additional Project Details

Operating Systems

Apple iPhone, Mac

Programming Language

Java

Related Categories

Java Programming Languages

Registered

2025-10-06