YAET is a comprehensive remote connection and management tool built with Angular and Electron. It provides a unified interface for managing remote servers, executing commands, transferring files, and accessing remote desktops - all from a single application.
-
SSH: Secure shell connections with key-based and password authentication
-
Telnet: Legacy telnet protocol support
-
WinRM: Windows Remote Management for PowerShell sessions
-
Local Terminal: Integrated local shell access
-
-
- SCP/SFTP: Secure file transfer over SSH
- FTP: Standard FTP protocol support
- SMB/SAMBA: Windows file sharing protocol
- Secure password storage using system keychain
- SSH key management with passphrase support
- Reusable credentials across multiple profiles
- Support for login/password and SSH key authentication
-
- Synchronize profiles and settings across devices via your own git repository (could be github, gitlab, or even your own git server). We don't provide cloud sync service. All is up to you.
- Backup and restore configurations
- Seamless multi-device workflow
-
- Tabbed interface for multiple concurrent connections
- Split-screen view for side-by-side sessions
- Connection profiles with custom groups and tags
- Session reconnection after network interruptions
- Customizable themes and color schemes
- Node.js: v20.19+ or v22.12+ or v24+
- Angular CLI: Latest version
- Python 3.x: Required for native module compilation
- Important: If using Python 3.13+, you must install setuptools:
pip install setuptools
- Important: If using Python 3.13+, you must install setuptools:
- Build Tools (Windows):
- Visual Studio Build Tools with "Desktop development with C++" workload
- Or:
npm install --global --production windows-build-tools(legacy method)
-
Clone the repository
git clone <repository-url> cd yaet
-
Install dependencies (requires admin rights for symbolic links on first run)
npm install
For Linux users who just want to use the application, you can use the following command to download the latest AppImage and integrate it into your desktop environment:
curl -sSL https://raw.githubusercontent.com/invince/YAET/master/install.sh | bash- Rebuild native modules (if installation fails)
npm run rebuild-native
Option 1: Single command
npm run startOption 2: Separate processes (recommended for debugging)
# Terminal 1: Angular dev server
npm run ng:serve
# Terminal 2: Electron app
npm run electron:devIf you install any npm packages used by the Electron main process:
npm run rebuild-nativenpm run buildThis creates a distributable installer in the dist folder.
Releases are now automated via GitHub Actions.
Important: You MUST manually upgrade the version in package.json before creating a release tag. The GitHub Action uses the version from package.json to build and name the release artifacts.
- Update version: Update the
"version"field inpackage.json. - Commit, Tag, and Push:
git add package.json git commit -m "chore: bump version to v3.x.x" git tag v3.x.x git push && git push --tags
Prerequisites:
- Ensure you have configured a
GH_TOKENsecret in your repository (Settings > Secrets and variables > Actions). - The workflow triggers automatically on any tag push matching
v*.
What it does:
- Triggers parallel builds on Windows and Linux (Ubuntu) runners.
- Compiles the Angular frontend.
- Builds the Electron installers (
.exe,.AppImage,.deb). - Creates/Updates a GitHub Release and uploads all artifacts.
Released packages: https://github.com/invince/YAET-RELEASE
Application logs can be found at:
- Linux:
~/.config/{app name}/logs/main.log - macOS:
~/Library/Logs/{app name}/main.log - Windows:
%USERPROFILE%\AppData\Roaming\{app name}\logs\main.log
- Frontend: Angular 21, Angular Material
- Desktop: Electron 31
- Terminal: xterm.js
- File Transfer: ssh2, basic-ftp, v9u-smb2
- Remote Desktop: @novnc/novnc