SDLC Execution Platform

Installation Guide

Get from zero to a working pipeline in under 10 minutes. Follow the Quick Install path to let a script handle everything, or use the Manual path to do each step yourself.

Before you start

You need three things. Everything else is optional.

  • Java 17 or later — the platform runs on the JVM. If you are not sure whether Java is installed, open a terminal and run java -version. The first number after version " must be 17 or higher. If it is not, the Quick Install script will tell you — or follow Install Java below.
  • An Anthropic or OpenAI API key — the platform calls an LLM to generate plans and code. Get an Anthropic key at console.anthropic.com (starts with sk-ant-) or an OpenAI key at platform.openai.com/api-keys. Keep it private — do not commit it to source control.
  • A software project on your machine — Spring Boot (Maven or Gradle), Node.js, or Python. You run the pipeline against a real project directory. Any project with a standard build file works.

Windows

Windows 10 (build 1903+) or Windows 11. Use PowerShell or Command Prompt.

macOS

macOS 12 Monterey or later. Intel and Apple Silicon both supported.

Linux

Any 64-bit distro (Ubuntu 20.04+, Debian 11+, RHEL 8+). Run uname -m — need x86_64 or aarch64.

Quick Install — Recommended

One command. The script checks Java, downloads the JAR, creates the wrapper, and adds it to your PATH.

Java must already be installed. If the script reports Java is missing or too old, follow Install Java first, then come back and re-run.

macOS / Linux

curl -fsSL https://bakalarsoftware.com/dl/install.sh | bash

After the script finishes, activate in your current terminal (or open a new one):

export PATH="${HOME}/.sdlc/bin:${PATH}"

Windows (PowerShell)

irm https://bakalarsoftware.com/dl/install.ps1 | iex

Restart your terminal after the script finishes. The sdlc command will be available in new windows.


Verify the install worked:

sdlc --version

You should see SDLC Execution Platform vX.Y.Z. If you see "command not found", the PATH change hasn't taken effect — open a new terminal or run the export command above.


Done? Jump to First Run ↓

Install Java

Skip this section if java -version already shows 17 or higher.

The recommended distribution is Eclipse Temurin — free, open-source, widely used in production.

W

Windows

  1. Go to adoptium.net/temurin/releases/?version=21
  2. Select: Version 21, OS Windows, Architecture x64, Package JDK
  3. Download the .msi installer and run it
  4. When asked, check "Set JAVA_HOME variable" and "Add to PATH"
  5. Close and reopen your terminal, then run java -version
Still seeing 'java' is not recognized after reopening? Search "Environment Variables" in Start, open "Edit the system environment variables", and verify a path ending in \jdk-21\bin is in the Path variable.
M

macOS

With Homebrew:

brew install --cask temurin@21

Without Homebrew: Download the .pkg from adoptium.net. Select x64 for Intel, aarch64 for Apple Silicon (M1/M2/M3).

L

Linux

Ubuntu / Debian:

sudo apt-get update && sudo apt-get install -y default-jdk-headless

RHEL / Fedora:

sudo dnf install java-21-openjdk-headless

If the package manager installs an older version, use the Adoptium apt repository: adoptium.net/installation/linux.

After installing, close your terminal, open a new one, and confirm with java -version. Do not proceed until you see 17 or higher.

Manual Install

If you prefer to control each step yourself, or if the install script failed.

1

Download the JAR

Download sdlc-orchestrator.jar from the link below and save it somewhere you can find it (e.g. your home directory or Downloads).

https://bakalarsoftware.com/dl/sdlc-orchestrator.jar
ProblemFix
Browser warns file is dangerousClick "Keep" or "Keep anyway" — .jar files are Java archives, not executables
Saved as sdlc-orchestrator.jar.zipmacOS auto-expanded it. Rename back to sdlc-orchestrator.jar
macOS Gatekeeper blocks itRight-click in Finder → Open → confirm. Or: xattr -d com.apple.quarantine sdlc-orchestrator.jar
2

Verify the JAR runs

Open a terminal, navigate to where you saved the JAR, and run:

java -jar sdlc-orchestrator.jar --help

What you should see:

SDLC Execution Platform vX.Y.Z Usage: sdlc [flags] --ticket-id ID Ticket to process --project /path Target project root ...
ErrorFix
Unable to access jarfileWrong directory. Run ls or dir to confirm the file is present
UnsupportedClassVersionErrorJava too old — go back and install Java 17+
Permission deniedchmod +r sdlc-orchestrator.jar
3

Create the config file

The platform reads your API key from ~/.sdlc/sdlc-local.properties.

Create the directory:

# macOS / Linux
mkdir -p ~/.sdlc

# Windows (PowerShell)
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.sdlc"

Create and open the file:

# macOS / Linux
nano ~/.sdlc/sdlc-local.properties

# Windows (PowerShell)
notepad "$env:USERPROFILE\.sdlc\sdlc-local.properties"

Paste this, replacing the placeholder with your real key:

# Anthropic (recommended):
llm.anthropicApiKey=sk-ant-YOUR-KEY-HERE

# OpenAI (alternative):
# llm.openAiApiKey=sk-YOUR-KEY-HERE

Save and close. Verify the file was created:

# macOS / Linux
cat ~/.sdlc/sdlc-local.properties

# Windows
type "$env:USERPROFILE\.sdlc\sdlc-local.properties"

You should see your key printed. If you see "No such file or directory", the file was not saved to the right location — check the path, including the leading dot in .sdlc.

4

Optional — add a short sdlc command

Without this step you run the platform with java -jar sdlc-orchestrator.jar. With it, you can just type sdlc.

macOS / Linux:

mkdir -p ~/.sdlc/bin
cp sdlc-orchestrator.jar ~/.sdlc/
cat > ~/.sdlc/bin/sdlc <<'EOF'
#!/bin/sh
exec java -jar "$HOME/.sdlc/sdlc-orchestrator.jar" "$@"
EOF
chmod +x ~/.sdlc/bin/sdlc
echo 'export PATH="$HOME/.sdlc/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc   # or: source ~/.zshrc

Windows (PowerShell):

New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.sdlc\bin"
Copy-Item sdlc-orchestrator.jar "$env:USERPROFILE\.sdlc\"
Set-Content -Path "$env:USERPROFILE\.sdlc\bin\sdlc.bat" `
  -Value "@echo off`r`njava -jar `"%USERPROFILE%\.sdlc\sdlc-orchestrator.jar`" %*"
$p = [Environment]::GetEnvironmentVariable("PATH","User")
[Environment]::SetEnvironmentVariable("PATH","$p;$env:USERPROFILE\.sdlc\bin","User")

Open a new terminal and verify with sdlc --version.

First Run — Test It

Run the platform against a real project with an inline ticket. No Jira or Linear required.

You need a project with a standard build file: pom.xml (Spring Boot / Maven), build.gradle, package.json, or requirements.txt. Replace /path/to/your/project with the actual path.

macOS / Linux

java -jar sdlc-orchestrator.jar \
  --ticket-id TEST-1 \
  --title "Add a health check endpoint" \
  --description "Add a GET /health endpoint that returns HTTP 200 with body: ok" \
  --project /path/to/your/project

Windows (PowerShell — backtick for line continuation)

java -jar sdlc-orchestrator.jar `
  --ticket-id TEST-1 `
  --title "Add a health check endpoint" `
  --description "Add a GET /health endpoint that returns HTTP 200 with body: ok" `
  --project C:\path\to\your\project

If you set up the sdlc shortcut, use sdlc instead of java -jar sdlc-orchestrator.jar.


What you should see:

[SDLC] Loading ticket TEST-1... [SDLC] Checkpoint 0 — Clarification Interpretation: Add a GET /health endpoint returning HTTP 200 with body: ok Open questions: none [SDLC] Scanning project... [SDLC] Generating execution plan... ============ EXECUTION PLAN ============ Operations: 1. CREATE HealthController — new REST controller with GET /health ... Approve this plan? (yes/no):

Type yes and press Enter. The platform generates code and shows a diff, then asks:

Approve and apply? (yes/no):

Type yes again. Files are written, your build runs, a git commit is created, and an audit record is saved to ~/.sdlc/audit/.


If something goes wrong:

ErrorCauseFix
config validation failed: no LLM key Config file not found or key missing Run cat ~/.sdlc/sdlc-local.properties and confirm the file exists with your key
401 Unauthorized API key wrong or revoked Log into the API console and generate a new key
Could not detect project type No standard build file in the project root Add --project-type spring-boot (or node, python, gradle)
Build failed after apply Generated code has a compile or test error Run sdlc --show-audit TEST-1 for details; try with a clearer --description
REJECTED_BY_VALIDATION Plan validation failed Add more detail to --description; run --rescan if the codebase index is stale