Concepts

Testing

Setup and run scripts, environment detection, and running tests in a workspace.

Each workspace has a console panel with Setup, Run, and Terminal tabs. Setup and Run are scripted commands with live output and a status badge; Terminal is a full interactive shell in the worktree.

Environment detection

When you add a project, Kalauz inspects the repo root and pre-fills sensible setup and run commands. First match wins:

Marker in repo rootSetupRun
pnpm-lock.yamlpnpm installpnpm dev
yarn.lockyarn installyarn dev
package.jsonnpm installnpm run dev
*.sln / *.csprojdotnet restoredotnet run
pyproject.tomluv sync—
requirements.txtpip install -r requirements.txt—
go.modgo mod downloadgo run .
Cargo.tomlcargo fetchcargo run
Gemfilebundle install—

You can override any of these in the project's settings.

Setup script

The Setup script runs once, automatically, right after a workspace's worktree is created — installing dependencies so the agent starts on a working tree. You can re-run it any time from the Setup tab.

Run script

The Run script is yours to define — usually the dev server or a test command. Run it from the Run tab whenever you want to exercise the agent's changes.

# A Run script can be anything — your test suite, for instance:
pnpm test

Concurrency

By default every workspace can run its Run script at the same time. If that causes collisions — two workspaces fighting over the same port — set the project's run-script mode to nonconcurrent. Kalauz then allows only one Run at a time per project; others wait until you stop the active one.

Configuring scripts

Scripts resolve in this order, first non-empty wins:

  1. The value in the project's settings.
  2. A kalauz.json checked into the repo (scripts.setup, scripts.run, scripts.archive, runScriptMode).
  3. The auto-detected command from the table above.

A kalauz.json lets a repo carry its own setup so every teammate's workspaces behave the same.

The interactive terminal

The Terminal tab is a real shell rooted in the worktree — run ad-hoc commands, inspect git state, or drive your tests by hand.

What's next?