> For the complete documentation index, see [llms.txt](https://docs.vex-nx.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vex-nx.com/labs/operate-and-consoles.md).

# Operate and consoles

![Operate mode with running nodes](https://1807546539-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhgHCHWL3861o2DBW53aA%2Fuploads%2FD5Bizg5UKcvrUTP0jHMy%2Fve20261112v5-tutorial-operate-start.png?alt=media)

GUI-guided tutorial for Start / Stop and the HTML5 console dock. Packet capture: [Packet capture](/labs/packet-capture.md). Links: [Link inspector and impairment](/labs/link-inspector-and-impairment.md).

## Goal

Start and stop nodes, open the docked and maximized console, then use SecureCRT/PuTTY or Wipe when needed.

## Why Operate exists

Design does not boot guests. Operate is power control and consoles. Switch modes on the workspace bar before you Start.

## GUI tutorial - console panel

### Step 1 - Switch to Operate and Start

![Operate Start](https://1807546539-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhgHCHWL3861o2DBW53aA%2Fuploads%2FD5Bizg5UKcvrUTP0jHMy%2Fve20261112v5-tutorial-operate-start.png?alt=media)

1. Open the lab -> click **Operate**
2. Click **Start all** (or right-click selected nodes -> Start)
3. Wait until status is running

Prefer Stop/Start over Wipe for slow NOS guests after first boot. Before Start all, check **Home -> Launch Budget**.

|                  |                                              |
| ---------------- | -------------------------------------------- |
| **What you see** | Operate mode; nodes transitioning to running |
| **Expected**     | Status shows running (or clear error toast)  |

### Step 2 - Open Terminal (docked)

![Console docked](https://1807546539-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhgHCHWL3861o2DBW53aA%2Fuploads%2FGA4RJbvlQLsjeXNNnfbT%2Fve20261112v5-tutorial-console-docked.png?alt=media)

1. Select a running node
2. Click **Terminal** / **Console** on the toolbar, or right-click -> Console
3. The **bottom console dock** opens with minimal chrome

|                  |                                     |
| ---------------- | ----------------------------------- |
| **What you see** | Docked terminal under the canvas    |
| **Expected**     | Prompt or boot output for that node |

Serial for most routers/firewalls; VNC for graphical desktops; Docker shell for containers. On FRR Docker, run `vtysh` for the routing CLI.

### Step 3 - Maximize the console

![Console maximized](https://1807546539-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhgHCHWL3861o2DBW53aA%2Fuploads%2F5Oj0P58HXHLN5FcLiTda%2Fve20261112v5-tutorial-console-max.png?alt=media)

1. On the dock chrome, click **Maximize** / Expand
2. Use **Copy**, **Paste**, **Clear**, font size, History, Settings as offered
3. Multi-node: open additional console tabs when available

|                  |                                                   |
| ---------------- | ------------------------------------------------- |
| **What you see** | Full console chrome                               |
| **Expected**     | Terminal fills the dock; advanced actions visible |

### Step 4 - Restore docked view

1. Click **Minimize** / Restore / Dock
2. Canvas returns as the primary workspace with a slim console strip

### Step 5 - Captures from Operate

1. Select a **link**
2. Open **Captures** / Capture on the toolbar
3. Follow [Packet capture](/labs/packet-capture.md) for Start / Stop / Download

### Step 6 - Multiline paste tip

Use **Command to send** with Ctrl+Enter. Set line ending (CR for Cisco/serial) and inter-line delay when pasting configs.

## Recipe: ScriptPad as startup-config

ScriptPad (active profile) is the intended guest startup-config for **all** QEMU / IOL / Dynamips / Docker nodes that support inject.

1. **Save** + **Activate** the profile
2. **Wipe** then **Start** (first apply / force re-apply)
3. Wait - VEX-NX attaches day-0 media when the template supports it, then verifies hostname and falls back to live CLI inject if day-0 missed
4. Check node inspector **Config apply** (`ok` / `injected` / `day0-miss` / `inject-failed`)

Stop/Start alone keeps the guest disk and does not re-read ScriptPad unless a prior inject failure marked the node dirty.

QEMU serial uses a **multiplexer**: HTML5 Terminal, SecureCRT, and ScriptPad inject can share the same UART.

### Nexus / NX-OS

On Wipe + Start with ScriptPad text, VEX-NX attaches day-0 media (`nxos_config.txt` ISO / CVAC). Prefer that over serial paste.

## Recipe: SecureCRT or PuTTY

Expected path after one Client Pack install: right-click a running node -> **Open in SecureCRT** or **Open in PuTTY** -> the browser hands off `vexnx-console://`.

1. Download the **Windows Client Pack** once (Terminal menu -> Download Windows Client Pack), unzip, run `install.cmd`
2. Right-click a running node -> **Open in SecureCRT** or **Open in PuTTY**
3. If the browser asks to open VEX-NX Console, choose Allow / Open
4. Helper talks to the appliance on TCP **8022**, then to that node's serial/docker console

**connect.cmd** from the UI is **fallback only**. Prefer repairing the Client Pack.

**After an appliance update** that refreshes the helper, re-download the Client Pack and run `install.cmd` (or `install.cmd -Repair`).

### Repair / uninstall helper

* `install.cmd -Repair` - remove registry + helper folder, then reinstall
* `install.cmd -Uninstall` - remove registry + helper folder
* `install.cmd -Uninstall -ClearEnv` - also clear user env `VEXNX_SECURECRT` / `VEXNX_PUTTY` / `VEXNX_CLIENT_SEARCH_ROOTS`

Confirm registry after install:

`Get-ItemProperty HKCU:\Software\Classes\vexnx-console\shell\open\command`

### Many nodes at once

Operate -> **Open all in SecureCRT/PuTTY** staggers launches. Allow pop-ups for the appliance origin if blocked.

Optional overrides: `VEXNX_SECURECRT`, `VEXNX_PUTTY`, `VEXNX_CLIENT_SEARCH_ROOTS`.

### If SecureCRT says invalid port / hostname required

Run `install.cmd -Repair` from a fresh Client Pack. Check `%LOCALAPPDATA%\VEX-NX\console-helper\last-launch.log`.

### If SecureCRT shows dial tcp connection refused

**Stop then Start** the node and open SecureCRT again. See Troubleshooting.

## Recipe: Wipe (reset disk)

1. Stop if required by the UI
2. Wipe the node (or **Wipe all**)
3. On supported platforms, VEX-NX tries to save running-config into the **active ScriptPad profile** before wipe
4. Start again and confirm the active profile injected

**Caution:** Wipe is destructive. Use when the guest is dirty, not as a daily Stop.

## Recipe: Open all consoles

Operate -> **More** -> **Open all in Terminal**. Prefer selected nodes on large labs.

## Admin: Seed Docker images

Operate -> **More** -> **Seed Docker images** (or `sudo vexnx-seed-docker`) when Guided Lab Start fails on missing FOSS images.

## Expected result

* Nodes reach running
* Docked and maximized HTML5 console both work
* Stop frees capacity on Home Launch Budget

## If it fails

* Missing disk image -> Images -> Import / Library bind
* Docker image missing -> seed steps above
* KVM off -> nested virt / Infrastructure (System requirements)
* Quota exceeded -> Administration quotas or stop other labs

## Related

* [Packet capture](/labs/packet-capture.md)
* [Link inspector and impairment](/labs/link-inspector-and-impairment.md)
* [Traffic Lens](/labs/traffic-lens.md)
* Toolbars and More menu
* [Design mode](/labs/design-mode.md)
* Lab default credentials


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.vex-nx.com/labs/operate-and-consoles.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
