Workspace Templates
Define reusable Remote Workspace configurations — coding agents, dependencies, network policy, and a setup script — from the Kimchi console.
A workspace template is a reusable configuration for creating Remote Workspaces. You define the coding agents, dependencies, network policy, and an optional setup script once, and every workspace provisioned from the template gets the same environment.
Templates help your team standardize workspaces: the same toolchain, the same resource sizing, and the same security posture for everyone, without each person configuring their workspace by hand.
When a new Remote Workspace is created for your organization, the workspace is provisioned from a template — the template decides the resources it gets, the tools installed, and the network policy applied. Templates are managed from the Kimchi console, and every change to them is recorded in the Audit Log.
Open the Workspace Templates page
In the Kimchi console, open the Workspace Templates page. It lives in the Remote group of the sidebar, next to Remote Sessions and Remote Credentials.
The page lists all templates in your organization:
| Column | Shows |
|---|---|
| Name | Template name, with its description underneath |
| Resources | CPU cores, RAM, and storage the template requests for each workspace |
| Dependencies | Number of dependencies, with a hover tooltip listing them |
| Agents | Icons of the coding agents installed in workspaces created from the template |
| Network access | Short summary of the egress policy, for example Unrestricted, Deny all, or Allow-list (3 rules) |
| Updated | When the template was last changed |
Use the ⋯ menu on a row to Edit or Delete the template. Which actions are available depends on your role — see User Roles.
Create a template
Open the editor
On the Workspace Templates page, select New template.
Name your template
Enter a Name (required) and an optional Description.
The name must use lowercase letters, digits, and dashes — for example python-data-science or team-backend. The name identifies the template and cannot be changed after creation.
Configure the template
Complete the sections below: Coding agents, Dependencies, Network policy, and the optional Setup script.
Create the template
Select Create template. The template appears in the list and is ready for new workspaces.
Coding agents
Choose which agent CLIs are preinstalled in every workspace created from the template:
| Agent | Availability | Notes |
|---|---|---|
| Kimchi | Always installed | The default agent — a Default badge marks it as always on |
| Claude Code | Optional | Anthropic's agentic CLI for terminal-native coding |
| Codex | Optional | OpenAI's coding agent CLI |
Enable or disable Claude Code and Codex with their switches. Agent CLIs are installed into the workspace alongside Kimchi, so sessions created from the template can use them immediately.
Dependencies
Dependencies are packages installed when a workspace created from the template starts. They are passed to the workspace agent through the WORKSPACE_DEPENDENCIES environment variable.
Add a dependency by selecting a curated package from the catalog or typing a free-form name:
| Package | Catalog name | Curated versions |
|---|---|---|
| Node.js | node | 24, 22, 20 |
| Python | python | 3.13, 3.12, 3.11 |
| Go | go | 1.25, 1.24 |
| Bun | bun | 1.2, 1.1 |
| uv | uv | 0.8, 0.7, 0.5 |
| kubectl | kubectl | 1.34, 1.33, 1.32 |
| Helm | helm | 3.18, 3.17 |
| Terraform | terraform | 1.13, 1.12 |
| jq | jq | 1.8, 1.7 |
For catalog packages, pick Latest or a curated version from the dropdown. Free-form entries use the devkit grammar [registry:]tool[@version] — for example aws-cli, aws-cli@2, or npm:[email protected]. Scoped packages keep the full @scope/name string.
Use lowercase letters, digits, and -_. in dependency names.
Network policy
The network policy controls which external destinations workspaces created from the template can reach. Choose one of four modes:
| Mode | Workspaces can reach |
|---|---|
| Unrestricted | Any external destination |
| Deny all egress | No external destinations |
| Allow only listed destinations | Only the destinations on your list |
| Allow all except listed destinations | Everything except the destinations on your list |
For the two list-based modes, add destinations — each rule is a domain or a CIDR block, with optional ports:
| Field | Examples | Notes |
|---|---|---|
| Domain | github.com, *.example.com | Wildcard subdomains are supported |
| CIDR | 10.0.0.0/8, 192.168.1.0/24 | IPv4 blocks from /0 to /32 |
| Ports | 443, 443,8443 | Optional, comma-separated; leave empty to allow all ports |
The policy applies to outbound traffic from the workspace. When a list is empty, "Allow only listed destinations" blocks everything and "Allow all except listed destinations" allows everything.
Setup script
A workspace template can carry a setup script — an optional bash script that runs when a workspace created from the template is provisioned, after its dependencies are installed.
#!/bin/bash
npm installThe script is stored as written: whitespace and formatting are preserved verbatim. Workspaces created from the template run it at boot, so you can tailor the environment for your team — install a project, pin a directory layout, or configure tools that are not covered by dependencies.
The setup script is stored and returned as plain text. Never put API keys or other secrets in it — use the platform's secrets mechanisms instead.
A script can be up to 64 KiB. Scripts that exceed the limit are rejected when the template is saved. A template without a setup script provisions workspaces without running one.
Edit a template
Select Edit from the row's ⋯ menu. Change the description, dependencies, agents, network policy, or setup script, then select Save changes.
The template name is immutable and cannot be edited — it identifies the template everywhere it is referenced.
Delete a template
Select Delete from the row's ⋯ menu and confirm in the dialog. Deleted templates can no longer be used for new workspaces. The deletion is recorded in the Audit Log with the user who performed it.
See also
- Remote Workspaces — Workspaces and sessions,
/teleport, and Remote Execution. - Web IDE — A full browser-based IDE for your Remote Workspace.
- Audit Log — Every change to your workspaces and workspace templates, recorded with who made it and what changed.
- User Roles — Manage who can view and change workspace templates.
Updated about 3 hours ago