Prerequisites
Runtime
Section titled “Runtime”| Tool | Version | Purpose |
|---|---|---|
| Node.js | >= 20 | Runtime (set via engines in package.json) |
| pnpm | 10.x | Package manager (pinned via packageManager in root package.json) |
| Turbo | 2.x | Monorepo task runner (dev dependency) |
LLM CLI (at least one)
Section titled “LLM CLI (at least one)”An LLM CLI is a command-line tool that lets you interact with a large language model from your terminal — you send it a prompt, it sends back a response. semtest-runner spawns these CLIs as child processes using child_process.spawn(), writes the test prompt to their stdin (or passes it as an argument for Claude), and reads back the structured JSON response from stdout. You need at least one installed and authenticated:
| CLI | Install | Auth |
|---|---|---|
claude | claude.ai/docs | claude auth login |
codex | npm i -g @openai/codex | OPENAI_API_KEY env var |
gemini | ai.google.dev | gcloud auth login |
opencode | npm i -g opencode | OPENAI_API_KEY env var |
GitHub PAT
Section titled “GitHub PAT”The package is published to GitHub Packages. To install @thulanek/semtest-runner as a dependency (or to publish), you need a GitHub Personal Access Token with read:packages scope.
Create one at Settings > Developer Settings > Personal Access Tokens > Tokens (classic) with the read:packages permission.