wowTerminal
A context-aware AI terminal with SSH, SFTP, and local/remote LLM support.
Links
README
From the repo.
wowTerminal
Make Your Terminal Smarter & Safer — LLM × SSH × SFTP
A context-aware AI terminal — a chat assistant that reads your terminal,
an SSH host manager, and a dual-pane SFTP file browser, in one fast desktop app.
✨ Features • 🚀 Getting started • ⌨️ Shortcuts • 🔐 SSH • 📁 SFTP • 🤖 AI
Love this project? A ⭐ on the repo keeps it going.
Features
- AI assistant (multi-backend)
- Works with any OpenAI-compatible endpoint — OpenAI, Ollama, vLLM, TGI, self-hosted gateways.
- Knows the connected system (OS / shell / user / cwd) and can attach the focused pane's recent output, so suggestions fit the machine and what you're doing.
- Extracts commands from responses into cards with a one-click Send to terminal button.
- Per-tab conversations, saved chat history, and session restore.
- SSH manager
- Host profiles (name / host / port / user / auth), groups, tags, search and sort, with
keyboard navigation (
↑/↓to select,Enterto open). - SSH key manager: generate or import keys.
- TOFU host-key verification with
known_hosts— first-contact confirmation and mismatch warnings to guard against man-in-the-middle attacks. - Password prompt with optional save to the OS keychain (no plaintext on disk).
- Host profiles (name / host / port / user / auth), groups, tags, search and sort, with
keyboard navigation (
- SFTP file browser
- Dual local ↔ remote panes, upload/download with a progress bar and transfer queue.
- Remote file search and Unix permission editing.
- Terminal core
- PTY-backed local shells, rendered with xterm.js (WebGL-accelerated).
- Tabs, split panes (horizontal / vertical), and detach a tab into a new window (the live session and screen are handed over).
- Session restore — on restart the previous tabs reopen: layout, local shells in their previous working directory, SSH tabs reconnecting, tmux panes re-attaching.
- tmux integration — per-host auto-attach on SSH connect, a
⌘Ktmux session picker (local or remote, with attach/switch/create), and tab titles that follow the session. - Dead-session detection — if the connection drops (e.g. after sleep), the tab says so and Enter reconnects in place (back into tmux when auto-attach is set).
- Command history search (
Ctrl/⌘ + R), inline autocomplete from history (accept withShift + →;Tabstays shell completion and→/Endstay cursor movement), and a configurable default start directory for new terminals.
- UI
- Collapsible left host panel and right AI panel, with draggable widths.
- 11 UI languages (auto-detected from your OS locale, switchable in Settings).
- Dark / light themes, configurable font and scrollback.
- Import/export of hosts, groups, tags, and LLM backends (secrets and API keys stay in the keychain — re-enter keys after importing).
Tech stack
- Backend: Rust + Tauri 2
- Frontend: React 19 + TypeScript + Vite
- Terminal: xterm.js + portable-pty
- SSH/SFTP: russh + russh-sftp
- Secrets: OS keychain via keyring
Getting started
Prerequisites: Rust (stable), Node.js 20+, and platform build dependencies. On Linux you also need
libwebkit2gtk-4.1-dev,libgtk-3-dev, and related packages. See the Tauri prerequisites guide.
npm install
npm run tauri dev # development build with hot reload
npm run tauri build # production bundle
The first launch shows a short onboarding flow. After that you land on a local shell tab.
Documentation
User guides live in docs/guide/:
- Getting started — install, first run, the workspace layout
- SSH — hosts, keys, host-key verification, saved credentials
- SFTP — the file browser, transfers, permissions
- AI assistant — backends, context, running suggested commands
- Keyboard shortcuts
- Release code signing — for maintainers building signed releases
Design notes are in docs/design/; the dated development log is in
docs/work-log/.
Project layout
.
├── src/ # React frontend
│ ├── components/ # UI components
│ ├── i18n.tsx # lightweight self-hosted i18n
│ └── settings.ts # app settings (theme, layout, language)
├── src-tauri/ # Rust backend (Tauri)
│ └── src/
│ ├── ai/ # AI backends (OpenAI-compatible)
│ ├── ssh/ # SSH manager, known_hosts
│ ├── pty/ # PTY terminal core
│ └── secrets/ # keychain-backed secret storage
└── docs/
├── design/ # design docs
├── guide/ # user guides (English)
└── work-log/ # dated development log
Security
- API keys, SSH private keys, and passwords are never stored in plaintext — they live in the OS keychain (Keychain on macOS, Credential Manager on Windows, Secret Service on Linux).
- Host/group/tag export does not include secrets.
- SSH connections verify host keys against
known_hosts(trust-on-first-use).
License
MIT © CW JUNG
Collected info
- ★ 14 stars
- Language: TypeScript
- Source updated: 9/16/2026
Config for your environment
Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "{MCP_ENDPOINT_URL}"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.