Knot for VS Code
Manage Knot cloud development environments directly from VS Code — across multiple servers.
Features
- Multiple servers — connect to any number of Knot servers. Each shows as a top-level node in the sidebar; name them or let the address be shown.
- List spaces grouped under their server, with live status (running / starting / stopped / deleting) and animated spinners while transitioning.
- Grouped by stack — spaces belonging to a stack are nested under a collapsible stack node; standalone spaces sit at the root.
- Space lifecycle: start, stop, and restart spaces with inline toolbar buttons or the context menu.
- Stack lifecycle: create a stack from a stack definition, plus start, stop, restart, and delete an entire stack from the stack node.
- Create & delete spaces by picking a template and naming it (with an optional start-on-create prompt). Custom fields defined by the template are prompted for at create time.
- Native web terminal — open an interactive terminal into any running space (per-server credentials), bridged to Knot's web-terminal WebSocket.
- Run commands in a space and view the output in an editor.
- Open in VSCode — open a running, SSH-enabled space in a new VSCode window via Remote-SSH (the extension wires up
~/.ssh/config and uses the knot CLI as the SSH proxy).
- Open code-server or the space's web page in your browser.
- Web ports — running spaces that expose HTTP ports expand to show each dev URL (including alt-name aliases); click one to open it in your browser.
- File storage — browse a server's file storage buckets in a Files view, open files, and add a bucket or folder to the workspace to edit it in place; rename and delete work too. Files added, changed or deleted elsewhere (the web interface,
knot file, S3) show up in the view and the Explorer straight away, and open editors reload. Needs file storage enabled on the server (knot 0.37.0 or later); servers without it are left out of the view.
- Live updates — while a Knot view is visible, the extension follows each server's event stream, so space, pool and file changes appear as they happen. Polling backs it up: every
knot.refreshInterval seconds while a server's stream is down, and four times less often while it is open. With both views hidden nothing is streamed or polled (unless a bucket is in the workspace or one of its files is open), and showing a view catches up; Refresh reloads on demand.
Getting started
- Click the Knot icon in the activity bar.
- Run Knot: Add Server (the Add Server button in the view title, or the Command Palette).
- Enter the server URL, an optional display name, and an API token.
- Create a token in the Knot web UI.
- Spaces for that server appear under its node. Add as many servers as you like.
Requirements
- A running knot server — see the quick start.
- An API token — create one in the knot web UI (Profile → Tokens) or via the CLI (
knot admin).
- For Open in VSCode (Remote-SSH):
- The knot CLI installed and on your
PATH (or set knot.cliPath to its location). The extension calls it as the SSH ProxyCommand.
- The Remote - SSH extension (
ms-vscode-remote.remote-ssh). The plugin warns and offers to install it if missing.
When you use Open in VSCode, the extension writes host entries straight into ~/.ssh/config, grouped under alias markers (#===KNOT-START (KNOT_VSCODE_<server>)===) — the same convention as knot ssh-config update, just under a KNOT_VSCODE_* alias so the two never clash.
Managing servers
| Command |
Description |
Knot: Add Server |
Add a server (address, optional name, token) |
Knot: Edit Server |
Change a server's address, name, or token |
Knot: Remove Server |
Remove a server |
These are also available on a server node's context menu (right-click).
Commands
| Command |
Description |
Knot: Refresh |
Reload all servers |
Knot: Create Space |
New space from a template (picks the server, or use a server node) |
Knot: Start / Stop / Restart |
Space lifecycle control |
Knot: Start / Stop / Restart Stack |
Stack lifecycle control |
Knot: Create Stack |
Instantiate a stack from a stack definition (per server) |
Knot: Delete Stack |
Delete a stack and all its spaces |
Knot: Delete Space |
Delete a space |
Knot: Open Terminal |
Interactive terminal in the space |
Knot: Run Command in Space |
Run a one-off command |
Knot: Open Code-Server |
Open code-server in a browser |
Knot: Open in Browser |
Open the space page |
Knot: Open in VSCode |
Open the space in a new VSCode window via Remote-SSH |
Knot: Refresh Files |
Reload the Files view |
Knot: Add to Workspace |
Add a bucket or folder to the workspace (Files view) |
Knot: Rename / Knot: Delete |
Rename or delete a file or folder (Files view) |
Configuration
| Setting |
Default |
Description |
knot.autoRefresh |
true |
Poll for changes, as a backup to the server's live updates |
knot.refreshInterval |
15 |
Polling interval in seconds (four times longer while live updates are connected) |
knot.terminalShell |
"bash" |
Default shell for new terminals |
knot.insecureSkipVerify |
false |
Default skip TLS verification option when adding a server (each server keeps its own) |
knot.serverUrl |
"" |
Legacy single-server URL, used only to migrate to the multi-server list |
License
Apache-2.0
| |