Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>QUBE Survey Workbench — NIPO Odin & QubeScriptNew to Visual Studio Code? Get it now.
QUBE Survey Workbench — NIPO Odin & QubeScript

QUBE Survey Workbench — NIPO Odin & QubeScript

qubesurvey

|
1 install
| (0) | Free
Edit NIPO Odin and QubeScript surveys, run local interviews, and review testing tickets. For Nfield, NIPO Fieldwork System and online survey workflows.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

QUBE Survey Workbench — NIPO Odin & QubeScript

Author and test NIPO Odin and QubeScript questionnaires in VS Code with parser-backed checks, outline navigation, and local interview execution.

The local editor, source tools, and interview workbench are free and run offline without sign-in. WebAssembly binaries power execution across Windows, macOS, and Linux. Hosted collaboration, online testing, and ticket reproduction integrate with QUBE Survey and require a QUBE Survey account and the appropriate account and project permissions.

Capability Odin QubeScript
Files .odin .qube
Highlighting, outline, folding Yes Yes
Diagnostics as you type Yes Yes
Completion, hover, definition, references, rename Yes Yes
Questionnaire navigator Yes Yes
Local interview testing Yes Yes
Data-position and translation tools Yes —

For NIPO and Odin users

Author and maintain .odin scripts with parser-backed syntax and semantic checks, question and variable references, and source tooling:

  • Works with NIPO systems: Odin source authored here can also run in NIPO systems, including Nfield and NIPO Fieldwork System (NFS), subject to supported commands and target-system setup.
  • Local interview testing: Preview routing, logic, and question flows locally before uploading. Local execution does not establish full NIPO runtime compatibility; test the specific behavior your questionnaire needs.
  • Integrated testing during scripting: Testing and ticketing workflows are useful during script development even when final fieldwork runs on NIPO.

Online testing and tickets

Use QUBE Survey's testing and ticketing workspace while continuing to run supported Odin scripts on NIPO. Testing guide · Ticket workflow.

  1. Local preview: Test questions and routing in the local interview workbench.
  2. Immutable test uploads: Upload the exact questionnaire source to QUBE Test as an immutable version when you choose Open in QUBE Survey.
  3. Reproduce reported issues: Review tickets linked to exact source versions and captured test interview journeys. Reproduce Ticket opens an Odin ticket's reported source and restores the captured path locally in VS Code.
  4. Fix and verify: Edit the script, verify the fix locally, and upload an Odin candidate fix for human verification.

An invented visitor survey in the QUBE online test interview

Test the wording, answer options and routing before fieldwork.

A demonstration Odin ticket with a proposed fix and human review controls

Compare the proposed source changes, replay the reported journey and verify the fix. Fixed means ready for human review.

For QubeScript authors

Start new questionnaires with .qube using QubeScript (QSS), a declarative survey language for CAWI on QubeSurvey.

  • Declarative directives for questions, options, routing and repeats.
  • Semantic highlighting, outline navigation, and live compiler diagnostics.
  • Local interview testing through the QSS WebAssembly runtime.
  • Upload to QUBE Survey for online testing and fieldwork.

Installation

  1. Install Visual Studio Code 1.102 or later if needed.

  2. In VS Code, open Extensions (Ctrl+Shift+X / Cmd+Shift+X), search for @id:QubeSurvey.vscode-qube, choose QUBE Survey Workbench by qubesurvey, and select Install Pre-Release Version. The command-line equivalent is:

    code --install-extension QubeSurvey.vscode-qube --pre-release
    
  3. Open or create a .qube script. Existing .odin files also work.

Upgrading from agentic-labs.vscode-qube or an earlier Odin extension? Explicitly uninstall agentic-labs.vscode-qube or the earlier Odin extension after installing the new extension. Released odin.* command aliases remain available. Explicitly configured odin.qubeSurvey.baseUrl values migrate to qube.qubeSurvey.baseUrl unless that setting already has a value at the same scope. Existing URL choices are preserved.

Manual VSIX fallback

If installing manually from the supplied VSIX:

  1. In VS Code, open Extensions → … → Install from VSIX… and select the supplied vscode-qube-<version>.vsix file. The command-line equivalent is:

    code --install-extension vscode-qube-<version>.vsix
    

Start with QubeScript

Save a text file as survey.qube, for example:

@survey feedback @language en @mode cawi

@question comment text
What would you like to tell us?

@outcome complete
Thank you.

Check the Problems panel, then run QUBE: Run Interview from the Command Palette. The interview opens beside the source. Revise the script and test its questions and routes before uploading it.

QubeScript is also named Qube Survey Script in the language selector and existing documentation. Its editor support includes:

  • Parser-backed syntax and semantic diagnostics, with the producing pass identified in each finding.
  • Semantic highlighting, outline and navigator for questions, pages, sections, repeats, routes, options, structs, outcomes and suspensions.
  • Context-sensitive completion for directives, option domains and routes.
  • Hover, definition, references and rename for declared entities.
  • Local interview execution through the QSS runtime.

Highlighting and structure remain available while the source is incomplete. QubeScript and Odin keep independent language semantics; the workbench selects the runtime belonging to the file's language.

Existing Odin scripts

Odin support includes parser diagnostics, question and variable references, data-position findings, language-section coverage and local interview testing. Repeated findings are grouped in the Problems panel.

ODIN source tools include:

  • Fix / Unfix Data Positions — absolute or relative positions.
  • Renumber Questions — configurable start, step and optional question range.
  • Extract Translation Section — remove commands for translation.
  • Append Language Section — append translated content.

These features do not establish full NIPO runtime compatibility. In particular, *MERGE filenames can link to a unique matching .odin file in the workspace, but that navigation does not mean merged questionnaires execute in the runtime. Test the specific behavior your questionnaire needs.

The extension claims .odin, leaving legacy .q files to an explicit workspace association:

{ "files.associations": { "*.q": "odin" } }

AI authoring and MCP

The pre-release includes QUBE Survey MCP and makes it available through VS Code's native MCP support. An MCP-capable AI assistant can use its parser-backed qss.* and odin.* tools while editing the same local script files. QubeScript tools include qss.check, qss.symbols, qss.guide.get and qss.reference.search; Odin has its own capability set.

  1. Open a trusted workspace and run QUBE: Show AI Setup. It reports whether the bundled server is available and explains missing files, an unsupported editor or a disabled setting.
  2. Run MCP: List Servers, select QUBE Survey, and start it. VS Code manages the process and any tool permissions.
  3. In your MCP-capable AI chat, select the QUBE Survey tools. Ask the assistant to consult the QubeScript guide, edit the script and check the complete source.
  4. Review its changes, then run QUBE: Run Interview to test questions and routes against the intended behavior.

The server uses the extension host's Node runtime, so this VS Code setup needs neither a QUBE source checkout nor a separate Node installation. QUBE Survey sign-in is also unnecessary for local MCP checks. Configure the AI assistant and its model separately; its model usage follows that client's pricing.

Set qube.ai.mcp.enabled to false in User Settings to remove the server from discovery. The extension withholds MCP definitions in untrusted workspaces. It registers the server through the native provider API rather than modifying workspace or user MCP configuration files.

For another MCP client, use the separately packaged Survey MCP distribution and follow the MCP setup guide.

Use qss.check to check generated QubeScript and test its behavior in the local workbench. The hosted ticket Agent currently handles Odin; the QubeScript MCP tools do not establish a hosted QubeScript Agent workflow.

Optional MCP Fieldwork reads — local candidate

The Workbench can connect the same MCP to your current QUBE Test session as part of its pre-release capabilities. This bridge is not in the older public Odin extension 0.7.12. Local script tools require neither this access nor a hosted connection.

  1. Open a trusted workspace. Keep qube.qubeSurvey.baseUrl at exactly https://test.qubesurvey.com; other endpoints and base paths do not support this bridge.
  2. Run QUBE: Allow MCP Fieldwork Reads. Review the confirmation: authorized aggregate progress, quota conditions/counts and setup history can reach your assistant and its configured model.
  3. Choose Allow reads. The command enables the application setting qube.ai.mcp.fieldwork.enabled, then uses the existing browser device authorization if this endpoint has no saved connection. Cancelled or failed authorization grants no Fieldwork consent.
  4. Refresh QUBE Survey tools in your AI client. Call fieldwork.accounts.list with {}, choose the intended Account by its returned ID, then call fieldwork.runs.list; choose a returned Run UUID for fieldwork.runs.get, fieldwork.quotas.get or fieldwork.quota_setup.get. Ask for the current counts and original setup separately.

Account IDs are a bare UUID or billing_<UUID>. Copy the complete ID, including its prefix and letter case; Run IDs remain UUIDs. Account discovery returns only IDs and display names, which may be identical. It selects nothing and confers no access to a Run. More than 100 Accounts returns an unavailable result.

The setting defaults to false. It is a ceiling, not consent: setting it to true alone enables no reads. Allow applies to this editor window and its current connection; another window needs its own confirmation. Progress reads use existing scoped permissions. Quota and setup reads require current paid owner/editor access; View Run progress alone does not grant those reads. API availability still depends on the deployed environment. An unavailable response is not a zero count or an empty quota table.

Run QUBE: Disable MCP Fieldwork Reads to revoke the local bridge while keeping local script tools. Disconnect, a changed destination or credential, and window reload also invalidate access; run Allow again for the intended connection. The editor keeps the ordinary session bearer in SecretStorage and host memory. The MCP child receives only a revocable loopback capability. Disable does not claim server-wide session revocation or recall data already delivered to the assistant.

These five tools cannot mutate Runs, edit targets, recover setup, send messages, read individual answers or download exports. Use the reviewed human Fieldwork UI for changes. This candidate is not hosted MCP OAuth, a standalone sign-in flow or qualification of every assistant client or platform.

QUBE Survey online

The default hosted destination is QUBE Test, the shared Odin/QubeScript testing workspace. Online commands use browser device authorization and store the token in VS Code's SecretStorage. Connections and remembered Script selections belong to the configured service URL, including its base path. Changing that URL requires a connection for the new destination; a token from an older release with no recorded destination is not reused. Run an online command to authorize again.

  • Open in QUBE Survey uploads the current source as an immutable version to the selected authorized project and opens the configured hosted debugger. Both languages are supported by this upload command.
  • Tickets lists active tickets from authorized projects.
  • Reproduce Ticket opens the exact reported source read-only and restores its captured journey in the local Odin workbench.
  • Mark Ticket Fixed with Current Script uploads an Odin candidate version and marks the ticket fixed for human verification. It requires an Owner or Editor role and hosted write permission.

Disconnect from QUBE Survey removes the current destination's local connection. It also requests server sign-out; the result message distinguishes local removal from accepted or unconfirmed remote sign-out. Local removal alone does not prove that the server revoked the session. An upload already sent to the server may still exist if you change the connection while it is running.

Commands

Commands use the QUBE: prefix in the Command Palette. Commands marked (online) require a QUBE Survey connection.

Command Applies to
QUBE: Run Interview Both
QUBE: Show AI Setup Both
QUBE: Allow MCP Fieldwork Reads (candidate, online) Both
QUBE: Disable MCP Fieldwork Reads (candidate) Both
QUBE: Refresh Questionnaire Navigator Both
QUBE: Open in QUBE Survey (online) Both
QUBE: Connect or Refresh Tickets (online) Both
QUBE: Reproduce Ticket (online) ODIN
QUBE: Mark Ticket Fixed with Current Script (online) ODIN
QUBE: Fix / Unfix ODIN Data Positions ODIN
QUBE: Renumber ODIN Questions… ODIN
QUBE: Extract ODIN Translation Section ODIN
QUBE: Append ODIN Language Section… ODIN

Settings

Setting Default Meaning
qube.ai.mcp.enabled true Make the bundled MCP available through VS Code in trusted workspaces; configured in User Settings
qube.ai.mcp.fieldwork.enabled false Candidate: permit explicit per-window Fieldwork consent; enabling the setting alone grants no access
qube.qubeSurvey.baseUrl https://test.qubesurvey.com Hosted service URL; explicit URL overrides are preserved
odin.diagnostics.enable true Parse and report problems
odin.diagnostics.showWarnings true Include warnings and infos
odin.diagnostics.strict true CATI-safe strict mode: unfixed positions and undefined variables become errors
odin.diagnostics.unfixedPositions true Group unfixed-position findings
odin.renumber.defaultStart 10 Default start for Renumber Questions
odin.renumber.defaultStep 10 Default increment for Renumber Questions

The deprecated odin.qubeSurvey.baseUrl also defaults to Test. ODIN language settings remain under odin.*.

Privacy

Editing, diagnostics, transforms, local interview execution, replay and case history inspection run locally. The extension sends no telemetry.

Online commands connect to the configured hosted service. Open in QUBE Survey and Mark Ticket Fixed upload the current editor source; Tickets reads authorized project, ticket, reported-source and reproduction data. Local interview answers and case history are not otherwise uploaded by the extension. The bundled MCP checks the source supplied to its tools locally. An AI assistant can send that source to its configured model and has its own file access, connection and data handling settings. Local MCP tools require no hosted connection. With explicit candidate Fieldwork consent, the editor reads its matching saved connection and keeps the bearer in the host; the child receives only a revocable local capability. Read results can reach the assistant. Its provider's data handling still applies.

Learn more at qubesurvey.com.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft