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 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.

semtest supports 14 tools. Run semtest list to see all available model keys. The most commonly used:

CLIInstallAuth
claude (Claude Code)claude.ai/docsclaude auth login
gemini (Gemini CLI)ai.google.devgcloud auth login
codex (Codex CLI)npm i -g @openai/codexOPENAI_API_KEY env var
aiderpip install aider-chatProvider-specific API key
opencodenpm i -g opencodeProvider-specific API key
gooseblock.github.io/gooseProvider-specific API key

Other supported tools: Crush, Qwen, GitHub Copilot, Forge, Plandex, OpenHands, Cursor, Amp.

Stable releases are published to public npm — no authentication needed to install. RC (release candidate) builds are published to GitHub Packages for internal testing. To install RC builds, 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.