Visual workspace
Work with local folders, saved sections, chat, model controls, profiles, activity output, permission prompts, tracked edit undo/redo, and optional budget controls.
A practical handbook for installing StemCode, working in the terminal and desktop app, connecting editors, configuring providers and permissions, indexing large repositories, using team memory, extending the agent, and automating review.
StemCode is a local AI coding agent built to work directly in a repository. The same core agent can run in the terminal, desktop app, VS Code, Visual Studio, JetBrains, ACP-compatible editors, and CI review workflows.
Understand → plan → edit → validate → review. StemCode can inspect the repo, make tracked file changes, run real local tools, review diffs, and keep durable project context in versionable .stemcode/ files.
The CLI installers all resolve to the same self-contained StemCode release binary. You can use the shell installer or an npm-family package manager; no .NET toolchain is required for the packaged CLI.
curl -fsSL https://raw.githubusercontent.com/rizwan3d/StemCode/master/scripts/install.sh | bashirm https://raw.githubusercontent.com/rizwan3d/StemCode/master/scripts/install.ps1 | iexnpm install -g stemcodepnpm add -g stemcodebun add -g stemcodeDesktop builds are published for Windows x64, macOS x64/arm64, and Linux x64/arm64. Windows also has a setup executable.
LATEST RELEASE ↗Release assets include SHA256SUMS. The release pipeline also generates GitHub artifact attestations for build provenance.
gh attestation verify path/to/asset -R rizwan3d/StemCode
The npm-family package is a thin installer around the same self-contained release binary. It resolves the platform runtime, verifies the archive against the published checksums, and unpacks the CLI without requiring a .NET SDK.
| Setting | Behavior |
|---|---|
STEMCODE_SKIP_DOWNLOAD=1 | Skip the npm package's binary download step. Useful when a binary is provisioned separately. |
STEMCODE_CLI_TAG | Override the release tag the npm installer resolves. |
STEMCODE_CLI_BASE_URL | Override the base URL used to fetch CLI release assets. |
STEMCODE_NO_PROGRESS=1 | Suppress interactive progress output, especially useful in CI logs. |
Supported packaged CLI targets are win-x64, osx-x64, osx-arm64, linux-x64, and linux-arm64. If npm/pnpm postinstall is skipped or the download fails, StemCode can fetch the binary on first run. Bun skips postinstall scripts by default, so its package normally performs that lazy first-run fetch.
The StemCode library is also published to NuGet for tagged releases, but the CLI itself is distributed through the install scripts and npm-family installers above.
Set STEMCODE_NO_PROGRESS=1 to keep installer output compact in CI logs.
Run stemcode once to complete onboarding. StemCode can use subscription account sign-in, API-key providers, OpenAI-compatible endpoints, or local model providers.
For automated or preconfigured environments, set the provider variables before the first run.
export STEMCODE_PROVIDER="openrouter"
export STEMCODE_MODEL="poolside/laguna-m.1:free"
export STEMCODE_THINKING="on"
export STEMCODE_REASONING="high"
export STEMCODE_PROJECT_NAME="customer-portal"
export STEMCODE_API_KEY="YOUR_ROTATED_KEY"
stemcode -p "Say hello in one short line"
Use /onboard later to run provider setup again, or open /setting provider from an active session.
cd your-project
stemcode
Open the terminal UI with conversation history, live activity, prompts, and status.
stemcode "Find risky changes in this branch"
Useful for quick questions, scripts, and automation-friendly output.
git diff --stat | stemcode --stdin --profile review
Feed generated context into a one-shot review or analysis workflow.
stemcode --session <session-guid>
Resume a saved local session instead of starting over.
| Option | Purpose |
|---|---|
--acp | Run an Agent Client Protocol server over stdin/stdout for compatible editors and tools. |
--interactive | Start the terminal UI explicitly. |
--stdin | Read one-shot prompt text from standard input. |
--json | Write one-shot prompt or command output as a JSON object. |
-y, --yes | Approve promptable tool requests for this run while preserving explicit deny rules. |
-p, --prompt <text> | Run one prompt and print the response. |
--sandbox-mode <mode> | Override sandbox mode with read-only, workspace-write, or danger-full-access. |
--provider-auth-key <key> | Supply a provider API key when onboarding asks for a credential. |
--session <id> | Resume an existing session. |
--section <id> | Compatibility alias for --session. |
--profile <name> | Start with a named profile. |
--thinking <on|off> | Start with thinking enabled or disabled. |
-v, --version | Print the StemCode CLI version. |
--doctor | Run system diagnostics and print the doctor report. |
--no-update-check | Skip checking for application updates on startup. |
--no-old-reader | Resume a session without replaying old messages to the screen. |
-h, --help | Show CLI help. |
Type / in the terminal input to open suggestions. These commands are provided by the StemCode command catalog; the terminal UI also adds a small set of convenience commands for view, voice, and file navigation.
| Command | What it does |
|---|---|
/a | Alias for /agent. |
/agent | List available subagents for delegated work. |
/allow <tool-or-tag> [pattern] | Add a session-scoped allow override for a tool/tag and optional target pattern. |
/autocommit [on|off|status] | Show or toggle automatic Git commits for AI-made workspace changes. |
/budget [status|local [path]|cloud] | Show or configure budget controls from local or cloud settings. |
/clone | Duplicate the current session at the current position. |
/compact [retained-turns] | Manually compact the session context. |
/config | Show provider, config path, active profile, thinking, and active model details. |
/copy | Copy the last agent message to the clipboard. |
/disableanalytics | Disable product analytics for the current workspace. |
/doctor | Show comprehensive system diagnostics for StemCode. |
/deny <tool-or-tag> [pattern] | Add a session-scoped deny override for a tool/tag and optional target pattern. |
/exit | Exit the interactive shell. |
/export [json|html] [path] | Export the current session as JSON or HTML. |
/fork [turn-number] | Create a new fork from a previous user message. |
/help | List available shell commands and their usage. |
/import <json-path> | Import a session from JSON and switch to the imported copy. |
/index [update|status|rebuild|list] [limit] | Update, rebuild, inspect, or list the local codebase index. |
/init [recommended|minimal|custom] | Initialize workspace-local StemCode files using a preset or picker. |
/lessons … | Manage local lesson memory: status, enable/disable, list, search, save, edit, or delete lessons. |
/lsp [status|refresh|file <path> [refresh]] | Inspect discovered language servers or candidates for one file. |
/mcp | Show configured MCP servers, custom tool providers, and discovered dynamic tools. |
/models | Open the active model picker. |
/new | Start a fresh section without carrying prior context. |
/onboard | Re-run provider onboarding and switch the active session to the validated provider. |
/permissions | Show the current permission summary and session override guidance. |
/profile <name> | Switch the active agent profile for subsequent prompts. |
/provider [list|<name>] | List saved providers or switch the active session to another saved provider. |
/reasoning [show|none|minimal|low|medium|high|xhigh|max] | Show or set provider reasoning effort. |
/redact [on|off] | Show or toggle secret redaction for session output. |
/redo | Re-apply the most recently undone file edit transaction. |
/reload | Reload keybindings, extensions, skills, prompts, and themes. |
/resume [session-id] | Resume a different session. |
/rules | List effective permission rules in evaluation order. |
/session | Show current session information and stats. |
/setting [model|profile|thinking|provider|budget|workspace|permissions|tools|summary] | Open the settings picker or jump directly to a settings area. |
/setup-sandbox | Set up Windows sandbox support for restricted shell commands. |
/share | Share the current session as a secret GitHub gist. |
/skill … | Manage data-only skill marketplaces and installed skills. See the Skills Marketplace section below. |
/terminals [view [id]|stop <id>|stop all] | List, inspect, or stop background terminals for the current session. |
/thinking [on|off] | Show or set thinking mode. |
/tooloutput [compact|full|auto] | Control whether tool results render complete output, a compact preview, or the profile default. |
/tree | Navigate the session tree and switch branches. |
/update [now] | Check for StemCode updates or install the latest release immediately. |
/undo | Roll back the most recent tracked file edit transaction. |
/use <model> | Switch the active model for subsequent prompts. |
/version | Show the current StemCode CLI version. |
| Command | What it does |
|---|---|
/clear | Clear the terminal conversation view. |
/voice | Start local voice dictation; Ctrl+R is the keyboard shortcut. |
/voice setup | Configure the local voice model and microphone. |
/voice update | Update local voice models. |
/ls | List files in the current workspace. |
/read <file> | Read a workspace file after confirmation. |
Workspace and user-defined commands under .stemcode/commands/ are added to the same suggestion system. Built-in command names remain reserved.
! and !!!command runs a local shell command directly. !!command starts a background terminal with live output. Use /terminals to manage background processes.
Press Enter while a turn is running to queue another prompt or command. Press F4 to remove the newest queued submission.
The first Esc requests a graceful interrupt. Press Esc again if needed to abandon the stuck turn locally and return to Ready.
After a ! or !! shell prefix, Tab completes workspace file and directory paths without submitting the command.
Press F7 to toggle a Git panel showing the current branch, recent commits, staged files, changed files, and queued work. When the sidebar is focused, keyboard actions are available:
Workspace .stemcode/agent-profile.json can override runtime behavior for StemCode-managed HTTP calls, MCP, ACP prompts, subagent orchestration, ordinary tools, and background terminals.
{
"Application": {
"Tools": {
"httpClientTimeoutSeconds": 0,
"mcpRequestTimeoutSeconds": 0,
"acpRequestTimeoutSeconds": 0,
"agentOrchestrationTimeoutSeconds": 0,
"defaultTimeoutSeconds": 180,
"maxConcurrentBackgroundTerminalsPerSession": 4,
"completedBackgroundTerminalTtlSeconds": 300,
"toolOutput": "compact"
}
}
}
| Setting | What it controls |
|---|---|
httpClientTimeoutSeconds | Override the default timeout used by StemCode-managed HttpClient instances. |
mcpRequestTimeoutSeconds | Cap individual request/response cycles for stdio and HTTP MCP servers. |
acpRequestTimeoutSeconds | Cap ACP editor prompt requests such as permission and text-entry requests. |
agentOrchestrationTimeoutSeconds | Add an orchestration-wide timeout for agent_orchestrate. |
defaultTimeoutSeconds | Default timeout for tools that do not have a more specific override. |
maxConcurrentBackgroundTerminalsPerSession | Limit simultaneous background terminals in one session. |
completedBackgroundTerminalTtlSeconds | How long completed background-terminal output remains available. |
toolOutput | compact/preview renders capped previews; full/complete prints complete results. |
A value of 0 on the specific HTTP/MCP/ACP/orchestration timeout settings keeps StemCode's existing default behavior. A profile's toolOutput front matter overrides the workspace setting, and /tooloutput overrides both for the current session. Use /tooloutput auto to return to the profile/configured default.
Completed background terminals remain readable until their TTL expires. Running background terminals are stopped when the StemCode process exits.
Work with local folders, saved sections, chat, model controls, profiles, activity output, permission prompts, tracked edit undo/redo, and optional budget controls.
Open chat, send a selection or current file, explain code, review the current file or Git diff, plan changes, and apply suggested changes through a local ACP process.
The Visual Studio extension starts the local StemCode CLI over ACP and hosts the workflow inside the IDE.
The JetBrains plugin also drives the local stemcode --acp process, keeping the agent local to the editor host.
StemCode.Voice provides on-device speech-to-text prompts using Whisper.net and PortAudio, published separately from the AOT-compiled CLI host.
Install the StemCode CLI and run stemcode once so provider onboarding, credentials, and the default model are configured.
Run StemCode with stemcode --acp to expose the agent to compatible editors and tools. ACP communicates only over the child process stdin/stdout streams created by the host; StemCode does not open a network listener for ACP.
stemcode --acp
{
"agent_servers": {
"StemCode": {
"command": "stemcode",
"args": ["--acp"]
}
}
}
Set STEMCODE_ACP_AUTH_TOKEN for the process, or configure the token in the workspace profile:
{
"Application": {
"Acp": {
"authenticationToken": "replace-with-a-long-random-token"
}
}
}
initialize advertises "authMethods": ["token"].authenticate with {"token":"..."}.session/new and session/load.If no authentication token is configured, authMethods is empty and an authenticate call is rejected rather than reporting a false success.
ACP mode currently supports one active StemCode session per process.
ACP client mcpServers are merged with user/workspace MCP configuration only for that ACP session; editor-provided servers do not become global configuration.
Run stemcode once first so provider onboarding, credentials, and the default model are already configured.
StemCode records tracked edit transactions so supported file changes can participate in diff previews, edit summaries, /undo, /redo, and optional automatic Git commits.
file_writeCreate or replace a whole file.
apply_patchApply patch-style edits across one or more files.
insert_contentInsert UTF-8 text before a specific 1-based line.
search_and_replaceRun literal or regex replacement in one file.
Auto-commit is enabled by default for a workspace unless configuration turns it off. StemCode skips auto-commit when the workspace is not a Git repository or when you already have staged changes, and scopes staging to files StemCode actually changed.
/autocommit status
/autocommit off
/autocommit on
Tracked undo/redo covers tracked file-edit transactions. It does not reverse arbitrary shell side effects, package installs, generated files, external tools, or network actions.
The repository includes copy-paste examples for GitHub Actions, GitLab CI, and Bitbucket Pipelines. Each example computes the pull request or merge request diff, runs a workspace pr-reviewer profile in read-only mode, stores review artifacts, and can post a top-level review comment.
| Platform | Repository files / credential |
|---|---|
| GitHub Actions | .github/workflows/stemcode-review.yml + built-in GITHUB_TOKEN via GH_TOKEN |
| GitLab CI | .gitlab-ci.yml + GITLAB_TOKEN or stemcode_GITLAB_TOKEN |
| Bitbucket Pipelines | bitbucket-pipelines.yml + access token or username/app password |
Keep .stemcode/agents/pr-reviewer.md with the CI files so the review profile is available. Review artifacts are written under artifacts/stemcode-review in the provided examples.
The code_intelligence tool and /lsp command family discover language servers from built-in definitions, the current workspace, and optional user/workspace overrides. Code-intelligence actions are read-only; rename remains preview-only.
/lsp
/lsp refresh
/lsp file src/example.ts
| Language | Common server setup |
|---|---|
| TypeScript / JavaScript | npm install -g @vtsls/language-server typescript |
| Python | pip install basedpyright or pip install python-lsp-server |
| C# | dotnet tool install --global csharp-ls |
| Rust | rustup component add rust-analyzer |
| Go | go install golang.org/x/tools/gopls@latest |
| C / C++ | Install clangd from your platform package manager or LLVM distribution. |
Workspace-local binaries such as node_modules/.bin and common Python virtualenv script folders are checked before falling back to PATH.
Use the code_intelligence tool with action: "servers_status" to inspect supported languages, detected and missing servers, cached health, and install hints. Pass "refresh": true to bypass cached detection.
{
"action": "servers_status",
"refresh": true
}
User- or workspace-level .stemcode/agent-profile.json can override or add language-server definitions:
{
"languageServers": {
"python-pyright": {
"language": "Python",
"name": "Pyright",
"command": ".stemcode/tools/pyright-langserver.cmd",
"args": ["--stdio"],
"languageId": "python",
"fileExtensions": [".py"],
"priority": 250
}
}
}
| Field | Purpose |
|---|---|
command / args | Executable and arguments used to start the language server. |
enabled | Enable or disable a definition without deleting it. |
fileExtensions | Associate the server with selected workspace file types. |
initializationOptions | Pass server-specific initialization settings. |
installHint | Human-readable setup guidance surfaced when the server is missing. |
language / languageId | Display language name and LSP language identifier. |
name | Display name for the configured server. |
priority | Higher values win when multiple detected servers can handle the same file. |
Server selection is deterministic: StemCode tries the highest-priority detected definition first, then falls back through remaining detected servers in stable key order. Code-intelligence actions stay read-only and rename remains preview-only.
The local codebase index ranks likely relevant files for natural-language, symbol, path, and behavior queries. It stores lightweight metadata rather than full file contents.
The index can include semantic symbols, dependency edges, best-effort call edges, CODEOWNERS matches, language/path metadata, and local embedding vectors used for ranking.
/index status
/index update
/index rebuild
/index list 50
This is disabled by default. Enable it in user- or workspace-level .stemcode/agent-profile.json:
{
"codebaseIndex": {
"autoUpdateAfterTask": true
}
}
The cache lives at .stemcode/cache/codebase-index.json and respects .gitignore, .stemcode/.stemcodeignore, and built-in generated/runtime exclusions.
StemCode stores provider profiles locally and discovers available models when the provider supports discovery. Switch models with F2, /models, or /use <model>.
/thinking on
/reasoning show
/reasoning high
/reasoning none
Normalized reasoning effort values are none, minimal, low, medium, high, xhigh, and max. Provider support varies by model and API.
| Profile | Mode | Edit behavior | Best for |
|---|---|---|---|
build | Primary | Edits under permissions | Implementation, fixes, tests, build loops |
plan | Primary | Read-only | Investigation and implementation plans |
review | Primary | Read-only | Findings-first code review |
general | Subagent | Edits under permissions | Bounded delegated implementation |
explore | Subagent | Read-only | Fast codebase discovery |
/profile plan
@explore How does authentication work?
@general Update the parser tests for this narrow case.
Primary agents can delegate a focused task or orchestrate several subtasks. Primary build, plan, and review profiles can also ask interactive multiple-choice, multi-select, or free-form clarification questions.
The action can proceed.
StemCode prompts for approval before continuing.
The action is blocked.
Use /allow and /deny for temporary session-scoped rules.
| Mode | Behavior |
|---|---|
ReadOnly | No file writes or unsafe shell mutation. |
WorkspaceWrite | Workspace-scoped writes are allowed under policy. |
DangerFullAccess | Unrestricted execution only when explicitly configured or approved. |
Linux uses bubblewrap when available; macOS uses sandbox-exec. Restricted shell modes fail closed when StemCode cannot provide the required OS sandbox unless the user approves escalation or full access is configured.
On Windows, foreground shell commands and background terminals in read-only and workspace-write modes use StemCode's Windows sandbox runner. Set it up from an interactive session with:
/setup-sandbox
If the Windows sandbox cannot safely run a restricted request, StemCode blocks the request instead of silently falling back to unrestricted execution.
When appropriate, rerun without unsupported options or approve sandbox escalation only when you trust the command.
%APPDATA%\StemCode\.sandbox\sandbox.log
If a restricted command fails after setup, inspect the sandbox log, rerun /setup-sandbox if StemCode prompts for setup again, and verify that the working directory still exists.
Restricted pseudo-terminal sessions are not supported by the Windows sandbox runner. Those requests fail closed. Use a non-PTY foreground command or background terminal, or explicitly approve escalation only for a command you trust.
{
"Application": {
"Permissions": {
"auto_approve_all_tools": false,
"file_read": "Allow",
"file_write": "Ask",
"shell_default": "Ask",
"shell_safe": "Allow",
"network": "Ask",
"memory_write": "Ask",
"mcp_tools": "Ask"
}
}
}
Budget controls are disabled by default. They can run from a local workspace file or a cloud API. StemCode also supports optional tool-audit logging and lifecycle hooks around task, tool, file, shell, web, memory, permission, and delegation events.
/budget localConfigure a monthly USD budget, alert threshold, and per-token prices in .stemcode/budget-controls.local.json.
/budget cloudConnect an HTTP budget service using a saved API URL and a bearer token stored through the platform credential store.
When enabled, completed tool-call records are written to .stemcode/logs/tool-audit.jsonl with optional secret redaction and size caps.
Run local commands before or after selected StemCode events, filtered by file paths or shell-command patterns.
{
"Application": {
"Hooks": {
"enabled": true,
"defaultTimeoutSeconds": 30,
"rules": [
{
"name": "check-write",
"events": ["before_file_write", "after_file_write"],
"command": "scripts/check-write.ps1",
"pathPatterns": ["src/**"]
}
]
}
}
}
Run /init to scaffold workspace-local StemCode files. The recommended preset creates core configuration, ignores, agent/skill directories, cache/runtime directories, and structured team-memory files.
.stemcode/
agent-profile.json
README.md
.gitignore
.stemcodeignore
agents/
skills/
cache/
memory/
architecture.md
conventions.md
decisions.md
known-issues.md
test-strategy.md
lessons.jsonl
logs/
AGENTS.mdPersistent repository instructions loaded into model context after secret redaction.
SystemPrompt-Append.mdAdd durable workspace rules while keeping StemCode's configured base behavior.
SystemPrompt.mdReplace the workspace base system prompt when a project truly needs different base behavior.
.stemcodeignoreExclude paths from StemCode file tools with gitignore-style patterns.
Team memory lives under .stemcode/memory/ as ordinary Markdown. The recommended files cover architecture, conventions, decisions, known issues, and test strategy. Lesson memory can also live in lessons.jsonl.
Project commands live in .stemcode/commands/*.md; user commands live in ~/.stemcode/commands/*.md. Subdirectories create namespaces with :.
---
name: security-review
description: Review changed files for security risks
args: ["scope"]
---
Review $scope for authentication, injection, secrets,
unsafe deserialization, and permission bypasses.
StemCode can register GitHub repositories as data-only skill marketplaces, browse their published skills, install a selected skill into the workspace, list what is configured, and uninstall installed skills.
| Command | Purpose |
|---|---|
/skill marketplace add <owner/repo> [--ref <ref>] [--alias <alias>] | Add a marketplace repository. Pin an optional branch/tag/commit ref and choose an optional local alias. |
/skill marketplace remove <alias> | Remove a configured marketplace alias. |
/skill browse <marketplaceAlias> | List skills published by a configured marketplace, including names/descriptions when available. |
/skill install <skillId>@<marketplaceAlias> [--force] | Install a skill from a marketplace. --force permits replacement when needed. |
/skill list | Show configured marketplaces plus installed skills, source repository/ref, marketplace alias, and installed files. |
/skill uninstall <skillId> | Remove an installed skill and report the files removed. |
/skill marketplace add owner/engineering-skills --alias team
/skill browse team
/skill install dotnet@team
/skill list
/skill uninstall dotnet
Install output identifies the marketplace repository/ref and whether StemCode used a marketplace manifest or its convention fallback. Marketplace aliases let you keep commands short while --ref lets a team pin the skill source to a known branch, tag, or commit.
Put task-specific playbooks under .stemcode/skills/ and custom agent profiles under .stemcode/agents/. Built-in profile names can be overridden at the prompt level while StemCode preserves the built-in mode, tool set, and permission behavior.
StemCode can load MCP servers from user-level and workspace-level agent-profile.json. ACP clients can also provide session-scoped MCP servers. Use /mcp to inspect loaded MCP servers, custom tool providers, and discovered dynamic tools.
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp"],
"startupTimeoutSeconds": 20,
"toolTimeoutSeconds": 45,
"defaultToolsApprovalMode": "prompt"
}
}
}
Supported transports include stdio and streamable HTTP. Tools can be filtered with enabledTools and disabledTools.
A custom tool can be written in any language that reads JSON from stdin and writes text or JSON to stdout. Configured tools are exposed to the model as custom__<name> and default to approval prompts.
StemCode can redact common secret patterns before storage or display across tool output, memory, audit records, logs, conversation history, session state, workspace instructions, and errors. Pattern-based redaction is a safety layer, not a complete DLP system.
stemcode is not found after installRestart the terminal. If it still fails, verify the install directory is on PATH.
Run stemcode and choose to reconfigure. This can happen if onboarding was interrupted before credentials were fully saved.
Check provider credentials, account access, network connectivity, and any compatible-provider base URL. For Ollama, make sure the server is running and a model is installed. For LM Studio, start the local server and load a model.
Run /permissions and /rules. You can approve the prompt, add a session override with /allow, or change workspace configuration.
Check that the path is inside the workspace and not excluded by .stemcode/.stemcodeignore or secret-protection rules.
/undo and /redo only cover tracked file edit transactions, not arbitrary shell, package, network, or external-tool side effects.
Run stemcode --doctor or /doctor inside an active session.
Use /update to check, or /update now to install the latest release and then restart StemCode.
The cross-platform core uses the .NET SDK; extension projects add their platform-specific toolchains.
dotnet restore StemCode.CrossPlatform.slnx
dotnet build StemCode.CrossPlatform.slnx
dotnet test StemCode.Tests/StemCode.Tests.csproj
dotnet pack StemCode/StemCode.csproj -c Release
| Project | Purpose |
|---|---|
StemCode | Core application, domain, infrastructure, tools, providers, and storage. |
StemCode.CLI | Terminal UI and one-shot CLI. |
StemCode.Desktop | Desktop app. |
StemCode.VsCode | VS Code extension driven through ACP. |
StemCode.VS | Visual Studio extension. |
StemCode.JetBrains | IntelliJ-platform plugin. |
StemCode.Voice | Local Whisper-powered voice dictation runtime. |
StemCode.Tests | Test suite. |
StemCode.CrossPlatform.slnx covers the cross-platform core, CLI, desktop, and tests. StemCode.slnx additionally includes the voice runtime and Windows-only Visual Studio extension.
This page is a web-friendly guide built from the current StemCode repository documentation. The repository remains the source of truth for the newest command flags, integrations, release assets, implementation details, and issue tracking.