Skip to content

You are viewing documentation for Instruqt 2.0 Labs which is in Beta currently. Official release date - 29 September, 2026. For Tracks documentation, please visit docs.instruqt.com.

Overview


Instruqt labs can be managed in two ways: through the user interface (UI flow) or directly in the lab’s code repository (Code flow). Editing via code offers the full flexibility of HCL, while the UI provides a user-friendly experience for quick access to common settings.

Both methods are fully synchronized and version controlled — changes made in one are immediately reflected in the other. You can review the complete history of changes in the Version Control section.

When you open a lab, it starts in read-only mode. To make changes, click the Edit mode button in the top bar — this button is available on every page of the lab editing UI.

Once in edit mode, changes you add on each page stay unpublished until you explicitly publish them. See Editing & Publishing for the full save-and-publish lifecycle, and Version Control for how published changes relate to branches and commits.

Most fields can hold either a static value or an HCL expression, such as a reference to a variable, local, or another resource. Hover or focus a field in edit mode to reveal a Literal / Expression toggle next to its label.

Literal is the default: you type or pick a static value using the field’s normal control (text input, select, and so on).

Switching to Expression swaps the control for an inline HCL expression editor, marked with an ƒx prefix, where you can write the expression directly, with autocomplete for available references. Switching back to Literal restores the field’s normal control.

Outside edit mode, a field already set to an expression shows as a read-only badge with the expression text instead of the toggle.

UI ExampleHCL Example

The Name field is greyed-out and can’t be edited. A short note explains that its value is set by an expression in code.

# compute the value using an expression
resource "container" "web_server" {
name = "${variable.default_name}-my-name"
}

The Name field is editable and shows the static value my-container-name.

# use static value
resource "container" "web_server" {
name = "my-container-name"
}

The Instruqt interface has its own appearance mode — Light, Dark, or System — that changes how the Instruqt UI looks to you as you work. You’ll find it in the bottom-left corner, under your user settings, as Appearance mode.

This is separate from the lab’s Theme setting (Modern dark or Original) on the Details page. Appearance mode controls how the Instruqt UI looks to you; the lab Theme controls how the lab looks to learners when they play it. Changing one has no effect on the other.

Open the command center from the Search box in the top bar, or with Cmd-K (macOS) / Ctrl-K (Windows / Linux). It’s a command palette with a search field and a few sections:

  • Quick actions: context-specific shortcuts for the page you’re on.
  • Navigation: jump straight to any page of the editor — Overview, Details, Dynamic values, Instructions, Sandbox, Activities, Tabs, Layouts, Files, and Project settings.
  • Sandboxes: create a new sandbox resource (container, network, virtual machine, exec, and so on, including cloud provider accounts).
  • Tabs: create a new tab (service, note, terminal, editor, external website, cloud credentials).

Use it to reach any resource or piece of content, or to create something new, without navigating the menus by hand.

The editor surfaces contextual help throughout the UI as tooltips. Hover the info icons and controls to see short explanations, many of which link out to the relevant documentation for more detail.