https://github.com/termlnk/termlnk
Termlnk is a modern terminal reimagined with AI agents, SSH workflows, and a rich extension system.
https://github.com/termlnk/termlnk
ai ai-agent cross-platform developer-tools linux macos mcp productivity sftp sftp-client ssh ssh-client terminal terminal-emulator termlnk windows
Last synced: 23 days ago
JSON representation
Termlnk is a modern terminal reimagined with AI agents, SSH workflows, and a rich extension system.
- Host: GitHub
- URL: https://github.com/termlnk/termlnk
- Owner: termlnk
- License: other
- Created: 2026-03-28T09:45:55.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-05-31T17:48:28.000Z (30 days ago)
- Last Synced: 2026-05-31T19:07:46.724Z (30 days ago)
- Topics: ai, ai-agent, cross-platform, developer-tools, linux, macos, mcp, productivity, sftp, sftp-client, ssh, ssh-client, terminal, terminal-emulator, termlnk, windows
- Language: TypeScript
- Homepage: https://termlnk.com
- Size: 14.2 MB
- Stars: 4
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README

Termlnk
A modern, extensible smart terminal for developers.
**SSH & SFTP · AI Agent with MCP · 71 themes · Plugin ecosystem · Cross-platform.**
**English** | [简体中文][readme-zh-cn-link] | [繁體中文][readme-zh-tw-link] | [日本語][readme-ja-link] | [한국어][readme-ko-link]
[![][license-shield]][license-link]
[![][release-shield]][releases-link]
[![][downloads-shield]][releases-link]
[![][platform-shield]][platform-link]
---
Table of contents
- [🌈 Highlights](#-highlights)
- [🚀 Quick Start](#-quick-start)
- [💻 Platform & Installation Notes](#-platform--installation-notes)
- [🌐 Web Edition (Self-Hosting)](#-web-edition-self-hosting)
- [🛠 Development](#-development)
- [🌐 Internationalization](#-internationalization)
- [📸 Screenshots](#-screenshots)
- [🤝 Contributing](#-contributing)
- [💬 Community](#-community)
- [🙏 Acknowledgements](#-acknowledgements)
- [📄 License](#-license)
## 🌈 Highlights
Termlnk packs a fast native terminal, a complete SSH/SFTP client, and a built-in AI agent into a single app — on your desktop, or self-hosted in any browser.
- 🖥 **Terminal & sessions** — local PTY and remote SSH in one workspace, with recursive split / magnify layouts, full xterm.js rendering (ligatures, true color, Sixel, image protocols), buffer search, hyperlinks, IME input, shell integration (OSC 633), and session restore.
- 🔐 **SSH & SFTP** — a hierarchical host tree with password / key / agent auth, `ProxyJump` chains, SOCKS5 and X11 forwarding, plus a dual-pane SFTP browser with transfer queue, `trzsz` / `zmodem`, and a permission editor.
- 🤖 **AI agent** — multi-turn chat with MCP tool servers, swappable across OpenAI, Claude, Gemini, DeepSeek, Qwen or any OpenAI-compatible endpoint, plus an approval-gated `terminal_run` tool and per-session skills.
- 🧩 **Extensions** — VS Code-style contribution points (commands, menus, UI parts, settings) with a one-click marketplace, a stable TypeScript API, and React components injectable into any UI slot.
- 🎨 **Theming & window** — 71 built-in Base46 themes (56 dark, 15 light) with a live editor, plus configurable blur, opacity, fonts, and keybindings.
- 💻 **Cross-platform & offline-first** — a native app for macOS (Intel & Apple Silicon), Windows and Linux that runs fully offline.
- 🌐 **Self-hostable web edition** — the same terminals, SSH, AI agent and SFTP from any browser, via a one-command Docker deploy with built-in Caddy auto-HTTPS.
- 🏝 **Dynamic Island (macOS)** — a notch-aware status overlay for AI agent sessions, with sounds for start, completion, approvals and errors.
## 🚀 Quick Start
### Build from source
```bash
git clone https://github.com/termlnk/termlnk.git
cd termlnk
pnpm install
cd apps/desktop
pnpm dev
```
### Package installers
```bash
cd apps/desktop
pnpm make:mac # macOS .dmg / .zip
pnpm make:win # Windows .exe / .msi
pnpm make:linux # Linux .AppImage / .deb / .rpm
```
> **Note:** prebuilt binaries are not published yet. Releases will appear on the [GitHub Releases][releases-link] page once they are available.
## 💻 Platform & Installation Notes
macOS builds are code-signed with a Developer ID certificate but not notarized, so Gatekeeper may still prompt on first launch. Windows and Linux builds are unsigned.
macOS: Gatekeeper warning on first launch
**Option 1** — Right-click `Termlnk.app` in Finder > Open > confirm.
**Option 2** — System Settings > Privacy & Security > scroll to Security > click Open Anyway.
**Option 3** — Run in Terminal:
```bash
xattr -cr /Applications/Termlnk.app
```
Windows: SmartScreen blocks the installer
**Option 1** — Click "More info" on the SmartScreen dialog, then "Run anyway".
**Option 2** — Settings > Apps > Advanced app settings > set App Install Control to allow apps from anywhere.
## 🌐 Web Edition (Self-Hosting)
Beyond the desktop app, Termlnk ships **termlnk-web** — a self-hosted server twin that runs the exact same DI container, business plugins, and vault, with Electron IPC swapped for HTTP + WebSocket. Reach your terminals, hosts, AI agent, SFTP, and skills from any modern browser.
> ⚠ **Run termlnk-web only on a machine you trust.** It holds the vault master key and has the same execution power as the desktop's main process (direct SSH/SFTP, AI inference, local filesystem access). It is *not* a zero-knowledge public backend.
Prebuilt multi-arch images (amd64 / arm64) are published to GHCR — no need to clone the monorepo.
```bash
cd apps/web
# One-click: generate a strong master password, pull the image, start, health-check
./install.sh
# With automatic HTTPS (built-in Caddy + Let's Encrypt)
./install.sh --tls termlnk.example.com
```
Or deploy manually with Docker Compose:
```bash
cd apps/web
printf '%s' 'choose-a-strong-passphrase' > master_password.secret && chmod 600 master_password.secret
docker compose up -d
```
See the **[termlnk-web deployment guide](apps/web/README.md)** for one-click & manual deployment, reverse-proxy (Caddy / nginx) configs, environment variables, data persistence, upgrades, and the security checklist.
## 🛠 Development
```bash
pnpm build # Build all library packages
pnpm typecheck # Run TypeScript type check
pnpm test # Run all unit tests
pnpm coverage # Run tests with coverage report
pnpm lint # Lint the codebase
pnpm lint:fix # Auto-fix lint issues (also injects license headers)
```
## 🌐 Internationalization
Termlnk ships with 5 languages out of the box:
| Language | Code |
| :--- | :--- |
| English | `en-US` |
| 简体中文 | `zh-CN` |
| 繁體中文 | `zh-TW` |
| 日本語 | `ja-JP` |
| 한국어 | `ko-KR` |
Help us add new languages by following the [contribution guide](#-contributing).
## 📸 Screenshots

Workspace
SSH split
Drag to split
Magnify pane

AI Agent
SFTP browser
71 themes
Transparent window
## 🤝 Contributing
Contributions are welcome. Before submitting a pull request, please:
1. Fork the repository and create a feature branch.
2. Follow the project's code conventions and RxJS reactive programming style guide.
3. Ensure `pnpm lint` and `pnpm test` pass locally.
4. Submit a PR against `main` with a Conventional Commit title (`feat:`, `fix:`, `refactor:`, `chore:`, ...).
## 💬 Community
- [GitHub Discussions][github-community-link] — ask questions, share ideas.
- [GitHub Issues][github-issues-link] — report bugs and request features.
## 🙏 Acknowledgements
Termlnk stands on the shoulders of outstanding open-source projects and products. We are grateful to:
- **[Univer](https://github.com/dream-num/univer)** — Termlnk's overall architecture was deeply inspired by this excellent open-source project. Its clean, plugin-driven design shaped how we structured our DI, contribution-point, and command systems.
- **[Alma](https://alma.now)** — The overall aesthetic and theme design of Termlnk draws inspiration from this beautiful product.
## 📄 License
Copyright © 2026-present Termlnk.
Licensed under the [**PolyForm Noncommercial License 1.0.0**][license-link]. **Commercial use is not permitted.** Forks and derivative works must also be open-source and non-commercial, and must be distributed under the same license.
The "Termlnk" name, logo and other Termlnk marks are trademarks of the Termlnk project. The source-code license does NOT grant any rights to the marks — see [TRADEMARK.md][trademark-link] for details.
[readme-zh-cn-link]: ./docs/README.zh-CN.md
[readme-zh-tw-link]: ./docs/README.zh-TW.md
[readme-ja-link]: ./docs/README.ja.md
[readme-ko-link]: ./docs/README.ko.md
[license-shield]: https://img.shields.io/badge/license-PolyForm%20Noncommercial-orange.svg?style=flat-square
[license-link]: ./LICENSE
[release-shield]: https://img.shields.io/github/v/release/termlnk/termlnk?style=flat-square
[downloads-shield]: https://img.shields.io/github/downloads/termlnk/termlnk/total?style=flat-square&color=brightgreen
[platform-shield]: https://img.shields.io/badge/platform-macOS%20%7C%20Windows%20%7C%20Linux-lightgrey.svg?style=flat-square
[platform-link]: #-platform--installation-notes
[releases-link]: https://github.com/termlnk/termlnk/releases
[github-issues-link]: https://github.com/termlnk/termlnk/issues
[github-community-link]: https://github.com/termlnk/termlnk/discussions
[trademark-link]: ./TRADEMARK.md