An AI-native SSH, SFTP, tunnel, and local terminal workspace for developers who ship from the command line.
Screenshots · Recent Updates · Why It Exists · Features · AI Agents · Install · Build
VibeShell is a modern desktop terminal for people and AI agents working on the same machines. It combines a polished SSH client, SFTP file manager, SSH tunnel control panel, local shell, session recording, and an MCP-powered AI integration layer in one native Tauri app.
If you have ever asked an AI coding agent to deploy, inspect logs, edit a remote config, or move files over SSH, VibeShell gives it a real, reusable, observable workspace instead of a pile of brittle one-off shell commands.
The screenshots in this README are rendered with Playwright from VibeShell's real React components using sanitized demo servers. They use reserved example domains only; no real hostnames, IPs, credentials, or customer data are shown.
| Server launcher | Split terminal workspace |
|---|---|
![]() |
![]() |
| Finder-style SFTP | Theme system |
|---|---|
![]() |
![]() |
- Coding agents inside the terminal workspace: launch Claude Code, Codex, OpenCode, or Pi in a native terminal tab, choose a repository and supported start/access mode, then inspect its live Git status and unified diffs without leaving VibeShell.
- Remote file workspace: open SFTP files in shared tabs, edit syntax-highlighted text with save protection, preview images, PDF, audio, and video, and search the contents of ZIP, TAR, TAR.GZ, and TGZ archives.
- Encrypted cloud sync: pair devices through a private GitHub Gist or WebDAV file and sync servers, groups, and command snippets as AES-256-GCM ciphertext. Credentials, host fingerprints, recordings, and live sessions remain device-local; vault keys are session-only until secure Keychain/Keystore persistence lands.
- Stronger SFTP workflows: multi-select batch actions, visible upload/download progress, bounded large-file previews, archive compress/extract actions, and safer delete and transfer handling.
- Extensible session tools: install external command plugins from the marketplace with explicit local/remote execution permissions and guarded
sudosupport. - Mobile-ready runtime: capability-gated iOS/Android foundations, foreground SSH/SFTP, touch terminal keys, safe-area layouts, and responsive workspace actions. Native mobile file pickers, persistent credentials, and background SSH are intentionally deferred.
- Split shells, one workspace: open up to four terminal panes and switch between row and column layouts without leaving the active session.
- Finder-style SFTP browsing: traverse multiple path levels in a column view, switch to an icon view, preview files in place, and expand or collapse the complete SFTP workspace.
- A quieter native shell: VibeShell opens directly into a local terminal, keeps SSH, SFTP, split, and settings actions in a compact icon toolbar, and reveals labels through hover tooltips.
- Five contrast-safe themes: Paper White, Warm Ivory, Ink Black, Violet Black, and Cyan Black keep titles, controls, terminal text, and hover states readable on both light and dark surfaces.
- Platform-aware window motion: macOS uses native traffic-light and fullscreen behavior, while Windows and Linux receive controls shaped for their platform conventions.
- Smarter command interaction: Zsh starts as an interactive login shell, ghost-text completion stays close to the cursor, and a mouse click can reposition the terminal input cursor.
Traditional SSH clients assume a single human is typing everything. AI coding agents changed that: now the operator and assistant need to share enough visible context to act safely.
VibeShell is designed around that new workflow:
- Human-friendly by default: fast tabs, xterm.js rendering, command snippets, local shell, SFTP, tunnels, and session recording.
- Agent-ready when needed: built-in MCP tools expose server, session, command, search, and SFTP workflows to compatible AI tools.
- Observable automation: agents can connect, run commands, inspect output, and transfer files while you keep the UI open as the control room.
- Native and local-first: Rust backend, SQLite storage, optional device-local credentials, and no hosted control plane.
- Multi-tab SSH sessions and local shell sessions.
- Native terminal tabs for Claude Code, Codex, OpenCode, and Pi coding agents.
- Live workspace-change panel with staged/unstaged state, rename and conflict detection, and bounded unified diffs.
- Up to four shell panes with horizontal and vertical split layouts.
- Direct-to-terminal startup with no empty landing screen.
- Smooth terminal rendering with xterm.js and WebGL support.
- Mouse-based input cursor placement for faster command editing.
- Interactive login-shell startup and ghost-text completions for common terminal commands.
- Compact icon toolbar with hover tooltips and responsive overflow behavior.
- Command snippets with search, tags, copy, and insert actions.
- Terminal session recording for audit, replay, and handoff.
- Platform-specific window controls for macOS, Windows, and Linux.
- Native macOS fullscreen transitions that preserve close and minimize behavior.
- Paper White, Warm Ivory, Ink Black, Violet Black, and Cyan Black themes.
- WCAG AA-tested text contrast across the five built-in themes.
- Responsive actions that keep common icons visible and fold secondary actions into a compact menu.
- Password, key, and key-with-passphrase authentication.
- Optional device-local credentials and per-server configuration. Secure Keychain/Keystore storage is planned; current saved credentials are not encrypted at rest.
- Host key verification with trusted fingerprint management.
- Jump host / ProxyJump support for bastion access.
- SSH agent forwarding.
- Finder-style SFTP column browsing plus an icon view for scanning folders visually.
- Expandable SFTP workspace with a dedicated address row and responsive action menu.
- Shared file-workspace tabs with syntax-aware text editing, rich media previews, and searchable archive listings.
- File preview, multi-select upload/download/delete, rename, mkdir, compression, extraction, recursive upload, and sync flows with visible progress.
- Local forward, remote forward, and dynamic SOCKS5 tunnels.
- End-to-end encrypted server, group, and command-snippet sync through GitHub Gist or WebDAV.
- Deterministic revisions, tombstones, conflict reporting, retryable outbox delivery, and portable JSON import/export.
- Credentials, trusted fingerprints, recordings, tunnels, and runtime sessions stay out of cloud sync.
- Foreground SSH terminal and remote SFTP browsing on the mobile runtime foundation, with desktop-only features hidden through backend capability detection.
VibeShell can detect installed Claude Code, Codex, OpenCode, and Pi CLIs and launch them directly in the visible terminal workspace. Each tool exposes only the session and access modes it supports. Agent sessions keep their repository path attached, so the workspace-change panel can refresh Git status and render text diffs while the agent works.
VibeShell includes an authenticated Agent Gateway plus a skill installer for AI coding tools. The Gateway runs inside the visible desktop app, shares the user's sessions, and can be launched on demand by the installed skill. The installer detects tools such as Claude Code, Codex, Cursor, Open Code, Gemini CLI, Windsurf, Roo Code, Continue, Kiro, Trae, OpenHands, and more.
The Gateway currently exposes 28 MCP tools, including:
| Area | Tools |
|---|---|
| Server inventory | server_list, server_add, server_get, server_update, server_delete |
| Sessions | session_list, session_create, session_attach, session_detach, session_kill, session_send_input, session_read, session_resize |
| Remote commands | exec, rg |
| SFTP | sftp_ls, sftp_upload, sftp_upload_directory, sftp_sync_directory, sftp_download, sftp_mkdir, sftp_rm, sftp_mv, sftp_read, sftp_write |
| File editing | get_content, edit_file, add_file |
Example intent:
You: "Check the demo API logs, patch the config, upload the build, and restart the service."
Agent:
1. Finds the configured demo server.
2. Opens or reuses a VibeShell session.
3. Reads logs with exec/rg.
4. Edits the remote config through SFTP tools.
5. Uploads the new build directory.
6. Restarts the service and reports the verified result.
VibeShell
├─ React 18 + TypeScript + Zustand + Tailwind
│ ├─ Server list, session tabs, terminal, SFTP, tunnels, settings
│ ├─ Coding-agent launcher, file workspace, and live Git diff panel
│ └─ safeInvoke wrappers for all Tauri IPC calls
├─ Tauri 2 IPC bridge
├─ Rust backend
│ ├─ russh SSH client and session manager
│ ├─ russh-sftp operations and recursive sync helpers
│ ├─ SQLite storage and device-local credentials
│ ├─ SSH tunnel manager
│ ├─ local shell manager
│ ├─ encrypted cloud sync and portable workspace snapshots
│ ├─ local coding-agent launcher and bounded Git inspection
│ ├─ authenticated Agent Gateway with per-launch discovery
│ └─ MCP tools sharing the GUI session manager
└─ AI-tool skill installer
Download the latest installer from GitHub Releases.
| Platform | Desktop app |
|---|---|
| Windows x64 | .exe / .msi |
| macOS Apple Silicon | .dmg |
| macOS Intel | .dmg |
| Linux x64 | .deb / .AppImage / .rpm |
The desktop installer contains the Gateway directly. AI tools launch or focus VibeShell and operate the same sessions shown in the GUI without installing a CLI or modifying PATH.
Prerequisites:
- Node.js 18 or newer.
- Rust stable.
- Tauri platform prerequisites for your OS.
- On Windows, Visual Studio Build Tools with the C++ workload.
git clone https://github.com/veithly/vibeshell.git
cd vibeshell
npm ci
npm run build
cargo check
cargo testRun in development:
npm run dev
npx tauri devBuild release binaries:
# Frontend + Rust checks
npm run build
cargo check
cargo test
# Desktop app with built-in Agent Gateway.
npx tauri buildWindows installer packaging:
powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -File scripts/build-msi.ps1 -NoPauseThe Windows packaging script produces NSIS and MSI installers with the built-in Agent Gateway.
GitHub Actions run:
- Frontend type-check and Vite build.
- Frontend unit/component tests.
- Rust
cargo checkandcargo teston Linux, Windows, and macOS. - Rust target check for the iOS arm64 simulator.
- Linux
cargo clippy -- -D warnings. - Release builds for Windows x64, macOS arm64/x64, and Linux x64.
The release workflow can be triggered from tags (v*) or manually with a patch/minor/major bump.
src/ React frontend
src/components/ Terminal, SFTP, settings, tunnels, dialogs
src/stores/ Zustand stores for app state
src/i18n/ English and Simplified Chinese locales
src/lib/tauri.ts safeInvoke and IPC helpers
src-tauri/ Rust/Tauri backend
src-tauri/src/ssh/ SSH client and host fingerprints
src-tauri/src/sftp/ SFTP operations and sync helpers
src-tauri/src/mcp/ MCP tools and transports
src-tauri/src/install/ AI tool detection and skill installer
src-tauri/src/cloud_sync/ Encrypted GitHub Gist and WebDAV sync
src-tauri/src/coding_agent/ Local coding-agent launch and Git workspace inspection
cli/ optional standalone CLI source for legacy workflows
docs/ Design notes, plans, and README screenshots
Issues and pull requests are welcome. The best contributions are small, verified, and focused:
- Search existing issues and code paths first.
- Keep behavior changes narrow.
- Add or update focused tests when behavior changes.
- Run
npm run build,cargo check, andcargo testbefore opening a PR.
If VibeShell helps your remote workflow, a star makes the project easier for other agent-powered developers to discover.



