Getting Started
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 available on your
PATH - Kotlin compiler (
kotlinc) available on yourPATH
Option A: End users (standalone, no repo clone)
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 -- --forceHealth check:
kotlinc -script install-standalone.kts -- --doctorkotlinc -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-workspace, koupper, koupper-cli, koupper-document) and runs install + doctor automatically.
Health check:
kotlinc -script ./koupper/install.kts -- --doctorkotlinc -script .\koupper\install.kts -- --doctorIf the doctor reports failures, run install again with --force.
Both installers provision:
~/.koupper/bin~/.koupper/libs~/.koupper/helpers~/.koupper/logs~/.koupper/templates/model-project~/.koupper/catalog/providers.json
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"