VS Code reference¶
Every command, setting and view the ubCode extension contributes to VS Code, generated from the extension’s manifest. What the features do is on Features.
Commands¶
Every command the extension offers, with where it is offered:
the Command Palette (Ctrl+Shift+P), a view’s toolbar or items,
the editor’s context menu or title bar, an empty view’s welcome text, or a keyboard shortcut.
Above each need in a reStructuredText or Markdown editor, a CodeLens row adds
Focus, the need’s parents and children, its implementation and test code links,
Run QA with the last score where [quality] is enabled,
the report insights it can be rendered for (one by its title, or several as Insights (N)),
and, for a need with workflow gaps, their reasons, which open the Problems panel.
The commands only those lenses run (ubcode.need.openCodeLinks, ubcode.report.showInsight, ubcode.report.pickInsight, ubcode.need.revealRelated) are not listed here,
nor is ubcode.need.advance, which no menu, lens or palette entry runs.
Command |
ID |
Where |
|---|---|---|
ubCode: Restart language server Restarts the ubCode language server. |
|
Command Palette; Home view toolbar |
ubCode: Log server debug information Writes the language server’s debug information to the ubCode output channel. |
|
Command Palette |
ubCode: Create quickstart project Asks for a folder and a flavour (minimal, full, markdown or variants), then writes a quickstart project there. |
|
Command Palette |
ubCode: Open ubcode configuration Opens the |
|
Command Palette; editor context menu |
ubCode: Open ubcode preview Opens the live ubCode preview of the active reStructuredText or Markdown file. |
|
Command Palette; editor context menu; editor title bar |
ubCode: Select ubcode need ID or filter in view Filters the Needs Index view to the need at the cursor (a need directive or a reference to one), or by the |
|
Command Palette; editor context menu |
ubCode: Show ubcode need ID in the graph view Opens the need at the cursor in the needs graph view. |
|
Command Palette; editor context menu |
ubCode: Show ubcode need ID in the Pharaoh panel Focuses the need at the cursor in the Pharaoh Workflows panel. |
|
Command Palette; editor context menu |
ubCode: Change Request Prefills the agent chosen in |
|
Command Palette |
ubCode: Drive Next Step Prefills the agent chosen in |
|
Command Palette |
ubCode: Accept Authored Artefacts Commits the focused need’s source file with git, with a message attributing the authored artefacts to the agent run. |
|
Command Palette |
ubCode: Run Quality Analysis Scores the need at the cursor against the project’s |
|
Command Palette; editor context menu; |
ubCode: Show Quality Analysis Results Opens the quality-analysis results panel for the need at the cursor. |
|
Command Palette; editor context menu |
ubCode: Remove project cache Deletes the on-disk index cache of the project that contains the active file. |
|
Command Palette |
ubCode: Re-index project Re-indexes the project that contains the active file. |
|
Command Palette |
ubCode: Run Script in Terminal Lists the project’s |
|
Command Palette |
ubCode: Open needs graph view Asks for a need ID and opens it in the needs graph view. |
|
Command Palette |
ubCode: Open Workflow Editor Opens the read-only Workflow editor, a diagram of the project’s |
|
Command Palette |
ubCode: Select documentation retrieval model for Pharaoh Picks the Copilot model |
|
Command Palette |
ubCode: Pin Project Pins the views to this item’s project, so they stop following the active editor (sets |
|
Site Map, Diagnostics, Needs Index, Std Referencing and Needs Json view items |
ubCode: Unpin Project Unpins the views, so they follow the active editor again. |
|
Site Map, Diagnostics, Needs Index, Std Referencing and Needs Json view items |
ubCode: Refresh active report Re-renders the report preview that is open. |
|
Command Palette; editor title bar |
ubCode: Capture intent (/pharaoh-intent) Opens Copilot Chat prefilled with |
|
Command Palette |
ubCode: Tailor workflow Derives a |
|
Command Palette |
ubCode: Install agent skills Runs |
|
Command Palette |
ubCode: Update agent skills Runs |
|
Command Palette |
ubCode: Register MCP server with Claude Code Registers the ubCode MCP server with Claude Code for this project, after asking for consent (shown when |
|
Command Palette |
ubCode: Focus Need in Pharaoh Panel Reveals the Pharaoh Workflows panel focused on the need a CodeLens or panel passes to it (from the palette, with no need given, it does nothing). |
|
Command Palette |
Open key file in editor Opens the license key file the Home view shows. |
|
Command Palette; Home view items |
Refresh Rebuilds the Site Map view. |
|
Command Palette; Site Map view toolbar |
Refresh Reloads the Diagnostics view. |
|
Command Palette; Diagnostics view toolbar |
Go to Source Opens the source location a diagnostic points at. |
|
Command Palette; Diagnostics view items |
Open Url Opens the URL a diagnostic points at in the browser. |
|
Command Palette; Diagnostics view items |
Group By Groups the Diagnostics view by code or by path. |
|
Command Palette; Diagnostics view toolbar |
Refresh Reloads the Needs Index view. |
|
Command Palette; Needs Index view toolbar |
Apply Filter Filters the Needs Index view with a query in the current filter type (openCypher, Python or free text). |
|
Command Palette; Needs Index view toolbar |
Select filter type Chooses the Needs Index filter type: Python, openCypher or free text. |
|
Command Palette; Needs Index view items |
Remove Filter Clears the Needs Index filter. |
|
Command Palette; Needs Index view items |
Group By Groups the Needs Index view by type, source, status or tag, or not at all. |
|
Command Palette; Needs Index view toolbar |
Go to Source Opens the source of a need, part, extension or reference. |
|
Command Palette; Needs Index view items |
Open Url Opens the URL of a need that comes from an external source. |
|
Command Palette; Needs Index view items |
Copy ID to Clipboard Copies the need’s ID to the clipboard. |
|
Command Palette; Needs Index view items |
Copy Link ID to Clipboard Copies the ID of a link’s target need to the clipboard. |
|
Command Palette; Needs Index view items |
Open Need View Opens the need in the needs graph view. |
|
Command Palette; Needs Index view items |
Refresh Reloads the Std Referencing view. |
|
Command Palette; Std Referencing view toolbar |
Go to Source Opens the source of a label, term or document. |
|
Command Palette; Std Referencing view items |
Copy ID to Clipboard Copies the name of a label, term, document or intersphinx entry to the clipboard. |
|
Command Palette; Std Referencing view items |
Open Documentation in Browser Opens an intersphinx entry’s documentation page in the browser. |
|
Command Palette; Std Referencing view items |
Refresh Reloads the Reports view. |
|
Command Palette; Reports view toolbar |
ubCode: Generate starter report template Writes a starter report template into the project. |
|
Command Palette; Reports view, when empty |
Generate & Preview Renders the report template, or the project-wide insight it belongs to, and previews it in an editor tab. |
|
Reports view items |
Edit template Opens the report template for editing. |
|
Reports view items |
Open in Browser Renders the report template to an HTML file and opens it in the browser. |
|
Reports view items |
Open from a need’s insight lens (renders for a need) Shown disabled on an insight that takes needs: open it from a need’s insight lens. |
|
Reports view items |
ubCode: Refresh Reloads the Pharaoh Workflows panel. |
|
Command Palette; Pharaoh Workflows view toolbar |
ubCode: Help Shows or hides the Pharaoh Workflows panel’s help. |
|
Command Palette; Pharaoh Workflows view toolbar |
ubCode: Refresh Reloads the Pharaoh Gaps panel. |
|
Command Palette; Pharaoh Gaps view toolbar |
ubCode: Help Shows or hides the Pharaoh Gaps panel’s help. |
|
Command Palette; Pharaoh Gaps view toolbar |
ubCode: View as Tree Shows the recovered needs as a tree. |
|
Command Palette; Pharaoh Intent from Code view toolbar |
ubCode: View as List Shows the recovered needs as a flat list. |
|
Command Palette; Pharaoh Intent from Code view toolbar |
ubCode: Expand All Expands every entry in the Intent from Code panel. |
|
Command Palette; Pharaoh Intent from Code view toolbar |
ubCode: Collapse All Collapses every entry in the Intent from Code panel. |
|
Command Palette; Pharaoh Intent from Code view toolbar |
ubCode: Refresh Reloads the Intent from Code panel. |
|
Command Palette; Pharaoh Intent from Code view toolbar |
ubCode: Help Shows or hides the Intent from Code panel’s help. |
|
Command Palette; Pharaoh Intent from Code view toolbar |
ubCode: Expand All Shows the needs in scope of every change request in the Pharaoh Changes panel. |
|
Command Palette; Pharaoh Changes view toolbar |
ubCode: Collapse All Hides the needs in scope of every change request in the Pharaoh Changes panel. |
|
Command Palette; Pharaoh Changes view toolbar |
ubCode: Refresh Reloads the Pharaoh Changes panel. |
|
Command Palette; Pharaoh Changes view toolbar |
ubCode: Help Shows or hides the Pharaoh Changes panel’s help. |
|
Command Palette; Pharaoh Changes view toolbar |
Refresh Reloads the Needs Json view. |
|
Command Palette; Needs Json view toolbar |
Apply Filter Filters the Needs Json view with an openCypher query. |
|
Command Palette; Needs Json view toolbar |
Remove Filter Clears the Needs Json filter. |
|
Command Palette; Needs Json view items |
Go to Source Opens the source of a need listed in the Needs Json view. |
|
Command Palette; Needs Json view items |
Copy ID to Clipboard Copies the need’s ID to the clipboard. |
|
Command Palette; Needs Json view items |
Settings¶
The extension’s settings, set in VS Code’s settings (settings.json).
The ubproject.toml keys are on Configuration keys.
- ubcode.agent.cliPath¶
- Type:
- string
- Default:
""
Path to the
ubcbinary used by the agent commands (Advance Need,Change Request,Set up project,Register MCP server). Leave empty to use the version-matched binary bundled with this extension, which is what you want unless you are developing ubc itself. Set it to point at a development build, or toubcto take whatever is on yourPATH. The AI runner itself is configured in the project’subproject.toml([agent.runner]) and theUBC_AGENT_RUNNER*environment variables.
- ubcode.agent.id¶
- Type:
- string
- Default:
"copilot"
AI agent the Drive action dispatches to.
copilotprefills GitHub Copilot Chat,claude-code,mistral-vibe, andopencodedrive the Pharaoh Agent panel over ACP (pick one from the panel’s agent selector),claude-code-clicopies the prompt for Claude Code running in your own terminal (the route that works on a Claude subscription), andothercopies the prompt to paste into any agent we do not integrate.Values:
"copilot": GitHub Copilot Chat — prefills the chat panel via workbench.action.chat.open (falls back to clipboard if the command is absent)."claude-code": Claude Code (over ACP). Drives the Pharaoh Agent panel. Needs an ANTHROPIC_API_KEY (an Anthropic Console API key, not a Claude subscription login)."claude-code-cli": Claude Code in your own terminal. Copies the drive prompt for you to paste, and works on a Claude subscription because nothing is spawned over ACP. RunubCode: Register MCP server with Claude Codefrom the command palette to get the ubCode MCP tools there."mistral-vibe": Mistral Vibe (over ACP) — drives the Pharaoh Agent panel."opencode": OpenCode (over ACP). Drives the Pharaoh Agent panel. Multi-provider (runs on an API key or a local model, never a subscription login)."other": Any other agent — copies the drive prompt to the clipboard so you can paste it.
- ubcode.chatParticipant.llmselection¶
- Type:
- string
- Default:
""
Copilot model used for the documentation retrieval phase of Pharaoh. Leave empty to use the model currently selected in the chat window.
- ubcode.cli.terminalIntegration¶
- Type:
- boolean
- Default:
false
Add the bundled
ubcCLI to thePATHof VS Code’s integrated terminals, so it can be run directly (e.g.ubc check,ubc build). The binary matches the installed extension version, and only terminals opened inside VS Code are affected. Note: if you already haveubcinstalled elsewhere on yourPATH, your shell’s startup files may give that copy precedence over the bundled one.
- ubcode.enable¶
- Type:
- boolean
- Default:
true
Whether to enable the extension.
- ubcode.mcp.configOverride¶
- Type:
- object
- Default:
{}
JSON object of config overrides applied on top of
ubproject.tomlfor the MCP server. Example:{"lint": {"ignore": ["W001"]}}
- ubcode.mcp.defaultConfig¶
- Type:
- string
- Default:
""
Path to the default ubproject.toml configuration file for the MCP server. If empty, uses the workspace root. Supports variables:
${workspaceFolder},${workspaceFolder:name},${userHome}.
- ubcode.preview.mode¶
- Type:
- string
- Default:
"rendered"
The initial rendering mode for the preview panel.
renderedshows the fully-rendered document;structuralshows the parsed structure with every directive/role as a uniform placeholder. Toggle live from the preview toolbar.Values:
"rendered": Render every construct as its semantic HTML shape (headings, admonitions, images/figures, mermaid diagrams, tables, …)."structural": Show what was parsed: every directive and role renders as a uniform placeholder (name, arguments, options, body), identical for reStructuredText and MyST.
- ubcode.qualityAnalysis.agentId¶
- Type:
- string
- Default:
""
Agent used for
Run QA. Empty (default) followsubcode.agent.id, so the agent you pick for Drive also scores QA. Set it to pin QA to a specific agent, e.g.copilotwhile driving with an ACP agent. Using a different agent for QA than for authoring avoids self-review bias, and scoring quality tracks the model you choose.Values:
"": Followubcode.agent.id: Run QA scores with the agent selected for Drive."copilot": GitHub Copilot model (Run QA’s original behaviour)."claude-code": Claude Code over ACP (needsANTHROPIC_API_KEY, a Console key, not a subscription login)."mistral-vibe": Mistral Vibe over ACP (needsMISTRAL_API_KEY)."opencode": OpenCode over ACP (multi-provider, local models supported).
- ubcode.qualityAnalysis.llmselection¶
- Type:
- string
- Default:
""
Copilot model used to run
[quality]analysis (Run QA). Leave empty to be prompted on first use.
- ubcode.server.addExtensions¶
- Type:
- array of strings
- Default:
[]
List of server extensions add to the server.
- ubcode.server.configOverride¶
- Type:
- object
- Default:
{}
JSON object of config overrides applied on top of
ubproject.toml. Example:{"lint": {"ignore": ["W001"]}}
- ubcode.server.disableExtensions¶
- Type:
- array of strings
- Default:
[]
List of core server extensions to disable.
- ubcode.server.documentSelector¶
- Type:
- array of objects
Override the extension’s default document selector
- ubcode.server.executable¶
- Type:
- array of strings
- Default:
[]
Override the extension’s default server executable command.
- ubcode.server.logToOutput¶
- Type:
- string
- Default:
"info"
For what log level (and below) are logs sent to the Output panel.
Values:
"off""debug""info""warning""error""always"
- ubcode.server.showNotifications¶
- Type:
- string
- Default:
"error"
For what log level (and below) are pop-up notifications shown.
Values:
"off""debug""info""warning""error""always"
- ubcode.trace.server¶
- Type:
- string
- Default:
"off"
Traces the communication between VS Code and the language server.
Values:
"off""messages""verbose"
- ubcode.views.pinnedProject¶
- Type:
- string
- Default:
""
Path to a
ubproject.tomlfile that all views (tree views and graph view) should always use, regardless of the currently active editor. When empty (default), views follow the active editor and resolve the project from the open file. Supports variables:${workspaceFolder},${workspaceFolder:name},${userHome}.
- ubcode.webview.logLevel¶
- Type:
- string
- Default:
"info"
Log level for ubCode webview logging (browser DevTools console). Controls verbosity of webview-side logs.
Values:
"debug""info""warn""error""none"
Views¶
The views of the ubCode Project sidebar, in their order.
View |
ID |
Shows |
|---|---|---|
Home |
|
The extension version, the license status and links to resources. |
Site Map |
|
The project’s navigation tree, as its toctrees build it. |
Diagnostics |
|
Every diagnostic of the project, including the project-wide ones (references, need links, schema), grouped by code or path. |
Needs Index |
|
The needs of the project, with their fields and links, filterable and groupable. |
Std Referencing |
|
The project’s labels, terms and documents, and the entries of its intersphinx inventories. |
Reports |
|
The project’s report templates ( |
Pharaoh Agent |
|
A conversation with the agent chosen in |
Pharaoh Workflows |
|
The workflow stream of the focused need: its stages and related needs as a graph. |
Pharaoh Gaps |
|
A project-wide census of workflow gaps, per stage. |
Pharaoh Intent from Code |
|
Needs recovered from the source code, to review before they are written. |
Pharaoh Changes |
|
The project’s change requests, each with its state and the step it is waiting on. |
Needs Json |
|
The needs of the |
Chat and MCP¶
@pharaoh(Pharaoh): Helps with setting up and configuring sphinx-needs/pharaoh-intent: Capture high-level intent as root artefacts defined by the project workflow.
@ubcode: a legacy alias of the participant above, for general chat only.The MCP server provider
ubcode.mcp-server(ubCode): Serves the bundledubc serve mcpto VS Code’s MCP support, so chat agents in VS Code can use the ubCode MCP tools (see MCP tools reference).