Workspace Overview
The NetStacks Workspace adds a project file tree, a Monaco code editor with network-aware languages, integrated Git, and built-in viewers alongside your live device sessions.
Overview
The Workspace is a project-rooted environment that lives next to your terminal sessions. Instead of switching to a separate editor to work on scripts, configuration templates, runbooks, or notes, you open a folder as a Workspace and get a file tree, a Monaco code editor, network-aware language tooling, Git, and document viewers — without leaving NetStacks.
Everything in the Workspace runs through the local Agent on your machine. Files are read and written locally; nothing about your Workspace contents is sent anywhere unless you explicitly invoke an AI action or push to a Git remote you configured.
What the Workspace Includes
- File explorer — browse the project tree, create folders, rename, multi-select, and bulk-delete.
- Code editor — a Monaco-based editor with multi-tab editing, syntax highlighting, and inline document viewers.
- Language support — Python diagnostics and completion via the built-in Pyrefly LSP, plus YANG, XML, JSON, and a Network CLI language for Cisco and Junos config backups.
- Git integration — status, diff, stage, commit, branch, push/pull, plus a commit history view and per-line blame.
- Image paste — paste or drop a screenshot and the Workspace saves it, then inserts the saved file path into the terminal input.
Pasting an image does not insert an [Image#N] token. The Workspace writes the screenshot to a file and types the saved path into the active terminal input with a trailing space — no Enter is sent. CLI tools like Claude Code detect image paths natively; in a plain shell the path is ready to drop into a command. See Image paste for details.
Languages and Viewers
The editor picks a language from the file extension. Network-focused languages are registered on top of Monaco's built-ins:
python(.py)- Diagnostics and completion via the built-in Pyrefly LSP, which is downloaded and installed on demand the first time you open a Python file. See the limitation note below.
yang(.yang)- YANG syntax highlighting plus an indent-based format provider.
netcli(Network CLI)- A dedicated language for Cisco and Junos configuration backups, so saved device configs highlight cleanly.
xml,json,yaml- XML adds an xml-formatter format provider; JSON uses Monaco's bundled worker for schema validation and formatting; YAML highlights from its extension.
Beyond plain editing, the Workspace ships inline viewers that open from the editor tab or the Git panel:
- Markdown preview — toggle between editing and a rendered preview for
.mdand.markdownfiles. - Image viewer — open image files directly in a tab.
- Diff viewer — side-by-side changes for a file against its committed version.
- Blame — per-line authorship for a tracked file.
- Git history — browse the commit log for the Workspace repository.
The built-in Pyrefly Python LSP is available in the standalone NetStacks Terminal. It is not available in the Enterprise / Controller build (the seat-licensed tier), where the editor shows a banner indicating Python language features are unavailable. YANG, XML, JSON, and Network CLI highlighting work in both builds.
Opening a Workspace
Open any local directory as a Workspace from the Workspace panel. The directory becomes the Workspace root: the file explorer is scoped to it, the code editor saves within it, and Git operations act on the repository it belongs to.
A typical Workspace for a network team holds templates, rendered outputs, scripts, and notes side by side:
network-ops/
templates/
base-bgp.j2 # Jinja2 -> rendered as HTML
interfaces.j2
configs/
edge1-router.cfg # Network CLI highlighting
edge2-router.cfg
scripts/
audit_neighbors.py # Python (Pyrefly LSP)
data/
sites.yaml
devices.json
runbooks/
failover.md # Markdown previewA Jinja2 template in templates/ renders with NetStacks template variables. For example:
router bgp {{ local_asn }}
{% for peer in bgp_peers %}
neighbor {{ peer.ip }} remote-as {{ peer.asn }}
neighbor {{ peer.ip }} description {{ peer.name }}
{% endfor %}The Workspace is local-first. The file tree, editor, viewers, and Git actions are served by the on-device Agent over loopback — the same trust model described on the security page.
Q&A
- Q: Is the Workspace separate from my terminal sessions?
- A: No — it runs in the same app, side by side with your live sessions, so you can edit a script and run it on a device without context-switching.
- Q: Does the Workspace upload my files anywhere?
- A: No. Files stay local. Content only leaves your machine if you send it to an AI provider you configured or push to a Git remote you set up.
- Q: When I paste a screenshot, what gets inserted into the terminal?
- A: The Workspace saves the image to a file and types its path into the terminal input with a trailing space. No
[Image#N]token is used and no Enter is sent. - Q: Is Python autocomplete available in every build?
- A: The built-in Pyrefly Python LSP is in the standalone Terminal build. It is not available in the Enterprise / Controller build; other languages (YANG, XML, JSON, Network CLI) work in both.
- Q: Can I preview Markdown runbooks?
- A: Yes. Open a
.mdor.markdownfile and toggle between the editor and a rendered preview.
Related Features
- Workspace: Code editor — tabs, language detection, and runnable files.
- Workspace: Language support — Pyrefly, YANG, XML, and the LSP system in depth.
- Workspace: Git — diff, blame, history, and remotes.
- Workspace: Image paste — how screenshots are saved and referenced.
- Terminal: Overview — the device-session side of NetStacks.
- AI: Modes — use Workspace files and screenshots as AI context.