Visual command builders, workflow automation, AI-powered review, SSH remoting, encrypted VNC desktop, and full terminal sessions — all in one app.
🚀 Download Now · 🌐 Website · 🐛 Report Issues · ⭐ Star This Repo
🛠️ Built with Electron, React, TypeScript, xterm.js, and node-pty. Open source. Free forever. No accounts, no telemetry, no cloud dependency.
TerminallySKILL is a free, open-source desktop app that replaces your scattered terminal windows, SSH clients, and CLI cheat-sheets with a single, powerful workspace.
- 🤯 CLI fatigue — memorising flags, syntax, and argument order for dozens of tools
- 🔄 Context switching — juggling terminals, SSH sessions, and scripts across windows
- 📝 Lost knowledge — that perfect one-liner from last month? Gone forever
- 🎯 No visibility — scripts run, things break, and you're left scrolling through walls of text
- ✅ Visual command builder — every CLI tool on your system, presented as a form
- ✅ Workflow scripts — multi-step automation with retries, approvals, and variable substitution
- ✅ Reusable snippets — save commands with
{{placeholders}}for repeated use - ✅ AI-powered review — safety checks, explanations, and natural-language command drafting
- ✅ SSH + encrypted VNC — remote terminals and full graphical desktops through SSH tunnels
- ✅ Clipboard paste into VNC — Ctrl+V pastes directly into remote desktops
- ✅ Windows support (beta) — PowerShell integration, command detection, and script execution — work in progress
- ✅ Local-first — your data stays on your machine, always
| Platform | File | Notes |
|---|---|---|
| 🍎 macOS (Apple Silicon) | .dmg (arm64) |
Drag to Applications |
| 🍎 macOS (Intel) | .dmg (x64) |
Drag to Applications |
| 🐧 Linux (x64) | .AppImage or .deb |
AppImage needs chmod +x |
| 🐧 Linux (ARM64) | .deb (arm64) |
sudo dpkg -i |
| 🪟 Windows (x64) | .exe (NSIS installer) |
Run as normal user (beta — work in progress) |
Every CLI tool on your system PATH is auto-discovered and presented as a form-based builder. Select flags, fill arguments, and watch the live command preview update — no syntax memorisation required. Edit the final command directly before copying or executing.
Build multi-step automation scripts with commands, approval checkpoints, and notes. Inputs use {{placeholder}} substitution so the same script runs with different values. Export as .tvflow files to share with your team. Each step supports retry logic and continue-on-error control.
Save reusable command templates with {{placeholder}} variables. Open a snippet, fill in the fields, and run — ideal for commands you use often with changing parameters.
Full shell sessions powered by node-pty and xterm.js:
- Editor Prompt — command bar with ghost suggestions, history cycling, and safe paste handling
- Split panes — vertical or horizontal splits with independent sessions
- Command queue — type while a command is running; input fires when the shell is ready
- Output snapshots — capture terminal output and compare any two with side-by-side diff
- In-terminal search — regex, case-sensitive, and whole-word matching
- PATH fix — detects missing commands and offers one-click binary location + shell config update
Projects can target remote SSH hosts as naturally as local directories. Configure host, user, port, and identity file — then every terminal session, script run, and workflow step executes on the remote machine transparently.
- SSH key setup helper — built-in guide for
ssh-keygen+ssh-copy-id - Interactive SSH shell — raw TTY shell on the remote host in a dedicated tab
- Encrypted VNC remote desktop — stream the remote graphical desktop through an SSH tunnel. No extra firewall rules — only port 22 needed
- Clipboard integration — Ctrl+V pastes into VNC sessions; clipboard syncs both directions
Bring your own API keys for any major provider, or run completely offline with a local model:
- Command Review — safety and syntax analysis before you run, with conversational follow-up
- Command Explain — plain-language breakdown of any command and its flags
- AI Draft — describe what you want in natural language; AI populates the command builder
- Output Review — send terminal output or saved logs to AI for analysis
- Selection Review — right-click any selected text in the terminal or logs for instant review
Supported providers: OpenAI, Anthropic, Google Gemini, Groq, Mistral, xAI (Grok), DeepSeek, OpenRouter, Together.ai, Fireworks.ai, Ollama, LM Studio, and any OpenAI-compatible endpoint.
Organise work into named projects with their own working directory (local or SSH), environment variables, favourite commands, terminal sessions, and colour badge for instant visual identification.
- Unified log browser — workflow runs and terminal logs in a single time-ordered list
- Structured run history — step timings, status, retry counts, and linked terminal logs
- Full-text log search — search across all saved output with match highlighting
- Run comparison — diff consecutive runs to catch regressions or confirm fixes
- AI review from logs — send selected text directly to AI Review
Browse your project directory with syntax highlighting, line numbers, and a code-editor layout for any file type. Open files directly in the terminal or send to AI for review.
Eight built-in themes:
| Dark | Light |
|---|---|
| Void (teal) | Chalk (cream) |
| Ember (amber) | Latte (espresso) |
| Dusk (indigo) | Sage (olive) |
| Forest (green) | Mist (cool paper) |
- AI provider configuration with live connection testing and fallback routing
- Terminal input mode: Classic shell or Editor Prompt
- Safe paste mode — confirmation dialog before executing multi-line pastes
- Configurable log storage directory with per-project overrides
- Rich help tooltips (togglable) with descriptions and keyboard shortcuts
- Command palette (
Cmd+K/Ctrl+K) for instant access to any action - Auto-update with configurable channel
| Shortcut | Action |
|---|---|
Cmd+/ (Ctrl+/) |
Toggle terminal panel |
Cmd+K (Ctrl+K) |
Open command palette |
Cmd+T (Ctrl+T) |
New terminal tab |
Cmd+W (Ctrl+W) |
Close active tab |
Cmd+D (Ctrl+D) |
Split terminal vertically |
Cmd+Shift+D |
Split terminal horizontally |
Cmd+] / Cmd+[ |
Switch focus between split panes |
Cmd+F (Ctrl+F) |
Search in terminal |
Cmd+Shift+S |
Capture terminal snapshot |
Cmd+E (Ctrl+E) |
Toggle Editor Prompt mode |
Cmd+I (Ctrl+I) |
Help guide |
Cmd+S (Ctrl+S) |
Settings |
- Node.js >= 18.17.0 (LTS recommended)
- npm (included with Node.js)
- macOS: Xcode Command Line Tools (
xcode-select --install) - Linux:
build-essential,python3,libsecret-1-devsudo apt install build-essential python3 libsecret-1-dev
- Windows: Visual Studio Build Tools with "Desktop development with C++" workload
git clone https://github.com/cryptopoly/TerminallySKILL.git
cd TerminallySKILL
npm installnpm run devStarts the Electron app with hot module replacement. Main process changes require a restart.
npm run buildCompiles into out/. Useful for checking TypeScript/build errors.
# macOS
npm run package:mac # Universal (x64 + arm64)
npm run package:mac:x64 # Intel only
npm run package:mac:arm64 # Apple Silicon only
# Linux
npm run package:linux # AppImage + .deb (x64 and arm64)
npm run package:linux:x64
npm run package:linux:arm64
# Windows
npm run package:win # NSIS installer (x64 and arm64)
npm run package:win:x64
npm run package:win:arm64Output is written to dist/.
npm testxattr -dr com.apple.quarantine /Applications/TerminallySKILL.appchmod +x TerminallySKILL-*.AppImage
./TerminallySKILL-*.AppImageClick More info → Run anyway.
| Layer | Technology |
|---|---|
| Desktop shell | Electron 33 |
| UI framework | React 18 |
| Language | TypeScript (end-to-end) |
| Styling | Tailwind CSS 3 + CSS custom properties |
| State management | Zustand |
| Terminal emulator | xterm.js (fit, search, serialise, web-links addons) |
| PTY / shell | node-pty |
| VNC client | @novnc/novnc |
| WebSocket proxy | ws |
| Fuzzy search | Fuse.js |
| Syntax highlighting | highlight.js |
| Panel layout | react-resizable-panels |
| Build & HMR | Vite via electron-vite |
| Packaging | electron-builder |
src/
main/ # Electron main process — IPC handlers, PTY, VNC tunnel, AI, file ops
preload/ # Context bridge (electronAPI surface exposed to renderer)
renderer/ # React application
src/
components/ # UI — command builder, terminal, scripts, VNC panel, etc.
store/ # Zustand stores
lib/ # Utilities and helpers
shared/ # Types and schemas shared between main and renderer
build/ # App icons and platform assets
scripts/ # Build and packaging helpers
| Platform | Minimum Version |
|---|---|
| macOS | 12 Monterey or later (M1/M2/M3 or Intel) |
| Linux | glibc 2.28+ (Ubuntu 20.04+ / Debian 10+) |
| Windows | Windows 10 (1903) or later, x64 (beta — some features may be limited) |
TerminallySKILL is free, open source, and built independently. If it saves you time or makes your workflow better, consider supporting development:
- ⭐ Star this repo — helps with visibility and discovery
- ☕ Buy Me a Coffee — quick one-time support
- 💜 PayPal Donate — one-time or recurring
- 🌐 Support via Website — more options
- 🐛 Report issues — bug reports and feature requests welcome
- 📢 Share on Twitter — spread the word
This project is licensed under the MIT License.
🚀 Download Now · 🌐 Website · ⭐ Star on GitHub
Made with ⚡ by cryptopoly