Skip to content

Prerequisites

ToolVersionPurpose
Node.js>= 20Runtime (set via engines in package.json)
pnpm10.xPackage manager (pinned via packageManager in root package.json)
Turbo2.xMonorepo task runner (dev dependency)

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:

CLIInstallAuth
claudeclaude.ai/docsclaude auth login
codexnpm i -g @openai/codexOPENAI_API_KEY env var
geminiai.google.devgcloud auth login
opencodenpm i -g opencodeOPENAI_API_KEY env var

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.