Thanks to visit codestin.com
Credit goes to Github.com

Skip to content
/ YAET Public

YAET is a remote connection tool based on angular + electron supporting SSH Telnet WinRM, RDP VNC, SCP/SFTP FTP SAMBA

License

Notifications You must be signed in to change notification settings

invince/YAET

Repository files navigation

Yet Another Electron Terminal (YAET)

Description

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.

Key Features

🖥️ Terminal Connections

  • 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

  • image
  • 屏幕截图 2026-02-15 002126

📁 Remote File Explorer

  • SCP/SFTP: Secure file transfer over SSH
  • FTP: Standard FTP protocol support
  • SMB/SAMBA: Windows file sharing protocol

🖼️ Remote Desktop

  • VNC: Virtual Network Computing for remote desktop access
  • RDP: Remote Desktop Protocol (Windows)
  • 屏幕截图 2026-02-15 002447

⚡ Custom Commands

  • Create your own custom commands/connections
  • image

🔐 Secrets Management

  • 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
  • 屏幕截图 2026-02-15 002636

☁️ Cloud Sync

  • 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
  • 屏幕截图 2026-02-15 003612

🎨 Additional Features

  • 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

Prerequisites

  • 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
  • Build Tools (Windows):
    • Visual Studio Build Tools with "Desktop development with C++" workload
    • Or: npm install --global --production windows-build-tools (legacy method)

Setup

Initial Setup

  1. Clone the repository

    git clone <repository-url>
    cd yaet
  2. Install dependencies (requires admin rights for symbolic links on first run)

    npm install

Quick Install (Linux)

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
  1. Rebuild native modules (if installation fails)
    npm run rebuild-native

Development

Local Development

Option 1: Single command

npm run start

Option 2: Separate processes (recommended for debugging)

# Terminal 1: Angular dev server
npm run ng:serve

# Terminal 2: Electron app
npm run electron:dev

After Installing Electron Dependencies

If you install any npm packages used by the Electron main process:

npm run rebuild-native

Building & Releasing

Build Installer

npm run build

This creates a distributable installer in the dist folder.

Release to GitHub

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.

  1. Update version: Update the "version" field in package.json.
  2. 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_TOKEN secret in your repository (Settings > Secrets and variables > Actions).
  • The workflow triggers automatically on any tag push matching v*.

What it does:

  1. Triggers parallel builds on Windows and Linux (Ubuntu) runners.
  2. Compiles the Angular frontend.
  3. Builds the Electron installers (.exe, .AppImage, .deb).
  4. Creates/Updates a GitHub Release and uploads all artifacts.

Released packages: https://github.com/invince/YAET-RELEASE

Logs

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

Technology Stack

  • Frontend: Angular 21, Angular Material
  • Desktop: Electron 31
  • Terminal: xterm.js
  • File Transfer: ssh2, basic-ftp, v9u-smb2
  • Remote Desktop: @novnc/novnc

About

YAET is a remote connection tool based on angular + electron supporting SSH Telnet WinRM, RDP VNC, SCP/SFTP FTP SAMBA

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •