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
- VNC: Virtual Network Computing for remote desktop access
- RDP: Remote Desktop Protocol (Windows)
- Create your own custom commands/connections
- 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
-
Rebuild native modules (if installation fails)
npm run rebuild-native
-
Configure Syncfusion (required for file explorer UI)
- Create
config/config.json - Add your Syncfusion license key
- Create
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.
npm run releasePrerequisites:
- Set
GH_TOKENenvironment variable with your GitHub personal access token - Ensure you have push access to the repository
What it does:
- Increments the version number
- Builds the installer
- Creates a GitHub release (as pre-release)
- Uploads the installer for auto-updater
Post-release steps:
- Manually push code changes to GitHub
- Approve the pre-release on GitHub to make it public
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