Remote Workspaces
Use cloud-based workspaces to run Kimchi Coding sessions and approved plans remotely, then reconnect from the CLI, console, Web IDE, or VS Code.
Remote Workspaces are centralized, cloud-based sandboxes for your Kimchi Coding work. They give you a persistent place to run sessions when you close your laptop, switch machines, or need to leave work running.
Each user can have one Remote Workspace. It is provisioned with 2 CPUs, 8 GB of RAM, and 20 GB of disk space.
A workspace can contain multiple agent sessions. You can start work locally and hand an in-progress session to the cloud with /teleport, or use Start execution in cloud to run an approved plan remotely. Reconnect from the CLI, the Kimchi console, the Web IDE, or VS Code when you are ready to continue.
Use Remote Workspaces when a task is too long to babysit, when you need to switch devices, or when you would rather not be tied to one terminal.
Prerequisites
/teleportand/remote-sessionswere added in Kimchi TUI v0.1.52. Older builds do not have these commands. Verify your version withkimchi --version. If you are on an earlier release, runkimchi updateto upgrade.
/teleportis not available on Windows. Remote Workspaces currently work only on macOS and Linux.
Kimchi migrates the tools from your local environment to the Remote Workspace. The remote workspace agent also has its own DevKit and can install missing tools and dependencies when the task requires them.
Other local configuration is not copied automatically. Skills, MCP servers, custom hooks, multi-model orchestration settings, and configuration stored under
~/.config/kimchi/,~/.pi/agent/skills/, or~/.claude/skills/remain on your local machine./teleportsyncs files inside your project's working directory.If your team keeps configuration in the repository—for example, a committed
.kimchi/directory or project-level skills tracked in Git—those files are included with the project. Sign in with/loginin the Remote Workspace and configure any services that are not available through the project or migrated tools.
Before you start
- Start a Kimchi Coding session in your local
kimchiCLI or inside a Ferment plan. - Use a Remote Workspace for work that will take long enough that you may close your laptop, switch context, or return later.
- Ensure that the project files you need are in your working directory before using
/teleport.
Workspaces and sessions
A workspace is the cloud sandbox where your work runs. A session is one agent run inside that workspace.
A single workspace can host multiple sessions at the same time. Tab between them with Ctrl+B c, Ctrl+B n, or Ctrl+B p, or browse all sessions in a workspace with /remote-sessions.
Group related sessions in the same workspace when they share a project or repository. For example, you can run different investigations in parallel, open a second session to inspect a failing build, or hand a task from one agent to another.
Sessions in the same workspace share files and workspace state. Because each user has one workspace, reuse it for related work instead of treating each session as a separate sandbox.
Remote Execution
Remote Execution runs an approved plan in your Remote Workspace instead of on your local machine. When Kimchi asks you to approve a plan or To-Do, select Execute the plan in a remote workspace.
Kimchi starts the approved work remotely, so the agent can continue after you close your laptop, leave the local session, or move to another device.
Create a plan or To-Do
Start a Kimchi Coding session and create a plan or To-Do as usual.
Approve cloud execution
When Kimchi shows the plan approval menu, select Start execution in cloud.
Kimchi runs the approved work in your Remote Workspace instead of continuing execution on your local machine.
Reconnect when you are ready
Run /remote-sessions to find the workspace and session, then select the session to reattach.
You can also reconnect from the Remote Sessions page in the Kimchi console or through VS Code.
Control Remote Execution
Remote Execution is enabled by default. Set KIMCHI_REMOTE_RUN=0 to disable Start execution in cloud and keep plan execution local.
KIMCHI_REMOTE_RUN=0 kimchi --planKimchi disables Remote Execution automatically on Windows and when Kimchi is already running in a sandbox.
For the complete command and approval-menu reference, see the TUI reference.
Hand off your session to the cloud
Use /teleport to move an in-progress local Kimchi Coding session into your Remote Workspace.
The remote agent keeps running when you close your laptop, switch machines, or hand work to a teammate. Your workspace and session remain available so that you can reconnect later.
/teleport flags
/teleport flagsBeyond the default /teleport, these flags cover common cases:
| Flag | What it does |
|---|---|
--workspace <ref> | Reuse an existing workspace instead of creating a new one. Accepts a UUID, name, or host nickname |
--git-repo <url> | Clone from a Git URL instead of rsyncing your local files. Supports HTTPS and SSH |
--branch <branch> | Branch to check out after cloning. Requires --git-repo |
--allow-dirty | Proceed even if your Git working tree has uncommitted changes |
--force | Proceed even if your workspace exceeds the 5 GB transfer-size limit |
--no-git-token | Skip the Git token prompt. Private repositories on the sandbox will be inaccessible |
--skip-session | Do not upload your current session history. The remote agent starts fresh |
--fast | Clone server-side + rsync only local diff (faster for large repos) |
Examples:
/teleport --workspace mybox task-2
/teleport --git-repo https://github.com/org/repo.git --branch main
/teleport --allow-dirtyYou can also pass an optional positional name to label the session:
/teleport my-featureAllowed characters are letters, digits, -, and _. Names must be unique within a workspace.
Git credentials
When /teleport detects a Git remote, such as github.com, it prompts for a personal access token. The token is forwarded to the sandbox so the remote agent can pull from and push to private repositories.
The prompt offers:
- Token input — Paste a personal access token. The display is masked.
- Save for future sessions — Toggle with
Tab. When enabled, the token is saved locally so you are not prompted again for the same host. - Skip — Press
Escto continue without Git credentials. The remote workspace will not be able to access private repositories.
If you previously saved a token for the host, Kimchi uses it automatically.
Use --no-git-token to suppress the prompt entirely.
Work inside the PTY overlay
The PTY overlay behaves like a full-screen terminal multiplexer on the remote sandbox. Your session, tools, files, and agent state are already there.
Keep typing, run commands, inspect files, and let the agent finish the task.
Tab between sessions
Open and switch between independent sessions inside the same workspace:
| Shortcut | Action |
|---|---|
Ctrl+B c | Open a new tab |
Ctrl+B n / Ctrl+B p | Move to the next or previous tab |
Ctrl+B 1–Ctrl+B 9 | Jump directly to a tab by number |
Ctrl+B Esc | Cancel the chord if you pressed Ctrl+B by mistake |
Each tab is an independent session in the same workspace. Use tabs to run a second parallel task or inspect the environment while another agent is working.
Sessions are long-lived. They continue running on the server after you disconnect, so you can return later and resume where you left off.
Tabs are lazy by default. Their WebSocket opens only when you switch to them, which keeps socket usage low.
The first tab you open through /teleport is eager and stays connected. The chord state resets after one operand, and unknown operands are silently consumed so they do not leak into the active shell.
Tab indicators
| Indicator | Meaning |
|---|---|
| Inverted background | Active tab |
• | Dirty — the tab received new output while it was inactive |
○ | Disconnected — lazy tab; its WebSocket has not opened yet |
⚠ | Degraded — reconnecting or fatal error |
… | Tab bar is truncated; more tabs exist off-screen |
Push local changes without restarting
If you make local changes after the initial sync, push them without restarting the session:
/sync up --workspace mybox --source ./src/ --target ~/project/src//sync runs rsync between your local machine and the Remote Workspace:
uptransfers files from local to remote.downtransfers files from remote to local.
Both directions require --workspace, --source, and --target.
| Flag | What it does |
|---|---|
--exclude <glob> | Skip files matching the glob. Repeatable |
--include-ignored | Include Git-ignored files in the transfer. They are skipped by default |
--delete | Delete extraneous files at the target that do not exist at the source |
--dry-run | Preview the transfer without writing anything |
Default exclusions for directory transfers are:
node_modules/
dist/
.next/
target/
__pycache__/
.venv/
.env*
*.log
.DS_Store
.kimchi/Git-ignored entries are also excluded unless you set --include-ignored.
Single-file transfers skip these default exclusions and use only explicit --exclude patterns.
Pull a directory back to your laptop with a trailing slash on the remote source:
/sync down --workspace mybox --source ~/project/dist/ --target ./dist/Open the workspace in VS Code
Run /ssh-config inside the overlay, then select VS Code → Remote Sessions.
The workspace appears automatically and you can connect directly to the remote filesystem. No manual ~/.ssh/config edits are required.
You get a full editor pointed at the workspace while the agent continues working in the overlay.
Exit the overlay
Press Ctrl+D to return to your local kimchi prompt.
The Remote Workspace, session, and agent continue running.
When a session terminates normally, for example when you type exit in the shell, its tab closes. If it was the last tab, the overlay closes and you return to local Kimchi.
A tab closed by a fatal error remains in the tab bar so you can see the reconnect banner and decide whether to retry or exit.
Copy from the sandbox to your local clipboard
Hold Shift or Option while selecting text to copy it directly to your local clipboard.
This bypasses the terminal mouse protocol and any remote clipboard.
Remote programs that emit OSC 52 escape sequences, such as tmux with set -g set-clipboard on, also sync their clipboard to your local machine automatically.
Reconnect after a dropped connection
If the WebSocket drops, the overlay shows a status banner and attempts to reconnect automatically.
The overlay also refreshes the authentication token when it nears expiry, so long-running sessions remain connected without intervention.
| Banner | Meaning | Action |
|---|---|---|
connecting… | Initial connection in progress | Wait |
reconnecting in Ns (attempt M)… | Transient disconnect; Kimchi is automatically retrying | Wait |
connection lost — ctrl+r retry · ctrl+d exit | Recoverable fatal error | Press Ctrl+R for a manual retry, or Ctrl+D to exit |
fatal: <reason> (<code>) — ctrl+d exit | Non-recoverable error; the session terminated | Press Ctrl+D to exit |
Resume a session later
From the CLI
Return to your local kimchi prompt and run:
/remote-sessionsIt opens a full-screen tree panel. Each workspace is a top-level row, with its sessions nested underneath using ├─ and └─ connectors.
The columns are NAME / SESSION, STATUS, and LAST ACTIVITY.
Navigate with the arrow keys or j and k, then press Enter to reattach.
/remote-sessions replaces the former /sessions and /workspaces commands. Workspaces and their sessions are now browsed from one panel.
Session status
| Status | Meaning |
|---|---|
| active | Session is alive and has a connected client |
| disconnected | Session is alive but no client is connected |
| idle | Session exists on the server but is not alive, for example because its process exited |
| completed | Session has finished and been cleaned up |
| unreachable | Kimchi could not reach the workspace to list its sessions. This appears on the workspace row, which has no nested sessions |
Panel keybindings
Action keys are context-aware: they apply to the selected workspace or session row.
| Key | Action |
|---|---|
↑ / ↓ or j / k | Navigate across workspaces and sessions |
Enter | On a workspace, open a raw SSH terminal with /terminal. On a session, attach to it in the PTY overlay |
d | Delete the selected workspace and all its sessions, or delete the selected session, after confirmation |
r | Rename the selected workspace. This is a no-op for a session because session renaming is not supported |
Esc, q, or x | Close the panel |
From the Kimchi console
Open the Remote Sessions page in the Kimchi console to see your active remote sessions and the phase each agent is in:
- Planning
- Coding
- Reviewing
- Done
Click a session to open its web terminal and interact with the agent from the browser.
Next to the web terminal, open the workspace in the Web IDE — a full browser-based IDE with the Kimchi VS Code extension preinstalled.
Open a raw SSH shell
For debugging or one-off commands outside the PTY overlay, open a plain SSH session:
/terminal mybox
/terminal ws-abc12345Use a host nickname, workspace name, or full workspace ID.
/terminal bypasses the overlay and hands your TTY to ssh connected to the Remote Workspace.
Type exit or press Ctrl+D to return to local Kimchi. The workspace and its sessions keep running.
Workspace limits
- One workspace per user — Your Remote Workspace is provisioned with 2 CPUs, 8 GB of RAM, and 20 GB of disk space. Delete the existing workspace from the
/remote-sessionspanel before creating another workspace if you need a clean environment. - Transfer-size caps —
/teleportwarns above 500 MB and refuses transfers above 5 GB. Use--forceto override the 5 GB refusal. - Disk allocation and transfer size are separate — A workspace has 20 GB of disk space, but
/teleportstill applies the 5 GB transfer limit to prevent large initial uploads. - Large repositories — Use
--excludewith/syncto skip large directories such as build artifacts, generated files, datasets, andnode_modules/.
Troubleshooting
Dirty working tree
By default, /teleport refuses when git status --porcelain shows uncommitted changes.
This prevents accidentally shipping work in progress.
Use --allow-dirty to override the check:
/teleport --allow-dirtyrsync not found
If rsync is not on your PATH, /sync and /teleport in rsync mode fail with an installation hint.
On macOS:
brew install rsyncOn Linux, install it with your package manager:
apt install rsyncSession not found
If you reference a session that no longer exists, Kimchi suggests /remote-sessions so you can browse available sessions.
You cannot reattach to sessions that finished and were cleaned up server-side.
Workspace not found
If you reference a workspace that does not exist, or that you cannot access, authentication fails.
Use /remote-sessions to list your available workspaces.
See also
- Create and Use a Remote Workspace — Step-by-step developer journey: create a workspace from a template, connect, and reconnect later.
- Web IDE — A full browser-based IDE for your Remote Workspace, with the Kimchi VS Code extension preinstalled.
- Audit Log — Every change to your workspaces and workspace templates, recorded with who made it and what changed.
- Ferment — Autonomous project mode for multi-step coding work.
/teleportalso works inside Ferment sessions. - TUI reference — Full command reference for
kimchi. - Getting started with Kimchi Coding — Install Kimchi and run your first session.
Updated 6 days ago