Every Elide project manifest starts with the project schema:
pkl
amends "elide:project.pkl"
This page is the field reference for the schema in protocol/manifest/*.pkl.
It lists the properties accepted by Elide today. When a property is parsed but
not currently consumed by a build or runtime path, that is called out.
Top-level Properties
Property
Type
Default
Description
name
String?
null
Project name.
version
String?
null
Project version.
description
String?
null
Human-readable project description.
entrypoint
Listing?
null
Source file path or paths used by elide run when no file is supplied.
scripts
Mapping
{}
Named project scripts surfaced by project tooling.
Runtime engine settings. Parsed; maxContexts is not currently consumed.
sources
Mapping
main and test globs
Project source sets.
dev
DevSettings
new {}
MCP and development metadata.
toolchain
ToolchainSettings
new {}
Engine version-selection metadata.
artifacts
Mapping
{}
Build artifacts such as JARs, native images, static sites, and containers.
web
WebSettings?
new {}
Web build and CSS settings.
testing
Testing
new {}
Test and coverage settings.
Two read-only objects are also available during evaluation:
Property
Type
Description
build.manifestVersion
Int
Major manifest format version.
elide.channel
"release" or "debug"
Channel of the Elide binary evaluating the manifest.
elide.version
semver.Version
Semantic version of the Elide binary evaluating the manifest.
Sources
Import Sources.pkl when using the structured form:
pkl
import"elide:Sources.pkl"as Sources
sources {
["main"] = new Sources.SourceSetSpec {
type = "source"paths {
"src/main/java<<>>*.java""src/main/kotlin<<>>*.kt"
}
}
}
sources is a mapping from source-set name to either a simple glob string or a
SourceSetSpec.
Property
Type
Default
Description
type
"source", "test", "example", or "other"
"source"
Source-set purpose. test receives test behavior.
dependsOn
Listing
{}
Other source sets visible to this source set.
paths
Listing
{}
Source file paths or globs.
The default manifest defines main = "src/." and test = "test/.".
Default source sets other than main depend on main.
Jvm.JvmSourceSetSpec extends SourceSetSpec with:
Property
Type
Default
Description
resources
Mapping
{}
Resource mount path to source path for JVM artifacts.
Maven dependency buckets accept coordinate strings, MavenPackageSpec, or local
JAR paths. Coordinate strings may use group:artifact, group:artifact:version,
Gradle-style group:artifact:version:classifier, or Aether-style
group:artifact:extension:classifier:version.
Property
Type
Default
Description
packages
Listing
{}
Main compile/runtime dependencies.
devPackages
Listing
{}
Installed for development workflows, not normal classpaths.
modules
Listing
{}
Dependencies placed on the JPMS module path.
compileOnly
Listing
{}
Compile-time only dependencies.
runtimeOnly
Listing
{}
Runtime-only dependencies.
processors
Listing
{}
Java annotation processors.
testPackages
Listing
{}
Dependencies for test source sets.
kotlinPlugins
Listing
{}
Kotlin compiler plugins.
exclusions
Listing
{}
Coordinates excluded from resolution and classpath calculations.
repositories
Mapping
{}
Extra Maven repositories.
enableDefaultRepositories
Boolean
true
Enable default repositories such as Maven Central.
"latest", "stable", "auto", "1.9", "2.0", "2.1", or "2.2"
"auto"
Kotlin API level.
languageLevel
Same as apiLevel
"auto"
Kotlin language level.
compilerOptions
KotlinCompilerJvmOptions
new {}
Kotlin compiler options.
features
KotlinFeatureOptions
new {}
Kotlin feature flags.
toolchain
"embedded", ManagedKotlinToolchain, or CustomKotlinToolchain
"embedded"
Kotlin toolchain selection.
plugins
Mapping>
{}
Options for Kotlin compiler plugins.
compilerOptions:
Property
Type
Default
Description
optIn
Listing
{}
Kotlin opt-ins.
progressiveMode
Boolean
false
Enable progressive mode.
extraWarnings
Boolean
false
Enable extra K2 warnings and checks.
allWarningsAsErrors
Boolean
false
Treat warnings as errors.
suppressWarnings
Boolean
false
Suppress warnings.
verbose
Boolean
false
Enable verbose compiler output.
freeCompilerArgs
Listing
{}
Raw Kotlin compiler arguments.
apiVersion
Kotlin API level
"auto"
Explicit compiler API version.
languageVersion
Kotlin language level
"auto"
Explicit compiler language version.
includeRuntime
Boolean
false
Include Kotlin runtime classes in output.
noStdlib
Boolean
false
Do not automatically include Kotlin stdlib.
javaParameters
Boolean
false
Generate Java 1.8 method parameter metadata.
jvmTarget
JvmTarget
"auto"
Explicit JVM target for Kotlin.
noJdk
Boolean
false
Do not automatically include the Java runtime.
jvmTargetValidationMode
"WARNING", "ERROR", or "IGNORE"
"ERROR"
Java/Kotlin target compatibility validation.
incremental
Boolean
true
Enable incremental compilation.
features:
Property
Type
Default
Description
kapt
Boolean
true
Deprecated compatibility field; ignored.
testing
Boolean
true
Kotlin test support.
kotlinx
Boolean
true
Automatically include KotlinX dependencies.
defaultPlugins
Boolean
true
Enable the default built-in compiler plugin suite.
serialization
Boolean
kotlinx && defaultPlugins
KotlinX serialization support.
coroutines
Boolean
kotlinx
KotlinX coroutines support.
atomicfu
Boolean
kotlinx && defaultPlugins
KotlinX AtomicFU compiler plugin.
powerAssert
Boolean
defaultPlugins
Kotlin Power Assert compiler plugin.
metro
Boolean
defaultPlugins
Metro dependency-injection compiler plugin.
reflection
Boolean
true
Kotlin reflection support.
toolchain may be "embedded", new Kotlin.ManagedKotlinToolchain { version =
"..." }, or new Kotlin.CustomKotlinToolchain { path = "..." }.
JavaScript
pkl
javascript {
ecma = "latest"
}
Property
Type
Default
Description
ecma
2015..2025, "stable", or "latest"
"stable"
ECMAScript level to target.
Native Image
Project-wide nativeImage {} uses the same option shape as native-image
artifacts. For build outputs, set options {} on NativeImage.NativeImage
artifacts so the options are tied to the target being built.
Property
Type
Default
Description
verbose
Boolean
false
Enable verbose Native Image output.
driverMode
"embedded" or "external"
"embedded"
Invoke Native Image in-process or as a subprocess.
linkAtBuildTime
NativeImageLinkAtBuildTime
new {}
Link-at-build-time settings.
classInit
NativeImageClassInit
new {}
Class initialization policy.
exclusions
NativeImageExclusions
new {}
Classpath/modulepath exclusions.
optimization
"auto", "b", "s", "0", "1", "2", "3", or "4"
"auto"
Native Image optimization level.
pgo
ProfileGuidedOptimization
new {}
Profile Guided Optimization settings.
features
Listing
{}
Native Image feature classes.
flags
Listing
{}
Extra Native Image flags.
cflags
Listing
{}
Extra C compiler flags.
ldflags
Listing
{}
Extra native linker flags.
defs
Mapping
{}
System properties passed during image build.
linkAtBuildTime:
Property
Type
Default
Description
enabled
Boolean
true
Enable link-at-build-time by default.
packages
Listing
{}
Classes or packages to link at build time.
classInit:
Property
Type
Default
Description
default
"buildtime" or "runtime"
"buildtime"
Default class initialization policy.
buildtime
Listing
{}
Classes or packages initialized at build time.
runtime
Listing
{}
Classes or packages initialized at runtime.
exclusions:
Property
Type
Default
Description
all
Listing
compiler/SVM internals
Excluded from all paths.
classpath
Listing
{}
Classpath exclusions.
modulepath
Listing
{}
Modulepath exclusions.
pgo:
Property
Type
Default
Description
enabled
Boolean
true
Enable PGO when profiles are present.
autoprofile
Boolean
false
Auto-build PGO support.
instrument
Boolean
false
Build an instrumented image.
sampling
Boolean
false
Use sampling for PGO.
profiles
Listing
{}
PGO profile filenames.
Engine
Property
Type
Default
Description
maxContexts
Int?
null
Intended guest-context limit. Parsed; not currently consumed by runtime dispatch.
Dev
pkl
import"elide:Dev.pkl"as Dev
dev {
mcp {
registerElide = trueadvice = true
}
}
Property
Type
Default
Description
source
ProjectSourceSpec?
null
Source hosting metadata.
mcp
McpSettings?
null
Model Context Protocol settings.
server
DevServerSettings?
null
Development server defaults.
source:
Property
Type
Default
Description
platform
"github", "gitlab", "bitbucket", "git", or String
null
Source hosting platform.
project
String?
null
Project name or path.
subpath
String?
null
Subpath inside the source project.
mcp:
Property
Type
Default
Description
resources
Listing
{}
Additional MCP resources.
registerElide
Boolean
true
Register Elide as an MCP tool.
advice
Boolean
true
Register project advice with MCP.
McpResource:
Property
Type
Default
Description
path
String
Required
Resource file path.
name
String
""
Resource name.
description
String
""
Resource description.
mimeType
String?
null
Explicit MIME type; detected when omitted.
server:
Property
Type
Default
Description
host
String
"0.0.0.0"
Development server host.
port
UInt16
8080
Development server port.
Toolchain
pkl
toolchain {
engines {
["elide"] = "1.4.0"
}
}
Property
Type
Default
Description
engines
Mapping
{}
Accepted engine versions by name.
EngineSettings:
Property
Type
Default
Description
version
String
Required
Semantic version or version range.
Artifacts
Every artifact has:
Property
Type
Default
Description
dependsOn
Listing
{}
Other artifacts this artifact depends on.
JAR
pkl
import"elide:Jvm.pkl"as Jvm
artifacts {
["app"] = new Jvm.Jar {
name = "app.jar"main = "example.Main"
}
}
Property
Type
Default
Description
name
String?
null
Output JAR filename.
main
String?
null
Main class added to the manifest.
sources
Listing
{ "main" }
Source sets packaged into the JAR.
resources
Mapping
{}
Resource mount path to source path.
manifest
Mapping
{}
Manifest entries.
manifestFile
String?
null
Existing manifest file path.
excludes
Listing
{}
Exclusion patterns.
options.compress
Boolean
true
Compress JAR entries.
options.defaultManifestProperties
Boolean
true
Add default manifest properties.
options.entrypoint
String?
null
Main entrypoint for the JAR.
Sources JAR
Property
Type
Default
Description
sources
Listing
{ "main" }
Source sets packaged into the sources JAR.
classifier
String?
null
JAR classifier, such as sources.
excludes
Listing
{}
Exclusion patterns.
includes
Listing
{}
Inclusion patterns.
Javadoc JAR
Property
Type
Default
Description
sources
Listing
{ "main" }
Source sets used for Javadoc.
groups
Mapping>
{}
Package groupings.
links
Listing
{}
External documentation links.
excludes
Listing
{}
Packages or paths excluded from docs.
windowTitle
String?
null
Browser window title.
docTitle
String?
null
Documentation title.
Native Image Artifact
pkl
import"elide:NativeImage.pkl"as NativeImage
artifacts {
["native"] = new NativeImage.NativeImage {
from { "app" }
entrypoint = "example.Main"
}
}
Property
Type
Default
Description
from
Listing
{}
Artifacts used as Native Image inputs.
name
String?
null
Output binary or library name.
entrypoint
String?
null
Main class.
type
"binary" or "library"
"binary"
Image type.
moduleName
String?
null
JPMS module containing the entrypoint.
options
NativeImageOptions
new {}
Target-specific Native Image options.
options accepts the same fields listed in Native Image.
Static Site
pkl
import"elide:Web.pkl"as Web
artifacts {
["site"] = new Web.StaticSite {
srcs = "site"prefix = "/"
}
}