SSH Remote Development
Add an SSH-backed project to a VibeSpace to browse and edit files and run terminals on a remote server.
Prerequisites
- An SSH key pair configured for the remote host (key-based authentication only)
- A profile for the remote host in your SSH config or Settings > Connections
🚨 Warning: Password authentication is not supported. You must use key-based authentication.
Setting up a remote project
- Open Settings > Connections.
- Click + to add an SSH profile, or click Import from SSH Config to import hosts from
~/.ssh/config. - Create or open a VibeSpace.
- Add a remote project by selecting your SSH profile and specifying the remote path.
File browsing
Remote directories appear in the Files sidebar like local projects. CrispyVibe uses SFTP to list and transfer files. You can create, rename, and delete remote items, or use the refresh control on a remote project root to reload its listing.
Remote item names can’t contain / and can’t be . or ... If a rename fails, the rename field stays open with your proposed name so you can correct it and try again.
Enhanced remote file explorer (Beta)
CrispyVibe offers Enhanced remote file explorer (Beta) as an opt-in, per-device setting and leaves it off by default. It monitors the project root and expanded directories so changes can refresh only the affected folder, including same-name files whose metadata changes.
To enable it:
- Open Settings > Connections.
- Turn on Enhanced remote file explorer (Beta).
- Reopen your remote projects.
With enhanced mode enabled, create, rename, and delete actions update their affected directories without requiring you to collapse and expand the parent folder. CrispyVibe can also open inline rename immediately after you create a nested item.
⚠️ Note: Enhanced mode uses best-effort polling. You can still use the explicit refresh control, and a setting change does not affect remote projects until you reopen them. Remote drag-and-drop moves are not supported.
Editing remote files
Open any remote text file in the content viewer. CrispyVibe saves your edits to the remote server over SFTP.
CrispyVibe opens remote images and PDFs in their standard preview modes.
Remote terminals
Launch a terminal on the remote host from Terminal Board or the command palette. CrispyVibe connects remote terminals through SSH.
tmux persistence
If tmux is available on the remote host, CrispyVibe can persist terminal sessions across disconnects. When you reconnect to the host, CrispyVibe reattaches to the existing tmux sessions.
Agent CLI on remote hosts
The crispy CLI works in remote terminals, including for AI agents on the remote host. CrispyVibe relays the CLI over your SSH connection without installing it on the remote machine. CrispyVibe enables this per-connection option by default. See Remote Agent CLI for setup and details.
Port forwarding
Access forwarded ports through the remote status popover in the status bar. Add or remove port forwards while connected.
Connection management
Connection states
| State | Meaning |
|---|---|
| Connected | Active SSH connection |
| Connecting | Handshake in progress |
| Disconnected | No active connection |
| Failed | Connection attempt failed |
Reconnect or disconnect
Use the remote status popover to manually reconnect or disconnect from a remote host.
Host key validation
On first connection to a new host, CrispyVibe prompts you to verify the host key fingerprint. Subsequent connections validate against the stored key.
VibeSpace restore
When you reopen a VibeSpace that contains remote projects, CrispyVibe reconnects to the remote hosts and restores your previous state.
Managing SSH profiles
Open Settings > Connections to:
- Add new SSH profiles
- Edit existing profiles
- Remove profiles
- Import hosts from
~/.ssh/config
Known limitations
- Only key-based authentication is supported; password and keyboard-interactive authentication are unavailable.
- Remote drag-and-drop moves are unavailable; create, rename, and delete are supported.
- Enhanced explorer refresh is polling-based and best effort. Use the explicit refresh control if a remote change does not appear.