{"id":50264852,"url":"https://github.com/nyakang/nyaterm","last_synced_at":"2026-05-27T13:01:47.574Z","repository":{"id":357262033,"uuid":"1222665950","full_name":"nyakang/nyaterm","owner":"nyakang","description":"A modern remote terminal workspace","archived":false,"fork":false,"pushed_at":"2026-05-27T05:14:21.000Z","size":11012,"stargazers_count":33,"open_issues_count":6,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-27T07:11:20.103Z","etag":null,"topics":["otp","react","serialport","sftp","sftp-client","ssh","ssh-client","tauri","telnet","telnet-client","terminal","xterm","xtermjs"],"latest_commit_sha":null,"homepage":"https://nyaterm.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nyakang.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-27T15:31:38.000Z","updated_at":"2026-05-27T06:22:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nyakang/nyaterm","commit_stats":null,"previous_names":["nyakang/nyaterm"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/nyakang/nyaterm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyakang%2Fnyaterm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyakang%2Fnyaterm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyakang%2Fnyaterm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyakang%2Fnyaterm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nyakang","download_url":"https://codeload.github.com/nyakang/nyaterm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyakang%2Fnyaterm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33566873,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["otp","react","serialport","sftp","sftp-client","ssh","ssh-client","tauri","telnet","telnet-client","terminal","xterm","xtermjs"],"created_at":"2026-05-27T13:01:45.720Z","updated_at":"2026-05-27T13:01:47.555Z","avatar_url":"https://github.com/nyakang.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./public/nyaterm.svg\" alt=\"NyaTerm\" width=\"128\" height=\"128\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eNyaTerm\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eA modern remote terminal workspace built with Tauri, React, and Rust.\u003c/strong\u003e\u003cbr/\u003e\n  \u003ca href=\"https://nyaterm.app\"\u003e\u003cstrong\u003enyaterm.app\u003c/strong\u003e\u003c/a\u003e ·\n  \u003ca href=\"https://nyaterm.app/docs/\"\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  SSH, local shells, Telnet, Serial, SFTP, tunnels, OTP, AI assistance, and encrypted sync in one desktop client.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://nyaterm.app\"\u003e\u003cimg alt=\"Version\" src=\"https://img.shields.io/github/v/release/nyakang/nyaterm?style=flat-square\u0026logo=github\u0026color=0EA5E9\u0026labelColor=334155\"\u003e\u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://github.com/nyakang/nyaterm/releases\"\u003e\u003cimg alt=\"GitHub downloads\" src=\"https://img.shields.io/github/downloads/nyakang/nyaterm/total?style=flat-square\u0026logo=github\u0026color=0EA5E9\u0026label=Downloads\u0026labelColor=334155\"\u003e\u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"#\"\u003e\u003cimg alt=\"Platform\" src=\"https://img.shields.io/badge/Platform-Windows%20%7C%20macOS%20%7C%20Linux-0EA5E9?style=flat-square\u0026logo=linux\u0026labelColor=334155\"\u003e\u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"LICENSE\"\u003e\u003cimg alt=\"License\" src=\"https://img.shields.io/badge/License-MIT-0EA5E9?style=flat-square\u0026logo=readthedocs\u0026labelColor=334155\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"./README.md\"\u003eEnglish\u003c/a\u003e · \u003ca href=\"./README.zh-CN.md\"\u003e简体中文\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"./docs-site/static/img/home/product-dark.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"./docs-site/static/img/home/product-light.png\"\u003e\n    \u003cimg alt=\"NyaTerm main workspace\" src=\"./docs-site/static/img/home/product-light.png\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n---\n\n\u003ca name=\"ai-assistant\"\u003e\u003c/a\u003e\n# AI Assistant\n\nNyaTerm includes an AI Assistant panel for command generation, terminal output explanation, error analysis, and multi-step terminal workflows.\n\n## What It Can Do\n\n- **Ask mode** for one-off help such as generating commands, explaining selected output, and analyzing errors\n- **Agent mode** for multi-step work using an observe-decide-run loop against the active terminal session\n- **Recent-output actions** so you can ask AI to explain the latest terminal output without manually copying it\n- **Structured command cards** with risk levels, execution controls, and optional save-to-quick-command support\n- **Inline terminal capture** during Agent execution with configurable `Terminal Output Lines`\n- **Session mentions** with `@` to bring other terminal sessions into the AI context\n- **Provider management** for built-in providers and custom OpenAI-compatible endpoints\n- **Risk control** for high-impact commands, including approval gates and safer alternatives\n\n---\n\n\u003ca name=\"what-is-nyaterm\"\u003e\u003c/a\u003e\n# What is NyaTerm\n\n**NyaTerm** is a desktop client for SSH-centric operations and mixed terminal workflows. It combines a React + Tauri interface with a Rust backend so you can manage remote hosts, local shells, file transfers, authentication, network tooling, AI-assisted terminal actions, session import/export, diagnostics, and encrypted sync/backup from one workspace.\n\n- **NyaTerm is** an SSH client for developers, sysadmins, and DevOps engineers\n- **NyaTerm is** a terminal workspace with tabs, horizontal splits, and vertical splits\n- **NyaTerm is** an SFTP browser with a transfer queue and local-edit-then-upload-back workflow\n- **NyaTerm supports** SSH, Local Terminal, Telnet, and Serial sessions\n- **NyaTerm is not** a shell replacement; it connects to remote shells, local shells, Telnet endpoints, and serial devices\n\n---\n\n\u003ca name=\"why-nyaterm\"\u003e\u003c/a\u003e\n# Why NyaTerm\n\nNyaTerm is built for people who move between servers, local commands, devices, and configuration files all day.\n\n- **Workspace-first** — keep related terminals together with tabs, split panes, side panels, and child windows\n- **Remote operations in context** — browse SFTP files, follow terminal paths, run transfers, and edit remote files without leaving the session\n- **Security-aware workflows** — manage credentials, keys, known hosts, OTP, lock screen, and master-password protected storage\n- **Portable configuration** — import from existing tools, export encrypted `.dgfy` backups, and sync encrypted snapshots through WebDAV or S3-compatible storage\n- **AI where it is useful** — generate commands, inspect output, and run approved multi-step actions from the active terminal context\n\n---\n\n\u003ca name=\"features\"\u003e\u003c/a\u003e\n# Features\n\n## Sessions and Workspace\n\n- SSH, Local Terminal, Telnet, and Serial session support\n- Multi-tab workspace with horizontal and vertical pane splits\n- Saved connections with folders, icons, metadata, duplication, reconnect, and import flows\n- Main-window `Background Image` customization with `cover` / `contain` / `stretch` / `tile` sizing and adjustable `Background Content Opacity`\n- Left and right activity bars for file explorer, network, Security/Auth, Sync \u0026 Backup, AI Assistant, saved connections, active sessions, command history, and resource monitoring\n- Child windows for settings, new-session creation, quick-command editing, and auto-upload prompts\n- Tray support with optional minimize-to-tray behavior\n\n## Terminal Experience\n\n- Terminal search, copy/paste, context menus, and selected-text actions\n- Command history with fuzzy suggestions and configurable length filters for noisy commands\n- Optional line-number and timestamp gutter\n- Optional action links for IPv4 addresses, `host:port`, and archive filenames\n- Optional keyword highlighting with built-in presets and custom rules\n- AI shortcuts for explaining recent output, plus inline Agent command output with configurable `Terminal Output Lines`\n- Large-output protection, configurable scrollback, SSH keep-alive, and session recording\n- Online search and translation from selected terminal text\n- Zmodem file transfer support directly from the terminal\n- Customizable keyboard shortcuts for terminal and UI actions, including `Backspace Mode` selection for Telnet and Serial sessions\n\n## SFTP and File Workflows\n\n- Built-in SFTP file explorer for SSH sessions\n- Upload, download, rename, move, delete, properties, new file/folder, and symlink actions\n- Folder upload, multi-select, editable path bar, and manual/automatic sync with terminal cwd\n- Transfer queue with pause, resume, cancel, retry, timestamp preservation, and configurable concurrency\n- Open remote files in a local editor and upload saved changes back through the watcher-driven auto-upload flow\n- External drag-and-drop upload support on Windows\n\n## Security, Authentication, and Networking\n\n- Password authentication, private keys, host-key verification, and encrypted local persistence\n- Credential management with regex-based terminal auto-fill\n- OTP management with TOTP/HOTP, QR import, and SSH auto-fill support\n- Proxy configurations, SSH jump hosts, and local / remote / dynamic tunnels\n- Screen lock, master password, diagnostics settings, local log management, and diagnostics bundle export\n\n## Sync, Backup, and Migration\n\n- Encrypted cloud sync and backup through WebDAV and S3-compatible storage\n- Master password required before sync, backup, encrypted import/export, or scheduled encrypted backup actions\n- Startup sync checks, debounced auto-push after supported local changes, and scheduled backup retention\n- Manual test / push / pull / backup actions, remote backup restore, and snapshot-level conflict resolution\n- Session import from Xshell, MobaXterm, and WindTerm\n- Full-app encrypted `.dgfy` import/export for portable NyaTerm configuration\n\n---\n\n\u003ca name=\"screenshots\"\u003e\u003c/a\u003e\n# Screenshots\n\n## Workspace\n\nManage SSH, local shell, Telnet, and Serial sessions inside one tabbed and split-pane workspace.\n\n\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"./docs-site/static/img/home/overview-dark.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"./docs-site/static/img/home/overview-light.png\"\u003e\n    \u003cimg alt=\"NyaTerm workspace overview\" src=\"./docs-site/static/img/home/overview-light.png\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n## Appearance and Background Image\n\nUse a local wallpaper behind the main window, tune `Image Sizing`, `Image Opacity`, and `Background Content Opacity`, and keep child windows readable with solid surfaces.\n\n\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"./docs-site/static/img/home/cover-dark.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"./docs-site/static/img/home/cover-light.png\"\u003e\n    \u003cimg alt=\"NyaTerm background image customization\" src=\"./docs-site/static/img/home/cover-light.png\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n## Terminal Enhancements\n\nUse command history, search, translation, action links, timestamps, keyword highlighting, and large-output protection in the terminal.\n\n\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"./docs-site/static/img/home/terminal-dark.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"./docs-site/static/img/home/terminal-light.png\"\u003e\n    \u003cimg alt=\"NyaTerm terminal features\" src=\"./docs-site/static/img/home/terminal-light.png\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n## Remote Files\n\nBrowse SFTP files beside the terminal, manage transfers, and send local editor changes back to the remote path.\n\n\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"./docs-site/static/img/home/files-dark.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"./docs-site/static/img/home/files-light.png\"\u003e\n    \u003cimg alt=\"NyaTerm SFTP file workflow\" src=\"./docs-site/static/img/home/files-light.png\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n## Security and Network Tools\n\nManage credentials, OTP, known hosts, proxies, jump hosts, and SSH tunnels from dedicated panels.\n\n\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"./docs-site/static/img/home/security-dark.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"./docs-site/static/img/home/security-light.png\"\u003e\n    \u003cimg alt=\"NyaTerm security and network tools\" src=\"./docs-site/static/img/home/security-light.png\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n## Sync and Backup\n\nSync encrypted portable configuration snapshots and restore backups through WebDAV or S3-compatible storage.\n\n\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"./docs-site/static/img/home/sync-dark.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"./docs-site/static/img/home/sync-light.png\"\u003e\n    \u003cimg alt=\"NyaTerm sync and backup\" src=\"./docs-site/static/img/home/sync-light.png\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n---\n\n\u003ca name=\"supported-platforms\"\u003e\u003c/a\u003e\n# Supported Platforms\n\n| OS | Support |\n| :--- | :--- |\n| **Windows** | Windows 10/11, x64 / arm64 |\n| **macOS** | macOS 12+, Intel / Apple Silicon |\n| **Linux** | Ubuntu 20.04+, Fedora 36+, Arch Linux, and similar distributions |\n\nDownload installers from [nyaterm.app](https://nyaterm.app) or the [Releases](https://github.com/nyakang/nyaterm/releases) page.\n\n---\n\n\u003ca name=\"supported-session-types\"\u003e\u003c/a\u003e\n# Supported Session Types\n\n| Type | Typical use | Notes |\n|------|-------------|-------|\n| SSH | Linux / Unix remote servers | Supports SFTP, OTP, resource monitor, proxy, jump host, and tunnels |\n| Local Terminal | Local shell workflows | Uses your local shell path and working directory |\n| Telnet | Legacy network devices or lab systems | Lightweight terminal session without SSH-only features, with `Backspace Mode` for `Ctrl+H (BS)` or `DEL (0x7F)` |\n| Serial | Routers, boards, embedded devices | Configurable port, baud rate, data bits, parity, stop bits, and `Backspace Mode` |\n\n---\n\n\u003ca name=\"getting-started\"\u003e\u003c/a\u003e\n# Getting Started\n\n## Download\n\nDownload the latest build for your platform from [nyaterm.app](https://nyaterm.app) or [Releases](https://github.com/nyakang/nyaterm/releases).\n\n| Platform | Format |\n|----------|--------|\n| Windows | `.msi` / `.exe` / portable `.zip` |\n| macOS | `.dmg` |\n| Linux | `.deb` / `.AppImage` |\n\nFor the Windows portable edition, extract the zip and run `NyaTerm.exe`. Portable updates are manual: download the new portable zip, close NyaTerm, replace the program files, and keep the `data/` folder.\n\n## Prerequisites for Development\n\n- Node.js 18+\n- Rust stable via [rustup](https://rustup.rs/)\n- pnpm\n\n## Development\n\n```bash\ngit clone https://github.com/nyakang/nyaterm.git\ncd nyaterm\npnpm install\npnpm tauri dev\n```\n\n## Project Structure\n\n```text\n├── src/                    # React frontend\n│   ├── components/         # UI, terminal, panels, dialogs, settings\n│   ├── hooks/              # Frontend state and workflow hooks\n│   ├── lib/                # Terminal, AI, sync, theme, platform helpers\n│   ├── pages/              # Child-window pages\n│   └── i18n/               # Application translations\n├── src-tauri/              # Tauri 2 + Rust backend\n│   ├── src/cmd/            # Tauri commands exposed to the frontend\n│   ├── src/core/           # SSH, SFTP, PTY, Telnet, Serial, AI, backup logic\n│   ├── src/config/         # Persistent config models\n│   └── crates/otp/         # Local OTP implementation\n├── docs-site/              # Docusaurus documentation site\n├── public/                 # Static assets\n└── scripts/                # Checks, version sync, and demo helper scripts\n```\n\n---\n\n\u003ca name=\"credits\"\u003e\u003c/a\u003e\n# Credits\nThanks to the following projects and libraries that make NyaTerm possible:\n- [WindTerm](https://github.com/kingToolbox/WindTerm) - Inspired the design and features of NyaTerm\n- [tabby](https://github.com/Eugeny/tabby) - An excellent cross-platform terminal that provided many design inspirations\n- [xterm.js](https://xtermjs.org/) - A powerful frontend terminal emulator that provides rich terminal functionality and extensibility\n\n\u003ca name=\"license\"\u003e\u003c/a\u003e\n# License\n\nThis project is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnyakang%2Fnyaterm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnyakang%2Fnyaterm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnyakang%2Fnyaterm/lists"}