LAPTOP-O016UC3M\Qi Chen a47f9ddc8c Improves performance and memoization of known hosts UI
Optimizes rendering of known hosts management by introducing memoization and limiting rendered items for large datasets. Refactors callback and state management in several components to reduce unnecessary re-renders and improve responsiveness.

Enhances code structure for maintainability and future scalability, and adds debug logs to aid profiling and diagnostics.
2025-12-09 22:41:43 +08:00
2025-12-07 03:25:07 +08:00
2025-12-07 03:25:07 +08:00
2025-12-07 03:25:07 +08:00
2025-12-07 03:25:07 +08:00
2025-12-07 03:25:07 +08:00
2025-12-07 03:25:07 +08:00

Netcatty — SSH workspace, SFTP, and terminals in one

Netcatty UI

Netcatty is a modern SSH manager and terminal app that brings host grouping, drag-to-organize, SFTP side panel, keychain, port forwarding, and a rich UI theme. It ships with the Ghostty Web terminal (VT100) and an Electron desktop bridge for native SSH/SFTP.


Highlights

  • 🧭 Host groups & breadcrumbs: right-click to create/delete groups, drag hosts or groups into target groups, double-click to drill into a group, and breadcrumb navigation back to root.
  • 🗂️ SFTP panel: collapsible sidebar, single-click to enter directories, upload/delete/download, and loading animations.
  • 🗝️ Keychain: import/generate SSH keys, choose password/key auth; single-click a host to connect.
  • 🖥️ Terminal UX: Ghostty Web engine, auto-resize on window changes, connection logs, timeout/cancel, and connection progress UI.
  • 🌗 Themes & branding: light/dark toggle, custom accent color, Netcatty logo baked in.
  • 🔌 Electron bridge: native SSH/SFTP channels without extra browser plugins.

Getting Started

# install dependencies
npm install
# dev mode (Vite + Electron)
npm run dev

Key paths

  • Web entry: index.html / App.tsx
  • Terminal: components/Terminal.tsx
  • SFTP: components/SFTPPanel.tsx
  • Keychain: components/KeyManager.tsx
  • Electron main: electron/main.cjs

Core Workflows

  • Create a host: click “New Host”, fill address/port/username, pick password or key; supports group path.
  • Organize groups: right-click to create/delete, drag groups to become subgroups, drag hosts into groups, and use breadcrumbs to navigate.
  • SFTP: after connect, open SFTP, single-click into dirs, upload/download/delete, with loading spinner and animated sidebar.
  • Keychain: import/generate SSH keys; single-click a host to connect with the chosen auth method.

Scripts

  • npm run dev: Vite frontend + Electron dev.
  • npm run build: build frontend (Electron packaging configurable).

License

MIT

S
Description
No description provided
Readme GPL-3.0 189 MiB
Languages
TypeScript 65.5%
JavaScript 34.1%
CSS 0.2%
Shell 0.1%