base on ๐Ÿ“ปTerminal/ssh/sftp/ftp/telnet/serialport/RDP/VNC/Spice client(linux, mac, win) <h1 align="center" style="padding-top: 60px;padding-bottom: 40px;"> <a href="https://electerm.html5beta.com"> <img src="https://github.com/electerm/electerm-resource/raw/master/static/images/electerm.png", alt="" /> </a> </h1> # electerm [![Tweet](https://badgers.space/badge/Tweet/Tweet/social)](https://twitter.com/intent/tweet?text=Open%20sourced%20terminal%2Fssh%2Fsftp%20client(linux%2C%20mac%2C%20win)&url=https%3A%2F%2Fgithub.com%2Felecterm%2Felecterm&hashtags=electerm,ssh,terminal,sftp) [![GitHub version](https://badgers.space/github/release/electerm/electerm?corner_radius=m)](https://github.com/electerm/electerm/releases) [![Build Status](https://github.com/electerm/electerm/actions/workflows/mac-test-1.yml/badge.svg)](https://github.com/electerm/electerm/actions) [![license](https://img.shields.io/github/license/electerm/electerm)](https://github.com/electerm/electerm/blob/master/LICENSE) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) [![Get it from the Snap Store](https://img.shields.io/badge/Snap-Store-green)](https://snapcraft.io/electerm) [![Get it from the Microsoft Store](https://img.shields.io/badge/Microsoft-Store-blue)](https://www.microsoft.com/store/apps/9NCN7272GTFF) [![Debian Repository](https://img.shields.io/badge/Debian-Repository-red)](https://electerm-repos.html5beta.com/deb) [![GitHub Sponsors](https://img.shields.io/github/sponsors/electerm?label=Sponsors)](https://github.com/sponsors/electerm) [![Powered by manate](https://img.shields.io/badge/Powered%20by-manate-blue)](https://github.com/tylerlong/manate) [![English](https://img.shields.io/badge/English-EN-blue)](README.md) [![ไธญๆ–‡](https://img.shields.io/badge/ไธญๆ–‡-Chinese-blue)](README_cn.md) [![DigitalOcean Referral Badge](https://web-platforms.sfo2.cdn.digitaloceanspaces.com/WWW/Badge%202.svg)](https://www.digitalocean.com/?refcode=c10bcb28b846&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge) [![Vercel OSS Program](https://vercel.com/oss/program-badge.svg)](https://vercel.com/oss) Open-sourced terminal/ssh/sftp/telnet/serialport/RDP/VNC/Spice/ftp client(linux, mac, win). For experienced developers, you may try the web app version running in browser(including mobile device): [electerm-web](https://github.com/electerm/electerm-web) or [docker image for electerm-web](https://github.com/electerm/electerm-web-docker) Online demo: [https://electerm-demo.html5beta.com](https://electerm-demo.html5beta.com) <div align="center"> <img src="https://github.com/electerm/electerm-resource/raw/master/static/images/electerm.gif", alt="" /> </div> ## Features - Works as a terminal/file manager or ssh/sftp/ftp/telnet/serialport/RDP/VNC/Spice client - Support Window 7+(X64/ARM64), Mac OS 10.15+(x64/arm64), Linux(x64/arm64), even old Linux with glibc 2.17+ like UOS/Kylin/Ubuntu 18.04 etc - Global hotkey to toggle window visibility (similar to guake, default is `ctrl + 2`) - Multi platform(linux, mac, win) - ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿ‡จ๐Ÿ‡ณ ๐Ÿ‡ง๐Ÿ‡ท ๐Ÿ‡ท๐Ÿ‡บ ๐Ÿ‡ช๐Ÿ‡ธ ๐Ÿ‡ซ๐Ÿ‡ท ๐Ÿ‡น๐Ÿ‡ท ๐Ÿ‡ญ๐Ÿ‡ฐ ๐Ÿ‡ฏ๐Ÿ‡ต ๐Ÿ‡ธ๐Ÿ‡ฆ ๐Ÿ‡ฉ๐Ÿ‡ช ๐Ÿ‡ฐ๐Ÿ‡ท ๐Ÿ‡ฎ๐Ÿ‡ฉ ๐Ÿ‡ต๐Ÿ‡ฑ Multi-language support([electerm-locales](https://github.com/electerm/electerm-locales), contributions/fixes welcome) - Double click to directly edit (small) remote files. - Auth with publicKey + password. - Support Zmodem(rz, sz). - Support ssh tunnel. - Support [Trzsz](https://github.com/trzsz/trzsz)(trz/tsz), similar to rz/sz, and compatible with tmux. - Transparent window(Mac, win). - Terminal background image. - Global/session proxy. - Quick commands - UI/terminal theme - Sync bookmarks/themes/quick commands to github/gitee secret gist - Quick input to one or all terminals. - AI assistant integration (supporting [DeepSeek](https://www.deepseek.com), OpenAI, and other AI APIs) to help with command suggestions, script writing, and explaining selected terminal content - MCP (Model Context Protocol) widget for AI assistants and external tools integration - see [MCP Widget Usage Guide](https://github.com/electerm/electerm/wiki/MCP-Widget-Usage-Guide) - Deep link support: Open connections with URLs like `telnet://192.168.2.31:34554` or `ssh://user@host:22` - see [Deep link support wiki](https://github.com/electerm/electerm/wiki/Deep-link-support) - Command line usage: check [wiki](https://github.com/electerm/electerm/wiki/Command-line-usage) ## Download - [Homepage](https://electerm.html5beta.com) - [sourceforge](https://sourceforge.net/projects/electerm.mirror/files/) - [github releases](https://github.com/electerm/electerm/releases) ## Install - For Mac user: `brew install --cask electerm` - With snap: `sudo snap install electerm --classic` - For some Linux distribution, you can find it from OS default App store(Ubuntu, Deepin, Mint...). - For some linux OS, the `rpm`, `deb`, or `snap` release may not work, you can try the `tar.gz` or `.appImage` release. - For Windows users, you can install it from [windows store](https://www.microsoft.com/store/apps/9NCN7272GTFF), command-line installer [winget](https://github.com/microsoft/winget-cli) and [scoop](https://github.com/lukesampson/scoop) is also recommended: ```powershell # winget https://github.com/microsoft/winget-cli winget install electerm.electerm # scoop https://github.com/lukesampson/scoop scoop bucket add dorado https://github.com/chawyehsu/dorado scoop install dorado/electerm ``` - Install from Debian repository (for Debian/Ubuntu-based systems) with `apt` command Check [https://electerm-repos.html5beta.com/deb](https://electerm-repos.html5beta.com/deb) - Install from npm ```bash npm i -g electerm # After installation, it will immediately open for windows and linux, # For macOS, it will open the drag to install panel ``` ## Upgrade - Auto upgrade: When a new version is released, you will get an upgrade notification after you start electerm again. You can then click the upgrade button to upgrade. - Download: Just download the latest edition, reinstall. - Npm: If you install from npm, just run `npm i -g electerm` again. - If use Snap or some other distribution system, these systems may provide upgrades. ## Known issues [https://github.com/electerm/electerm/wiki/Know-issues](https://github.com/electerm/electerm/wiki/Know-issues) ## Troubleshoot [https://github.com/electerm/electerm/wiki/Troubleshoot](https://github.com/electerm/electerm/wiki/Troubleshoot) ## Discussion [Discussion board](https://github.com/electerm/electerm/discussions) ![electerm-wechat-group-qr.jpg](https://electerm.html5beta.com/electerm-wechat-group-qr.jpg) ## Support Would love to hear from you, please tell me what you think, [submit an issue](https://github.com/electerm/electerm/issues), [Start a new discussion](https://github.com/electerm/electerm/discussions/new), [create/fix language files](https://github.com/electerm/electerm-locales) or create pull requests, all welcome. ## Sponsor this project github sponsor [https://github.com/sponsors/electerm](https://github.com/sponsors/electerm) kofi [https://ko-fi.com/zhaoxudong](https://ko-fi.com/zhaoxudong) wechat donate [![wechat donate](https://electerm.html5beta.com/electerm-wechat-donate.png)](https://github.com/electerm) ## Dev ```bash # May only works in Linux # needs nodejs/npm, suggest using nvm to install nodejs/npm # with nodejs 22.x git clone [email protected]:electerm/electerm.git cd electerm npm config set legacy-peer-deps true npm i # start vite dev server, requires port 5570 npm start # in a separate terminal session run app npm run app # code format check npm run lint # code format fix npm run fix ``` ## Test ```bash npm run b npm run prepare-test cp .sample.env .env # edit .env, fill your test host/username/password, may only works in mac OS npm run test ``` ## Test build ```bash # May only works in Linux # Install yarn first(to do yarn autoclean) # See https://yarnpkg.com/en/docs/install # Build linux only with -l npm i npm run b npm run pb ./node_modules/.bin/electron-builder --linux tar.gz # or replace tar.gz to rpm/deb/AppImage # check dist/ folder # build for linux arm/ ./node_modules/.bin/electron-builder --linux --arm64 ``` ## Video guide - [https://electerm.html5beta.com/videos](https://electerm.html5beta.com/videos) ## Change log Visit [Releases](https://github.com/electerm/electerm/releases). ## License MIT ## Star History [![Star History Chart](https://api.star-history.com/svg?repos=electerm/electerm&type=Date)](https://www.star-history.com/#electerm/electerm&Date)", Assign "at most 3 tags" to the expected json: {"id":"229","tags":[]} "only from the tags list I provide: []" returns me the "expected json"