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.

ubcode.server.restart

Command Palette; Home view toolbar

ubCode: Log server debug information

Writes the language server’s debug information to the ubCode output channel.

ubcode.server.debugInformation

Command Palette

ubCode: Create quickstart project

Asks for a folder and a flavour (minimal, full, markdown or variants), then writes a quickstart project there.

ubcode.server.quickstart

Command Palette

ubCode: Open ubcode configuration

Opens the ubproject.toml that configures the active file, beside the editor.

ubcode.config.openFile

Command Palette; editor context menu

ubCode: Open ubcode preview

Opens the live ubCode preview of the active reStructuredText or Markdown file.

ubcode.preview.atFile

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 :filter: of the directive at the cursor, and reveals the view.

ubcode.rst.selectNeedsInTreeView

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.

ubcode.rst.selectNeedInGraphView

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.

ubcode.rst.selectNeedInWorkflows

Command Palette; editor context menu

ubCode: Change Request

Prefills the agent chosen in ubcode.agent.id with a change-request prompt for the focused need, which carries the change through to its downstream artefacts.

ubcode.need.changeRequest

Command Palette

ubCode: Drive Next Step

Prefills the agent chosen in ubcode.agent.id with the prompt for the focused need’s next workflow step, for you to review and send.

ubcode.need.drive

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.

ubcode.need.accept

Command Palette

ubCode: Run Quality Analysis

Scores the need at the cursor against the project’s [quality] criteria with the configured model or agent.

ubcode.need.runQA

Command Palette; editor context menu; Ctrl+Alt+Q (macOS Cmd+Alt+Q)

ubCode: Show Quality Analysis Results

Opens the quality-analysis results panel for the need at the cursor.

ubcode.need.qaResults

Command Palette; editor context menu

ubCode: Remove project cache

Deletes the on-disk index cache of the project that contains the active file.

ubcode.removeCache.atFile

Command Palette

ubCode: Re-index project

Re-indexes the project that contains the active file.

ubcode.reindex.atFile

Command Palette

ubCode: Run Script in Terminal

Lists the project’s [scripts] and runs the one you pick in a terminal.

ubcode.runTerminalCmd.atFile

Command Palette

ubCode: Open needs graph view

Asks for a need ID and opens it in the needs graph view.

ubcode.graph.show

Command Palette

ubCode: Open Workflow Editor

Opens the read-only Workflow editor, a diagram of the project’s [workflow] stages.

ubcode.openWorkflowEditor

Command Palette

ubCode: Select documentation retrieval model for Pharaoh

Picks the Copilot model @pharaoh uses to select documentation pages before it answers.

ubcode.chatParticipant.selectRetrievalModel

Command Palette

ubCode: Pin Project

Pins the views to this item’s project, so they stop following the active editor (sets ubcode.views.pinnedProject).

ubcode.views.pinProject

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.

ubcode.views.unpinProject

Site Map, Diagnostics, Needs Index, Std Referencing and Needs Json view items

ubCode: Refresh active report

Re-renders the report preview that is open.

ubcode.report.refresh

Command Palette; editor title bar

ubCode: Capture intent (/pharaoh-intent)

Opens Copilot Chat prefilled with @pharaoh /pharaoh-intent, to capture a feature’s intent as root needs (needs a [workflow]).

ubcode.ubIntent

Command Palette

ubCode: Tailor workflow

Derives a [workflow] from the project’s existing needs and links, previews it, and on confirmation adds it to ubproject.toml.

ubcode.tailorWorkflow

Command Palette

ubCode: Install agent skills

Runs ubc agent install to write the Pharaoh agent skills into the project, logging to the ubCode Agent output channel.

ubcode.installAgentSkills

Command Palette

ubCode: Update agent skills

Runs ubc agent update to bring installed agent skills up to this release, asking before it overwrites a file you edited.

ubcode.updateAgentSkills

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 ubcode.agent.id is claude-code-cli).

ubcode.agent.registerMcp

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).

ubcode.pharaohWorkflows.focusNeed

Command Palette

Open key file in editor

Opens the license key file the Home view shows.

ubcode.homeTreeView.openKeyFile

Command Palette; Home view items

Refresh

Rebuilds the Site Map view.

ubcode.siteMapTreeView.refresh

Command Palette; Site Map view toolbar

Refresh

Reloads the Diagnostics view.

ubcode.diagnosticsIndexTreeView.refresh

Command Palette; Diagnostics view toolbar

Go to Source

Opens the source location a diagnostic points at.

ubcode.diagnosticsIndexTreeView.gotoSingleUri

Command Palette; Diagnostics view items

Open Url

Opens the URL a diagnostic points at in the browser.

ubcode.diagnosticsIndexTreeView.openSingleUrl

Command Palette; Diagnostics view items

Group By

Groups the Diagnostics view by code or by path.

ubcode.diagnosticsIndexTreeView.groupBy

Command Palette; Diagnostics view toolbar

Refresh

Reloads the Needs Index view.

ubcode.needsIndexTreeView.refresh

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).

ubcode.needsIndexTreeView.inputFilterQuery

Command Palette; Needs Index view toolbar

Select filter type

Chooses the Needs Index filter type: Python, openCypher or free text.

ubcode.needsIndexTreeView.filterType

Command Palette; Needs Index view items

Remove Filter

Clears the Needs Index filter.

ubcode.needsIndexTreeView.removeFilter

Command Palette; Needs Index view items

Group By

Groups the Needs Index view by type, source, status or tag, or not at all.

ubcode.needsIndexTreeView.groupBy

Command Palette; Needs Index view toolbar

Go to Source

Opens the source of a need, part, extension or reference.

ubcode.needsIndexTreeView.gotoSource

Command Palette; Needs Index view items

Open Url

Opens the URL of a need that comes from an external source.

ubcode.needsIndexTreeView.openUrl

Command Palette; Needs Index view items

Copy ID to Clipboard

Copies the need’s ID to the clipboard.

ubcode.needsIndexTreeView.copyId

Command Palette; Needs Index view items

Copy Link ID to Clipboard

Copies the ID of a link’s target need to the clipboard.

ubcode.needsIndexTreeView.copyLinkId

Command Palette; Needs Index view items

Open Need View

Opens the need in the needs graph view.

ubcode.needsIndexTreeView.openNeedView

Command Palette; Needs Index view items

Refresh

Reloads the Std Referencing view.

ubcode.stdDomainIndexTreeView.refresh

Command Palette; Std Referencing view toolbar

Go to Source

Opens the source of a label, term or document.

ubcode.stdDomainIndexTreeView.gotoSingleUri

Command Palette; Std Referencing view items

Copy ID to Clipboard

Copies the name of a label, term, document or intersphinx entry to the clipboard.

ubcode.stdDomainIndexTreeView.copyId

Command Palette; Std Referencing view items

Open Documentation in Browser

Opens an intersphinx entry’s documentation page in the browser.

ubcode.stdDomainIndexTreeView.openExternal

Command Palette; Std Referencing view items

Refresh

Reloads the Reports view.

ubcode.reportsTreeView.refresh

Command Palette; Reports view toolbar

ubCode: Generate starter report template

Writes a starter report template into the project.

ubcode.report.quickstart

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.

ubcode.report.generate

Reports view items

Edit template

Opens the report template for editing.

ubcode.report.edit

Reports view items

Open in Browser

Renders the report template to an HTML file and opens it in the browser.

ubcode.report.openExternal

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.

ubcode.report.needInsightHint

Reports view items

ubCode: Refresh

Reloads the Pharaoh Workflows panel.

ubcode.pharaohWorkflows.refresh

Command Palette; Pharaoh Workflows view toolbar

ubCode: Help

Shows or hides the Pharaoh Workflows panel’s help.

ubcode.pharaohWorkflows.help

Command Palette; Pharaoh Workflows view toolbar

ubCode: Refresh

Reloads the Pharaoh Gaps panel.

ubcode.pharaohOverview.refresh

Command Palette; Pharaoh Gaps view toolbar

ubCode: Help

Shows or hides the Pharaoh Gaps panel’s help.

ubcode.pharaohOverview.help

Command Palette; Pharaoh Gaps view toolbar

ubCode: View as Tree

Shows the recovered needs as a tree.

ubcode.intentFromCode.viewAsTree

Command Palette; Pharaoh Intent from Code view toolbar

ubCode: View as List

Shows the recovered needs as a flat list.

ubcode.intentFromCode.viewAsList

Command Palette; Pharaoh Intent from Code view toolbar

ubCode: Expand All

Expands every entry in the Intent from Code panel.

ubcode.intentFromCode.expandAll

Command Palette; Pharaoh Intent from Code view toolbar

ubCode: Collapse All

Collapses every entry in the Intent from Code panel.

ubcode.intentFromCode.collapseAll

Command Palette; Pharaoh Intent from Code view toolbar

ubCode: Refresh

Reloads the Intent from Code panel.

ubcode.intentFromCode.refresh

Command Palette; Pharaoh Intent from Code view toolbar

ubCode: Help

Shows or hides the Intent from Code panel’s help.

ubcode.intentFromCode.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.

ubcode.pharaohChanges.expandAll

Command Palette; Pharaoh Changes view toolbar

ubCode: Collapse All

Hides the needs in scope of every change request in the Pharaoh Changes panel.

ubcode.pharaohChanges.collapseAll

Command Palette; Pharaoh Changes view toolbar

ubCode: Refresh

Reloads the Pharaoh Changes panel.

ubcode.pharaohChanges.refresh

Command Palette; Pharaoh Changes view toolbar

ubCode: Help

Shows or hides the Pharaoh Changes panel’s help.

ubcode.pharaohChanges.help

Command Palette; Pharaoh Changes view toolbar

Refresh

Reloads the Needs Json view.

ubcode.needsJsonTreeView.refresh

Command Palette; Needs Json view toolbar

Apply Filter

Filters the Needs Json view with an openCypher query.

ubcode.needsJsonTreeView.filterQuery

Command Palette; Needs Json view toolbar

Remove Filter

Clears the Needs Json filter.

ubcode.needsJsonTreeView.removeFilterName

Command Palette; Needs Json view items

Go to Source

Opens the source of a need listed in the Needs Json view.

ubcode.needsJsonTreeView.gotoSource

Command Palette; Needs Json view items

Copy ID to Clipboard

Copies the need’s ID to the clipboard.

ubcode.needsJsonTreeView.copyId

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 ubc binary 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 to ubc to take whatever is on your PATH. The AI runner itself is configured in the project’s ubproject.toml ([agent.runner]) and the UBC_AGENT_RUNNER* environment variables.

ubcode.agent.id
Type:
string
Default:
"copilot"

AI agent the Drive action dispatches to. copilot prefills GitHub Copilot Chat, claude-code, mistral-vibe, and opencode drive the Pharaoh Agent panel over ACP (pick one from the panel’s agent selector), claude-code-cli copies the prompt for Claude Code running in your own terminal (the route that works on a Claude subscription), and other copies 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. Run ubCode: Register MCP server with Claude Code from 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 ubc CLI to the PATH of 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 have ubc installed elsewhere on your PATH, 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.toml for 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. rendered shows the fully-rendered document; structural shows 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) follows ubcode.agent.id, so the agent you pick for Drive also scores QA. Set it to pin QA to a specific agent, e.g. copilot while 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:

  • "": Follow ubcode.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 (needs ANTHROPIC_API_KEY, a Console key, not a subscription login).

  • "mistral-vibe": Mistral Vibe over ACP (needs MISTRAL_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.toml file 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

ubcode.homeTreeView

The extension version, the license status and links to resources.

Site Map

ubcode.siteMapTreeView

The project’s navigation tree, as its toctrees build it.

Diagnostics

ubcode.diagnosticsIndexTreeView

Every diagnostic of the project, including the project-wide ones (references, need links, schema), grouped by code or path.

Needs Index

ubcode.needsIndexTreeView

The needs of the project, with their fields and links, filterable and groupable.

Std Referencing

ubcode.stdDomainIndexTreeView

The project’s labels, terms and documents, and the entries of its intersphinx inventories.

Reports

ubcode.reportsTreeView

The project’s report templates (*.html.j2), to render and preview.

Pharaoh Agent

ubcode.pharaohAgent

A conversation with the agent chosen in ubcode.agent.id, when it is driven over ACP.

Pharaoh Workflows

ubcode.pharaohWorkflows

The workflow stream of the focused need: its stages and related needs as a graph.

Pharaoh Gaps

ubcode.pharaohOverview

A project-wide census of workflow gaps, per stage.

Pharaoh Intent from Code

ubcode.intentFromCode

Needs recovered from the source code, to review before they are written.

Pharaoh Changes

ubcode.pharaohChanges

The project’s change requests, each with its state and the step it is waiting on.

Needs Json

ubcode.needsJsonTreeView

The needs of the needs.json file configured under [needs_json], with their fields, links and back-links.

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 bundled ubc serve mcp to VS Code’s MCP support, so chat agents in VS Code can use the ubCode MCP tools (see MCP tools reference).