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.
| Feature | How to access |
|---|---|
| Hover tooltips | Hover over annotated identifiers in source files |
| IntelliSense completion | Triggered automatically in YAML files |
| Go to definition | F12 or right-click → Go to Definition |
| Outline view | Ctrl+Shift+O or the Outline panel in the Explorer |
| Diagnostics | Problems panel (Ctrl+Shift+M) |
| Refresh | Command Palette → reqstool: Refresh |
| YAML snippets | Type Requirement, SVC, or MVR in a YAML file |
| Select server source | Command Palette → reqstool: Select Server Source |
This extension is distributed via Open VSX Registry and as a VSIX file attached to each GitHub Release.
We do not currently publish to the Visual Studio Marketplace — it requires a Microsoft publisher account, an Azure DevOps organisation, and a credit card, which is unnecessary friction for an open-source project.
VSCodium, Gitpod, Eclipse Theia, and other open-source editors use Open VSX by default. Search for reqstool in the Extensions panel and install directly.
Standard VS Code is hardcoded to Microsoft's Marketplace and cannot use Open VSX without unsupported workarounds. Install via VSIX instead:
- Download
reqstool-<version>.vsixfrom the latest GitHub Release. - Install it:
- Command line:
code --install-extension reqstool-<version>.vsix - VS Code UI: Open the Extensions panel →
···menu → Install from VSIX…
- Command line:
- Install the extension (see Installation above).
- Open a workspace that contains a
requirements.ymlfile. - On first activation a picker appears — choose which reqstool to use:
| Option | Description |
|---|---|
| Auto (default) | Use system reqstool if installed; otherwise fall back to the version packaged with this extension. |
| System installed | Always use the reqstool found on PATH (version shown). |
| Packaged with extension | Always 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 (
python3orpython) on yourPATHfor 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.
| Setting | Default | Description |
|---|---|---|
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.serverCommand |
— | Override 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.startupTimeout |
5000 |
Milliseconds to wait when checking if reqstool is available. |
reqstool.symbolLookupDelay |
500 |
Milliseconds to wait after opening a file before querying document symbols. |
reqstool.fileWatchPattern |
**/{requirements,...}.yml |
Glob pattern for reqstool YAML files to watch for changes. |
reqstool.languages |
all supported | Language IDs for which the LSP client is active (checkbox list in Settings UI). |
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.
The LSP server provides hover, completion, go-to-definition, and diagnostics for:
- Python
- Java
- JavaScript / TypeScript
- JSX / TSX
- YAML (requirements, SVCs, MVRs)
- VS Code 1.109.0 or later
- Python (
python3orpython) on yourPATHfor auto-install — or configurereqstool.serverCommandto point to an existing installation
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 --versionin a terminal to confirm a manual installation is working.
Extension warns that the system reqstool is too old
- The extension requires reqstool 0.8.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.