Skip to content

Repository files navigation

TermX

中文文档

TermX hero

TermX is a modern SSH + SFTP workspace for developers and operators. It combines a native cross-platform desktop experience with a Docker-deployable Web mode, keeping terminal sessions, server files, command history, server status, and AI operation entry points in one focused interface.

Inspired by DBX. TermX pays respect to DBX's clean desktop interaction model and adapts that spirit to SSH, SFTP, and server operations.

Highlights

  • Native desktop first: Windows, macOS, and Linux desktop builds powered by Tauri 2.
  • SSH terminal workspace: multi-tab terminal sessions, command history, right-click actions, keepalive, and optional directory following.
  • SFTP file manager: remote directory browsing, upload/download progress, drag-and-drop upload, inline rename, preview, delete confirmation, and file metadata.
  • Server status: CPU, memory, disk, uptime, and load information in the same connection tab.
  • Docker Web mode: run TermX as a single-user Web service when desktop GUI is not the right deployment shape.
  • Local-first storage: SQLite metadata plus encrypted secrets through the TermX Secret Vault.

Screens

TermX follows a DBX-like desktop layout:

  • left connection tree and folders
  • center SSH terminal workspace
  • right server status and SFTP directory
  • optional right dock for command library, history, and AI operations

Development

Before changing the desktop UI, SSH/SFTP panels, settings, dialogs, menus, or packaging, read the project skill at .codex/skills/termx-ui/SKILL.md.

pnpm.cmd install
pnpm.cmd dev
pnpm.cmd tauri dev

Desktop Build

pnpm.cmd build:desktop:windows

Windows artifacts are generated under:

target/release/TermX.exe
target/release/bundle/nsis/TermX_0.1.0_x64-setup.exe
target/release/bundle/msi/TermX_0.1.0_x64_en-US.msi

target/ can be several GB during Rust/Tauri development because it contains incremental compilation caches, debug objects, release objects, and bundle staging files. The final installer remains lightweight, and target/ is ignored by Git.

To reclaim local disk space:

cargo clean

Docker

docker compose -f deploy/docker-compose.yml up --build

Open http://localhost:4225.

Docker/Web mode starts SSH and SFTP connections from the container network, so target servers must be reachable from inside the container.

Environment

  • TERMX_DATA_DIR: app data directory. Defaults to a platform data dir on desktop and /app/data in Docker.
  • TERMX_STATIC_DIR: static assets directory for termx-web.
  • TERMX_WEB_PASSWORD: single-user password for Docker/Web mode.
  • TERMX_SECRET_KEY: encryption key used for deterministic secret access in containers.
  • TERMX_PUBLIC_BASE_PATH: optional reverse proxy subpath.

Verification

pnpm.cmd typecheck
pnpm.cmd test
pnpm.cmd build
cargo check -p termx
cargo test -p termx-core
cargo test -p termx-web

Acknowledgement

TermX is inspired by DBX's elegant desktop product design and interaction density. DBX is a database workspace; TermX explores the same level of polish for SSH, SFTP, and server operations.

About

下一代 AI SSH Workspace

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages