semtest/Reference/Tools & models
Reference

Tools & models

Supported LLM CLI tools, model keys, and choosing the right model.

Supported tools

Semtest supports 14 LLM CLI tools. Each requires its respective CLI installed and available on your PATH.

ToolCLI commandPrompt delivery
Claude CodeclaudeCommand-line argument
Gemini CLIgeministdin
Codex CLIcodexstdin
Aideraider--message argument
OpenCodeopencodestdin
Goosegoosestdin
Crushcrushstdin
Qwenqwenstdin
GitHub Copilotcopilotstdin
Forgeforgestdin
Plandexplandexstdin
OpenHandsopenhandsstdin
Cursoragentstdin
Ampampstdin

Model keys

Instead of choosing a runner and capability tier separately, you specify a single model key that identifies both the tool and the model. Set it in your config:

TSsemtest.config.ts
export default defineConfig({
llm: "claude-code-sonnet-4-6",
});

Or override per-test via frontmatter:

MARKDOWN
---
llm: gemini-2.5-pro
---

Run semtest list to see all available model keys, or semtest list --json for machine-readable output.

Claude Code

KeyModel
claude-code-opus-4-6claude-opus-4-6
claude-code-sonnet-4-6claude-sonnet-4-6
claude-code-sonnet-4-5claude-sonnet-4-5-20250929
claude-code-haiku-4-5claude-haiku-4-5-20251001

Gemini CLI

KeyModel
gemini-2.5-progemini-2.5-pro
gemini-2.5-flashgemini-2.5-flash
gemini-2.5-flash-litegemini-2.5-flash-lite
gemini-2.0-flashgemini-2.0-flash

Codex CLI

KeyModel
codex-o3o3
codex-o4-minio4-mini
codex-gpt-4.1gpt-4.1
codex-gpt-4.1-minigpt-4.1-mini
codex-gpt-4.1-nanogpt-4.1-nano

Aider

KeyModel
aider-claude-opus-4-6claude-opus-4-6
aider-claude-sonnet-4-6claude-sonnet-4-6
aider-claude-sonnet-4-5claude-sonnet-4-5
aider-claude-haiku-4-5claude-haiku-4-5
aider-gpt-4.1gpt-4.1
aider-gpt-4.1-minigpt-4.1-mini
aider-o3o3
aider-o4-minio4-mini
aider-gemini-2.5-progemini-2.5-pro
aider-gemini-2.5-flashgemini-2.5-flash
aider-deepseek-r1deepseek-r1
aider-deepseek-v3deepseek-v3

OpenCode

KeyModel
opencode-claude-opus-4-6claude-opus-4-6
opencode-claude-sonnet-4-6claude-sonnet-4-6
opencode-claude-sonnet-4-5claude-sonnet-4-5-20250929
opencode-claude-haiku-4-5claude-haiku-4-5-20251001
opencode-gpt-4.1gpt-4.1
opencode-gpt-4.1-minigpt-4.1-mini
opencode-o3o3
opencode-o4-minio4-mini
opencode-gemini-2.5-progemini-2.5-pro
opencode-gemini-2.5-flashgemini-2.5-flash

Goose

KeyModel
goose-claude-opus-4-6claude-opus-4-6
goose-claude-sonnet-4-6claude-sonnet-4-6
goose-claude-sonnet-4-5claude-sonnet-4-5-20250929
goose-claude-haiku-4-5claude-haiku-4-5-20251001
goose-gpt-4.1gpt-4.1
goose-gpt-4.1-minigpt-4.1-mini
goose-o3o3
goose-o4-minio4-mini
goose-gemini-2.5-progemini-2.5-pro
goose-gemini-2.5-flashgemini-2.5-flash

Crush

KeyModel
crush-claude-opus-4-6claude-opus-4-6
crush-claude-sonnet-4-6claude-sonnet-4-6
crush-claude-sonnet-4-5claude-sonnet-4-5-20250929
crush-claude-haiku-4-5claude-haiku-4-5-20251001
crush-gpt-4.1gpt-4.1
crush-gpt-4.1-minigpt-4.1-mini
crush-o3o3
crush-o4-minio4-mini
crush-gemini-2.5-progemini-2.5-pro
crush-gemini-2.5-flashgemini-2.5-flash

Qwen

KeyModel
qwen3-coder-plusqwen3-coder-plus
qwen3-coderqwen3-coder
qwen3-coder-fastqwen3-coder-fast

GitHub Copilot

KeyModel
copilot-claude-opus-4-6claude-opus-4-6
copilot-claude-sonnet-4-6claude-sonnet-4-6
copilot-claude-sonnet-4-5claude-sonnet-4-5-20250929
copilot-gpt-4.1gpt-4.1
copilot-gpt-4.1-minigpt-4.1-mini
copilot-o3o3
copilot-o4-minio4-mini
copilot-gemini-2.5-progemini-2.5-pro

Forge

KeyModel
forge-claude-opus-4-6claude-opus-4-6
forge-claude-sonnet-4-6claude-sonnet-4-6
forge-claude-sonnet-4-5claude-sonnet-4-5-20250929
forge-claude-haiku-4-5claude-haiku-4-5-20251001
forge-gpt-4.1gpt-4.1
forge-gpt-4.1-minigpt-4.1-mini
forge-o3o3
forge-o4-minio4-mini
forge-gemini-2.5-progemini-2.5-pro
forge-gemini-2.5-flashgemini-2.5-flash

Plandex, OpenHands, Cursor, Amp

These tools use their default model configuration and do not accept a model parameter:

KeyTool
plandex-defaultPlandex
openhands-defaultOpenHands
cursor-defaultCursor
amp-defaultAmp

Choosing a tool and model

Use whichever LLM CLI you already have installed. All tools receive the same prompt and are expected to produce the same JSON output format. The choice comes down to:

  • Which LLM provider you have access to
  • Which CLI tool is already on your machine
  • Model quality and cost preferences

As a general rule:

Model sizeTrade-offWhen to use
Large (Opus, o3, 2.5-pro)Most capable, slowest, most expensiveCritical specs, complex codebases, highest accuracy needed
Medium (Sonnet, o4-mini, 2.5-flash, gpt-4.1)Good accuracy, moderate costDaily development (default)
Small (Haiku, gpt-4.1-mini/nano, 2.5-flash-lite)Fastest, cheapest, least capableLarge test suites, quick iteration, cost-sensitive environments

Permission bypass

LLM CLIs often prompt for user confirmation before executing actions. In automated contexts (CI, batch runs), these prompts block execution. The skipPermissionsIfPossible config option (or --skip-permissions-if-possible CLI flag) tells semtest to append the tool-specific permission-bypass flag when available. Tools without a bypass flag are silently unaffected.

ToolFlag appendedNotes
Claude Code--dangerously-skip-permissions
Gemini CLI-y
Codex CLI--dangerously-bypass-approvals-and-sandbox
Aider--yes-alwaysAdded alongside existing --yes
Cursor--force
Amp(none)Auto-executes by default
OpenHands(none)Docker sandbox
Goose(none)Headless auto-execute
OpenCode, Crush, Qwen, Copilot, Forge, Plandex(none)No known flag โ€” silently ignored

Prerequisites

Semtest does not install LLM CLIs for you. Each tool's CLI must be installed separately:

Verify a CLI is available:

bash
which claude   # or gemini, codex, aider, opencode, goose, etc.

If the command is not found, semtest will exit with code 2 and an error message indicating the CLI is not available.