Getting Started
Current community release: v7.2.1 (GitHub Release). Install publishes
com.koupper:octopus-apito mavenLocal for Gradle modules. Re-run with--forceto upgrade.Distribution: GitHub Releases + mavenLocal. Koupper is not on Maven Central.
This guide gets Koupper running quickly with the current local-first scaffolding flow.
What you get with Koupper
- local-first scaffolding with Kotlin-native scripts
- runtime daemon model (Octopus) for consistent execution
- provider catalog for infra/API integrations (GitHub, Docker, SSH, n8n, MCP, and more)
- deploy + production hardening path without changing your script model
1) Install Koupper
Prerequisites
- Java 17+ (
java -version) - Kotlin compiler (
kotlinc -version) — required to runinstall-standalone.kts - ~350 MB free disk for
octopus.jar
Option A: End users (standalone, no repo clone)
Same command for first install and upgrade — --force replaces runtime jars and republishes octopus-api to mavenLocal:
curl -L -o install-standalone.kts https://github.com/koupper-jvm/koupper/releases/latest/download/install-standalone.kts
kotlinc -script install-standalone.kts -- --forceWindows PowerShell:
Invoke-WebRequest -Uri "https://github.com/koupper-jvm/koupper/releases/latest/download/install-standalone.kts" -OutFile "install-standalone.kts"
kotlinc -script .\install-standalone.kts -- --forceThen verify:
koupper -v
kotlinc -script install-standalone.kts -- --doctorkoupper -v
kotlinc -script .\install-standalone.kts -- --doctorIf you are on an older release and koupper module <name> fails with FileNotFoundException: .../.koupper/helpers/list.kts, create missing runtime folders once:
mkdir -p "$HOME/.koupper/helpers" "$HOME/.koupper/logs"New-Item -ItemType Directory -Force "$env:USERPROFILE\.koupper\helpers" | Out-Null
New-Item -ItemType Directory -Force "$env:USERPROFILE\.koupper\logs" | Out-NullOption B: Developers/maintainers (full workspace)
Use this when you maintain release automation, docs, and CLI/runtime together.
git clone https://github.com/koupper-jvm/koupper-workspace.git "koupper workspace"
cd "koupper workspace"
bash ./scripts/setup/workspace-bootstrap.sh --workspace "$(pwd)" --pullgit clone https://github.com/koupper-jvm/koupper-workspace.git "koupper workspace"
cd "koupper workspace"
./scripts/setup/workspace-bootstrap.ps1 -Workspace (Get-Location).Path -PullThe bootstrap script clones/updates all required repositories (koupper, koupper-cli, koupper-docs) and runs install + doctor automatically.
Health check (from workspace root):
kotlinc -script install-workspace.kts -- --doctorkotlinc -script .\install-workspace.kts -- --doctorIf the doctor reports failures, run install again with --force.
Both installers provision:
~/.koupper/bin~/.koupper/libs— fat runtimeoctopus.jar(daemon /koupper run)~/.koupper/helpers~/.koupper/logs~/.koupper/templates/model-project~/.koupper/catalog/providers.json- mavenLocal — light
com.koupper:octopus-api:<version>for compiling modules (not the fat jar)
Using Octopus from a Gradle module
After install (v7.2.1+):
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
implementation("com.koupper:octopus-api:7.2.1")
}Do not put ~/.koupper/libs/octopus.jar on the compile classpath — that fat jar is only for the OS-level daemon.
2) Verify CLI
koupper -v
koupper --help
koupper provider list3) Generate your first module
koupper new module name="demo-script",version="1.0.0",package="demo.script"Then inspect module details:
koupper module demo-scriptRun jobs and deploy flows later from the same command surface:
koupper job list
koupper deploy examples/hello-world.kts "10.0.0.50"4) Add scripts later without destructive overwrite
koupper module add-scripts name="demo-script" --script-inclusive "extensions/sample.kts"Use --overwrite only when you intentionally want to replace existing files.
5) Optional runtime overrides
export KOUPPER_OCTOPUS_HOST="127.0.0.1"
export KOUPPER_OCTOPUS_PORT="9998"
export KOUPPER_OCTOPUS_TOKEN="your-token"Next
Contributing
Want to improve the framework or the docs?
| Change | Branch from | Merge path | How it ships |
|---|---|---|---|
| Engine / CLI | develop | PR → develop | Maintainer tags vX.Y.Z on koupper |
| Docs (this site) | develop | PR → develop, then develop → main | Push to main auto-deploys here |
Full guide: CONTRIBUTING.md in the engine repo.