reqstool - VS Code Support

May 17, 2026 · View on GitHub

VS Code extension for reqstool, providing full Language Server Protocol (LSP) integration for requirements traceability.

reqstool links requirements, software verification cases, and manual verification results directly to your source code. This extension brings that traceability into the editor — hover over any annotated identifier to see its requirement, navigate to definitions, get inline diagnostics, and browse the full requirements outline without leaving VS Code.

Features

FeatureHow to access
Hover tooltipsHover over annotated identifiers in source files
IntelliSense completionTriggered automatically in YAML files
Go to definitionF12 or right-click → Go to Definition
Outline viewCtrl+Shift+O or the Outline panel in the Explorer
DiagnosticsProblems panel (Ctrl+Shift+M)
RefreshCommand Palette → reqstool: Refresh
YAML snippetsType Requirement, SVC, or MVR in a YAML file
Select server sourceCommand Palette → reqstool: Select Server Source

Installation

This extension is available on the Visual Studio Marketplace, the Open VSX Registry, and as a VSIX file attached to each GitHub Release.

VS Code

Search for reqstool Support in the Extensions panel and install directly, or run:

ext install reqstool.reqstool

VSCodium and other open-source editors

These editors use Open VSX by default. Search for reqstool Support in the Extensions panel and install directly, or run:

codium --install-extension reqstool.reqstool

Alternatively, install via VSIX:

  1. Download reqstool-<version>.vsix from the latest GitHub Release.
  2. Install it:
    • Command line: codium --install-extension reqstool-<version>.vsix
    • VS Code UI: Open the Extensions panel → ··· menu → Install from VSIX…

Getting Started

  1. Install the extension (see Installation above).
  2. Open a workspace that contains a requirements.yml file.
  3. On first activation a picker appears — choose which reqstool to use:
OptionDescription
Auto (default)Use system reqstool if installed; otherwise fall back to the version packaged with this extension.
System installedAlways use the reqstool found on PATH (version shown).
Packaged with extensionAlways use the version bundled and managed by this extension (version shown).

Your choice is saved globally and will not be asked again. To change it later, run reqstool: Select Server Source from the Command Palette.

Note: The packaged option requires Python (python3 or python) on your PATH for the one-time install. If Python is not available and reqstool is not on PATH, install reqstool manually (pipx install reqstool) and restart VS Code.

Configuration

SettingDefaultDescription
reqstool.serverSource"auto"Which reqstool to use: auto (system if available, otherwise managed), system (PATH), managed (bundled). Use reqstool: Select Server Source to pick interactively.
reqstool.serverCommandOverride the full server command (array). Takes priority over serverSource. See Custom server command.
reqstool.trace.server"off"LSP communication tracing. Set to "messages" or "verbose" to debug.
reqstool.startupTimeout5000Milliseconds to wait when checking if reqstool is available.
reqstool.symbolLookupDelay500Milliseconds to wait after opening a file before querying document symbols.
reqstool.fileWatchPattern**/{requirements,...}.ymlGlob pattern for reqstool YAML files to watch for changes.
reqstool.languagesall supportedLanguage IDs for which the LSP client is active (checkbox list in Settings UI).

Custom server command

For most users, reqstool.serverSource is sufficient. reqstool.serverCommand is for advanced cases where you need full control over the command and arguments — it takes priority over serverSource when set.

Use a specific binary on PATH:

{
  "reqstool.serverCommand": ["reqstool", "lsp"]
}

Use an absolute path:

{
  "reqstool.serverCommand": ["/home/user/.local/bin/reqstool", "lsp"]
}

Use a specific virtual environment:

{
  "reqstool.serverCommand": ["/home/user/.venv/bin/reqstool", "lsp"]
}

Use a specific Python interpreter:

{
  "reqstool.serverCommand": ["python", "-m", "reqstool", "lsp"]
}

Enable debug logging:

{
  "reqstool.serverCommand": ["reqstool", "lsp", "--log-level", "debug"]
}

When reqstool.serverCommand is set, both reqstool.serverSource and the managed virtual environment are bypassed entirely.

Supported Languages

The LSP server provides hover, completion, go-to-definition, and diagnostics for:

  • Python
  • Java
  • JavaScript / TypeScript
  • JSX / TSX
  • YAML (requirements, SVCs, MVRs)

Requirements

  • VS Code 1.109.0 or later
  • reqstool is either bundled with the extension (requires Python on PATH for a one-time install) or can be provided as a system installation on PATH. Use reqstool: Select Server Source to choose.

Troubleshooting

Extension shows "reqstool is not installed or not found"

  • Run reqstool: Select Server Source and choose Packaged with extension to let the extension install reqstool automatically (requires Python on PATH), or System installed if you have reqstool on PATH.
  • To install manually: pipx install reqstool, then restart VS Code.
  • Run reqstool --version in a terminal to confirm a manual installation is working.

Extension warns that the system reqstool is too old

  • The extension requires reqstool 0.11.0 or later.
  • Upgrade with pipx upgrade reqstool, or run reqstool: Select Server Source and choose Packaged with extension to use the bundled version instead.

Enable LSP tracing

Set reqstool.trace.server to "verbose" and open the Output panel → select reqstool from the dropdown.