Tools¶
Tools are the interfaces available to the candidate or learner inside the sandbox. You configure them in the tools section of sandbox.yaml.
The name field of each tool becomes the tab label the candidate sees. Name tools after what they connect to, not what they are — cp and worker are clearer tabs than terminal1 and terminal2.
Layout¶
The instructions tool always renders on the left as a fixed panel. All other tools appear as switchable tabs on the right. ui.defaultTool controls which tab opens first.
The candidate can collapse the instructions panel to give the active tool more space.
Terminal¶
Opens a shell connection to a VM. The candidate sees a prompt in the form user@hostname:~$, where user is targetUser and hostname is targetHost. The connection reconnects automatically if it drops.
- name: cp
terminal:
version: v1
targetHost: cp
targetUser: tux
For multi-VM sandboxes, add one terminal per VM. Each becomes its own tab.
- name: cp
terminal:
version: v1
targetHost: cp
targetUser: tux
- name: worker
terminal:
version: v1
targetHost: worker
targetUser: tux
IDE¶
Opens VS Code for the Web connected to a VM via SSHFS. The file explorer shows the VM's filesystem rooted at workspaceDir. The candidate can create, edit, and save files directly on the VM.
- name: cp-editor
ide:
version: v1
targetHost: cp
targetUser: tux
workspaceDir: /home/tux
workspaceDir defaults to the user's home directory if omitted.
Browser¶
Opens a browser pointed at a URL running inside the sandbox. Use the VM name as the hostname in startingURL — the platform routes it to the correct VM.
- name: browser
browser:
version: v1
startingURL: "http://cp:8080"
kioskMode: false
Set kioskMode: true to hide the browser toolbar and show only the web content.
Instructions¶
Renders a markdown file as a MkDocs site in the left panel. This is what the candidate reads. Code blocks get copy-to-clipboard buttons automatically. MkDocs admonitions render with full styling.
- name: instructions
instructions:
version: v1
sourcePath: task.en.md
sourcePath is relative to the sandbox root. For labs, this is typically instructions.md.
Preview the instructions locally at any time:
sandbox instructions