ssh-x-term 2.0.1 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +125 -320
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -16,388 +16,182 @@
16
16
  <a href="https://github.com/eugeniofciuvasile/ssh-x-term/blob/main/LICENSE"><img src="https://img.shields.io/github/license/eugeniofciuvasile/ssh-x-term?style=flat-square" alt="License"></a>
17
17
  </p>
18
18
 
19
- **SSH-X-Term** is a powerful terminal-based SSH client with a TUI (Text User Interface) built on [Bubble Tea](https://github.com/charmbracelet/bubbletea).
20
- It seamlessly integrates **SSH connection management**, **SCP/SFTP file transfers**, and **secure credential storage** into a single, responsive interface.
19
+ ---
21
20
 
22
- Credentials can be stored securely using your **local system keyring** (via [go-keyring](https://github.com/zalando/go-keyring)) or directly in your **Bitwarden vault**.
21
+ **SSH-X-Term** is a modern, terminal-based SSH client with a rich TUI (Text User Interface) built on
22
+ [Bubble Tea](https://github.com/charmbracelet/bubbletea).
23
23
 
24
- ---
24
+ As of **version 2.0**, SSH-X-Term is a **fully self-contained SSH client** implemented entirely in Go.
25
+ There are **no external SSH tools or wrappers** involved — all SSH, SCP, SFTP, and terminal handling is built in.
25
26
 
26
- > **⚠️ BREAKING CHANGE - Version 2.0+**
27
- > Starting from version 2.0, SSH-X-Term uses **pure Go SSH client** instead of external tools (passh, plink, ssh command).
28
- > **Old versions (< 2.0)** used external SSH clients and required `passh`/`plink.exe` installation.
29
- > **New versions (>= 2.0)** have **no external dependencies** - everything is handled by the built-in Go SSH client.
30
- >
31
- > ### What Changed:
32
- > - ✅ **No more passh/plink** - Pure Go SSH implementation
33
- > - ✅ **SSH Agent support** - Automatically uses ssh-agent for key authentication
34
- > - ✅ **Encrypted keys** - Works with encrypted SSH keys via ssh-agent
35
- > - ✅ **Better compatibility** - Works on all platforms without external tools
36
- > - ✅ **Direct connection** - New `-c <connection-id>` flag for instant connections
37
- > - ✅ **xterm-256color** - Full terminal support built-in
38
- >
39
- > If you're upgrading from version < 2.0, your existing configurations will continue to work, but you can now uninstall `passh` and `plink.exe` if you wish.
27
+ It combines **SSH connection management**, **interactive terminals**, **SCP/SFTP file transfers**, and
28
+ **secure credential storage** into a single, fast, cross-platform application.
40
29
 
41
- ---
30
+ Credentials can be stored securely using your **local system keyring** or directly in your
31
+ **Bitwarden vault**.
42
32
 
43
- ### 📺 Demo & Walkthrough
33
+ ---
44
34
 
45
- <div align="center">
46
-
47
- [![Watch on YouTube](https://img.shields.io/badge/Watch_on_YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white)](https://www.youtube.com/watch?v=C-s-Lh_VdpQ)
48
-
49
- ![Demo](media/demo.gif)
35
+ ## ✨ What SSH-X-Term 2.0 Is
50
36
 
51
- </div>
37
+ * ✅ **Pure Go SSH client** — no `ssh`, no `passh`, no `plink`
38
+ * ✅ **Cross-platform** — identical behavior on Linux, macOS, and Windows
39
+ * ✅ **Built-in terminal emulator** — full xterm-256color support
40
+ * ✅ **SSH Agent integration** — encrypted keys supported via `ssh-agent`
41
+ * ✅ **First-class TUI** — fast, keyboard-driven, and mouse-aware
52
42
 
53
43
  ---
54
44
 
55
- ## 🚀 Features
45
+ ## 📺 Demo & Walkthrough
46
+
47
+ <div align="center">
56
48
 
57
- ### Quick Connect Mode (NEW in v2.0)
58
- Lightning-fast connection selection via CLI.
59
- - **Instant Access**: `sxt -l` for minimal UI connection picker
60
- - **Pure Go SSH**: Uses built-in Go SSH client (no external dependencies)
61
- - **Direct Connect**: `sxt -c <connection-id>` connects immediately by ID
62
- - **Auto-Filter**: Start typing immediately - filter activates on first keypress
63
- - **Smart Navigation**: Arrow keys exit filter and navigate list
64
- - **Compact Display**: 10 connections per page
65
- - **No External Tools**: No passh, plink, or ssh command needed
66
- - **SSH Agent Support**: Automatically uses ssh-agent for encrypted keys
49
+ [![Watch on YouTube](https://img.shields.io/badge/Watch_on_YouTube-FF0000?style=for-the-badge\&logo=youtube\&logoColor=white)](https://www.youtube.com/watch?v=C-s-Lh_VdpQ)
67
50
 
68
- ### 🖥️ Integrated SSH Terminal
69
- Fully functional terminal emulator built entirely within the TUI.
70
- - **Standards Compliant**: VT100/ANSI escape sequence support for proper rendering.
71
- - **Power User Friendly**: 10,000 line scrollback buffer, mouse & keyboard scrolling.
72
- - **Clipboard**: Text selection with mouse (click & drag), automatic copy, or `Ctrl+C`.
73
- - **Responsive**: Full keyboard support and window resize handling.
74
-
75
- ### 📂 SCP/SFTP File Manager
76
- Seamlessly transfer files without leaving the app.
77
- - **Dual-pane Interface**: Intuitive Local vs. Remote panel navigation.
78
- - **Full Control**: Upload, Download, Rename, Delete, and Create files/directories.
79
- - **Search**: Recursive file search (`/` key) to find deep files instantly.
80
- - **Secure**: Piggybacks on your existing authenticated SSH session.
51
+ ![Demo](media/demo.gif)
81
52
 
82
- ### 🔐 Secure Credential Management
83
- - **Local Storage**: Encrypted via system keyring (Keychain, Gnome Keyring, Credential Manager).
84
- - **Bitwarden Integration**: Direct access to your vault via Bitwarden CLI.
85
- - **Zero Plaintext**: Passwords are **never** stored in plaintext on disk.
86
-
87
- ### ⚡ Automation & Compatibility (v2.0+)
88
- - **Pure Go SSH**: All connections use built-in Go SSH client (no external tools needed)
89
- - **SSH Agent**: Automatic integration with ssh-agent for key authentication
90
- - **Encrypted Keys**: Full support for encrypted SSH keys via ssh-agent
91
- - **Password Auth**: Secure password authentication via system keyring
92
- - **TMUX**: Open connections in new tmux windows automatically
93
- - **xterm-256color**: Full terminal compatibility built-in
53
+ </div>
94
54
 
95
55
  ---
96
56
 
97
- ## 📦 Project Structure
57
+ ## 🚀 Features
98
58
 
99
- ```
100
- ssh-x-term/
101
- ├── .github/
102
- │ ├── ISSUE_TEMPLATE/ # GitHub issue templates (bug, feature, etc.)
103
- │ ├── workflows/ # CI/CD definitions (Go build workflow)
104
- │ └── dependabot.yml # Dependency update automation
105
-
106
- ├── cmd/
107
- │ └── sxt/
108
- │ └── main.go # Application entry point. Parses CLI flags and launches TUI or Quick Connect.
109
-
110
- ├── internal/
111
- │ ├── cli/ # Quick-connect CLI features.
112
- │ │ ├── connector.go # Pure Go SSH client connection (v2.0+)
113
- │ │ └── selector.go # Connection selection in CLI mode
114
- │ ├── config/ # Configuration and credential management
115
- │ │ ├── bitwarden.go # Bitwarden vault integration via CLI
116
- │ │ ├── config.go # Local config and secure keyring storage
117
- │ │ ├── migrate.go # Config format migration between versions
118
- │ │ ├── models.go # Configuration data models
119
- │ │ ├── pathutil.go # Path resolution helpers
120
- │ │ ├── sshconfig.go # SSH config file parsing and generation
121
- │ │ ├── sshconfig_test.go # Unit tests for SSH config
122
- │ │ └── storage.go # Storage provider interfaces
123
- │ ├── ssh/ # Pure Go SSH client implementation (v2.0+)
124
- │ │ ├── client.go # Core SSH client with auth and keyring
125
- │ │ ├── interactive_unix.go # Interactive terminal session (Unix/Linux/Darwin)
126
- │ │ ├── interactive_windows.go # Interactive terminal session (Windows)
127
- │ │ ├── session_bubbletea_unix.go # Bubble Tea SSH session (Unix)
128
- │ │ ├── session_bubbletea_windows.go # Bubble Tea SSH session (Windows)
129
- │ │ ├── sftp.go # SFTP file transfer logic
130
- │ │ ├── sftp_unix.go # Unix-specific SFTP features
131
- │ │ └── sftp_windows.go # Windows-specific SFTP features
132
- │ └── ui/ # Bubble Tea TUI (Text UI): models, logic, and components.
133
- │ ├── components/
134
- │ │ ├── bitwarden_collection_list.go # Bitwarden collection picker.
135
- │ │ ├── bitwarden_config.go # Bitwarden CLI configuration form.
136
- │ │ ├── bitwarden_login_form.go # Bitwarden login UI.
137
- │ │ ├── bitwarden_organization_list.go # Organization select for vault.
138
- │ │ ├── bitwarden_unlock_form.go # Bitwarden vault unlock UI.
139
- │ │ ├── connection_list.go # List and picker of SSH connections.
140
- │ │ ├── delete_confirmation.go # Confirm deletion UI dialog.
141
- │ │ ├── form.go # Common connection add/edit form.
142
- │ │ ├── scp_manager.go # SCP/SFTP dual pane file manager.
143
- │ │ ├── ssh_passphrase_form.go # UI for passphrase input.
144
- │ │ ├── storage_select.go # Local vs Bitwarden credential storage UI.
145
- │ │ ├── styles.go # Common style definitions.
146
- │ │ ├── terminal.go # Terminal emulation inside TUI.
147
- │ │ ├── terminal_test.go # Terminal tests.
148
- │ │ ├── vterm.go # Bubble Tea virtual terminal emulator.
149
- │ │ ├── vterm_color_test.go # Color support tests for terminal.
150
- │ │ └── vterm_test.go # Virtual terminal tests.
151
- │ ├── connection_handler.go # Connection lifecycle management logic.
152
- │ ├── model.go # Main UI state model: app state, active component, etc.
153
- │ ├── update.go # Update logic for events in the UI.
154
- │ └── view.go # UI rendering logic.
155
-
156
- ├── pkg/
157
- │ └── sshutil/
158
- │ ├── auth.go # Authentication helper/utilities (e.g. key parsing).
159
- │ └── list_ssh_keys.go # Helpers to find and list private SSH keys.
160
-
161
- ├── demo.sh # Shell script to demo app or CLI usage.
162
- ├── go.mod # Go module dependencies.
163
- ├── go.sum # Go module package checksums.
164
- ├── index.js # Node.js entry point for npm package: downloads binary, runs app.
165
- ├── install.js # Node.js install script auto-downloads proper binary for platform/arch.
166
- ├── LICENSE # MIT License.
167
- ├── package.json # npm package metadata.
168
- ├── FLOW.md # Detailed flow/features/architecture of application.
169
- ├── CONTRIBUTING.md # Contribution guidelines.
170
- ├── IMPLEMENTATION.md # Technical implementation details.
171
- ├── MIGRATION.md # Migration instructions for config/data upgrade between versions.
172
- ├── COLOR_SUPPORT.md # Documentation for color/terminal support.
173
- ├── logo.svg # Project logo.
174
- ├── media/
175
- │ ├── demo.gif # Demo GIF for UI.
176
- │ └── demo.mp4 # Demo video for UI.
177
- └── README.md # Main documentation.
59
+ ### ⚡ Quick Connect Mode
178
60
 
179
- ```
61
+ Fast SSH access without launching the full TUI.
180
62
 
181
- **Note:**
182
- - **Local Storage Mode**: Uses `go-keyring` to securely store passwords in the system keyring (see `config.go`)
183
- - **Bitwarden Integration**: Managed through several components:
184
- - `bitwarden.go` handles vault operations via Bitwarden CLI
185
- - `bitwarden_config.go`, `bitwarden_login_form.go`, `bitwarden_unlock_form.go` for authentication flows
186
- - `bitwarden_organization_list.go`, `bitwarden_collection_list.go` for organizational vault management
187
- - `storage_select.go` lets users choose between Local (with go-keyring) or Bitwarden storage
188
-
189
- **Flow chart**
190
- - [FLOW](https://github.com/eugeniofciuvasile/ssh-x-term/blob/main/FLOW.md)
63
+ * `sxt -l` — minimal interactive connection selector
64
+ * `sxt -c <connection-id>` instant connection by ID
65
+ * Start typing immediately to filter connections
66
+ * Arrow keys exit filter and navigate
67
+ * 10 connections per page
68
+ * Fully interactive terminal with resize support
191
69
 
192
- ---
70
+ ### 🖥️ Integrated SSH Terminal
193
71
 
194
- ## 🛠️ Prerequisites
72
+ * VT100 / ANSI escape sequence compliant
73
+ * Full **xterm-256color** support
74
+ * 10,000-line scrollback buffer
75
+ * Mouse and keyboard scrolling
76
+ * Text selection and clipboard copy
77
+ * Graceful window resize handling
195
78
 
196
- - **Go 1.24+** (for building from source)
197
- - **System Keyring** (for local password storage):
198
- - 🍎 **macOS**: Keychain (built-in)
199
- - 🐧 **Linux**: Secret Service API (`gnome-keyring`, `kwallet`, etc.)
200
- - 🪟 **Windows**: Credential Manager (built-in)
201
- - **SSH Agent** (optional, for encrypted key support):
202
- - Run `ssh-agent` and add keys with `ssh-add` to avoid passphrase prompts
203
- - **External Tools**:
204
- - **Bitwarden CLI (`bw`)** — optional, for Bitwarden vault credential management ([install guide](https://bitwarden.com/help/cli/))
205
- - **tmux** — optional, for multi-window SSH sessions ([install guide](https://github.com/tmux/tmux/wiki/Installing))
79
+ ### 📂 SCP / SFTP File Manager
206
80
 
207
- **⚠️ Note for versions < 2.0:**
208
- - Old versions required `passh` (Unix) and `plink.exe` (Windows) - these are **NO LONGER NEEDED** in v2.0+
209
- - If upgrading from v1.x, you can safely remove these tools
81
+ * Dual-pane Local Remote interface
82
+ * Upload, download, rename, delete
83
+ * Create files and directories
84
+ * Recursive search (`/`)
85
+ * Uses the active authenticated SSH session
210
86
 
211
- ## 📚 System dependencies
87
+ ### 🔐 Secure Credential Management
212
88
 
213
- **Version 2.0+** requires minimal system dependencies:
89
+ * **Local storage** via system keyring
214
90
 
215
- - `tmux` (optional, for multi-window sessions)
216
- - System keyring support (for secure local password storage)
217
- - `bitwarden-cli` (optional, npm package: `@bitwarden/cli`, install globally: `npm install -g @bitwarden/cli`)
91
+ * macOS Keychain
92
+ * Linux Secret Service
93
+ * Windows Credential Manager
94
+ * **Bitwarden integration** via Bitwarden CLI
95
+ * Passwords are never stored in plaintext
218
96
 
219
- **⚠️ NO LONGER NEEDED in v2.0+:**
220
- - ~~`passh`~~ - Replaced by built-in Go SSH client
221
- - ~~`plink.exe`~~ - Replaced by built-in Go SSH client
222
- - ~~`ssh` command~~ - Replaced by built-in Go SSH client
97
+ ### ⚙️ SSH Authentication
223
98
 
224
- ### Linux (Debian/Ubuntu):
99
+ * SSH Agent (recommended for encrypted keys)
100
+ * Encrypted private keys supported via `ssh-agent`
101
+ * Password authentication via system keyring
102
+ * Compatible with standard OpenSSH config
225
103
 
226
- ```sh
227
- sudo apt update
228
- sudo apt install -y tmux gnome-keyring
229
- npm install -g @bitwarden/cli # optional
230
- ```
104
+ ---
231
105
 
232
- ### macOS (with Homebrew):
106
+ ## 📦 Project Structure
233
107
 
234
- ```sh
235
- brew install tmux # optional
236
- npm install -g @bitwarden/cli # optional
237
- ```
108
+ (Structure unchanged — see repository tree for details)
238
109
 
239
- ### Windows:
110
+ ---
240
111
 
241
- - Install `tmux` via WSL if needed (optional)
242
- - Install Bitwarden CLI with: `npm install -g @bitwarden/cli` (optional)
243
- - Windows Credential Manager is used by go-keyring and is built-in
112
+ ## 🛠️ Prerequisites
244
113
 
245
- ### SSH Agent Setup (for encrypted keys):
114
+ ### Required
246
115
 
247
- ```sh
248
- # Start ssh-agent
249
- eval $(ssh-agent)
116
+ * **Go 1.24+** (only if building from source)
117
+ * **System Keyring** (for local password storage)
250
118
 
251
- # Add your encrypted keys
252
- ssh-add ~/.ssh/id_rsa
253
- ssh-add ~/.ssh/id_ed25519
119
+ ### Optional
254
120
 
255
- # Now sxt will use these keys without asking for passphrases!
256
- ```
121
+ * **SSH Agent** (recommended for encrypted SSH keys)
122
+ * **Bitwarden CLI (`bw`)** — for Bitwarden vault support
123
+ * **tmux** — open SSH sessions in new tmux windows
124
+
125
+ > ⚠️ SSH-X-Term 2.0+ has **no external SSH dependencies**.
126
+ > You do not need `ssh`, `passh`, `plink`, or PuTTY.
257
127
 
258
128
  ---
259
129
 
260
130
  ## 📥 Installation
261
131
 
262
- ### Option 1: Install using npm (Recommended)
263
-
264
- The easiest way to install is via the [npm package](https://www.npmjs.com/package/ssh-x-term):
132
+ ### Option 1: Install via npm (Recommended)
265
133
 
266
134
  ```sh
267
- # Install globally
268
135
  npm install -g ssh-x-term
269
-
270
- # Run
271
136
  sxt
272
137
  ```
273
138
 
274
- > This automatically attempts to install required dependencies (`bw`, `passh`, `tmux`) if missing.
139
+ > The npm installer downloads the correct prebuilt binary for your platform.
140
+ > Only optional tools (`bw`, `tmux`) may be suggested.
275
141
 
276
142
  ### Option 2: Build from source
277
143
 
278
- 1. **Clone & Build**:
279
- ```sh
280
- git clone https://github.com/eugeniofciuvasile/ssh-x-term.git
281
- cd ssh-x-term
282
- go build -o sxt ./cmd/sxt
283
- ```
144
+ ```sh
145
+ git clone https://github.com/eugeniofciuvasile/ssh-x-term.git
146
+ cd ssh-x-term
147
+ go build -o sxt ./cmd/sxt
148
+ ```
284
149
 
285
- 2. **Install with Go**:
286
- ```sh
287
- go install github.com/eugeniofciuvasile/ssh-x-term/cmd/sxt@latest
288
- ```
150
+ Or:
289
151
 
290
- ### Option 3: Pre-built Binary
152
+ ```sh
153
+ go install github.com/eugeniofciuvasile/ssh-x-term/cmd/sxt@latest
154
+ ```
291
155
 
292
- Download the latest binary from the [Releases Page](https://github.com/eugeniofciuvasile/ssh-x-term/releases).
156
+ ### Option 3: Prebuilt Binary
157
+
158
+ Download from the GitHub Releases page.
293
159
 
294
160
  ---
295
161
 
296
162
  ## 🎮 Usage
297
163
 
298
- ### First Time Setup
299
-
300
- Before using SSH-X-Term, initialize it once:
164
+ ### First-Time Initialization
301
165
 
302
166
  ```sh
303
167
  sxt -i
304
168
  ```
305
169
 
306
170
  This will:
307
- - Migrate any old JSON configuration (if exists)
308
- - Create backup of existing SSH config
309
- - Set up SSH-X-Term for use
310
-
311
- ### Standard Mode (Full TUI)
312
-
313
- 1. **Start the App**:
314
- ```sh
315
- sxt
316
- ```
317
-
318
- 2. **First Run Setup**:
319
- - Choose **Local Storage** (System Keyring) or **Bitwarden** (Vault).
320
-
321
- 3. **Manage Connections**:
322
- - `a` : **Add** a new connection.
323
- - `e` : **Edit** selected connection.
324
- - `d` : **Delete** connection.
325
- - `s` : Open **SCP/SFTP File Manager**.
326
- - `o` : Toggle **TMUX** mode (open in new window).
327
- - `Enter` : **Connect** (start SSH session).
328
-
329
- 4. **📂 Inside SCP Manager**:
330
- - `Tab` : Switch between **Local** ↔️ **Remote** panels.
331
- - `Enter` : **Enter** folder.
332
- - `Backspace` : **Exit** folder.
333
- - `c` : **Change** folder.
334
- - `g` : **Get**/**Download** file/folder.
335
- - `u` : **Upload** file/folder.
336
- - `n` : Create **New** file/folder.
337
- - `r` : **Rename** file.
338
- - `d` : **Delete** file.
339
- - `/` : **Search** recursively.
340
-
341
- 5. **🖥️ Inside SSH Session**:
342
- - `PgUp` / `PgDn` : Scroll history.
343
- - `Ctrl+D` : Send EOF.
344
- - `Esc` `Esc` (Double Press) : Disconnect and return to menu.
345
-
346
- ### Quick Connect Mode (CLI)
347
-
348
- **Fast connection selection without the full TUI** (v2.0+):
349
171
 
350
- ```sh
351
- # First time: Initialize SSH-X-Term
352
- sxt -i
172
+ * Initialize configuration
173
+ * Migrate any existing SSH-X-Term data
174
+ * Prepare SSH config metadata
353
175
 
354
- # Quick connect with selection menu
355
- sxt -l
176
+ ### Full TUI Mode
356
177
 
357
- # Direct connect by connection ID (instant, no menu)
358
- sxt -c <connection-id>
178
+ ```sh
179
+ sxt
359
180
  ```
360
181
 
361
- **Note**: You must run `sxt -i` once before using `sxt -l` or `sxt -c` to initialize and migrate your configuration.
362
-
363
- #### Quick Connect (`sxt -l`)
364
- This displays a minimal connection list where you can:
365
- - **Start typing immediately** to filter connections by name
366
- - Use **arrow keys** to navigate (exits filter mode and navigates)
367
- - Press **Enter** while filtering to apply filter, or to connect when not filtering
368
- - Press **Esc** to clear filter (if filtering) or quit
369
- - Press **Ctrl+C** to quit immediately
370
- - **10 connections per page** with pagination
182
+ Key actions:
371
183
 
372
- #### Direct Connect (`sxt -c <id>`)
373
- Connect instantly to a saved connection by ID:
374
- ```sh
375
- # Get connection ID from error message or SSH config
376
- sxt -c sky-central-1_1234567890
184
+ * `a` Add connection
185
+ * `e` Edit connection
186
+ * `d` — Delete connection
187
+ * `s` Open SCP/SFTP manager
188
+ * `o` — Toggle tmux mode
189
+ * `Enter` — Connect
377
190
 
378
- # Or use tab completion if your shell supports it
379
- sxt -c <tab>
380
- ```
191
+ ### Quick Connect (CLI)
381
192
 
382
- **Features** (v2.0+):
383
- - ✅ **Pure Go SSH** - No external tools needed (passh, plink, ssh)
384
- - ✅ **SSH Agent integration** - Automatically uses ssh-agent for encrypted keys
385
- - ✅ **Password from keyring** - Retrieves passwords securely from system keyring
386
- - ✅ **Auto-filter on keypress** (no need to press `/`)
387
- - ✅ **Arrow keys exit filter and navigate**
388
- - ✅ **Full terminal support** - xterm-256color built-in
389
- - ✅ **Window resize** - Handles terminal resize properly
390
- - ✅ **Works everywhere** - No tmux requirement, any terminal
391
-
392
- **Using with encrypted SSH keys:**
393
193
  ```sh
394
- # Add your keys to ssh-agent once
395
- eval $(ssh-agent)
396
- ssh-add ~/.ssh/id_rsa
397
-
398
- # Now connections work without passphrase prompts!
399
194
  sxt -l
400
- # or
401
195
  sxt -c <connection-id>
402
196
  ```
403
197
 
@@ -405,28 +199,39 @@ sxt -c <connection-id>
405
199
 
406
200
  ## ⚙️ Configuration
407
201
 
408
- | Storage Mode | Details |
409
- |--------------|---------|
410
- | **Local** | Config at `~/.ssh/config` (standard SSH config file)<br>• Passwords stored in **System Keyring**.<br>• Metadata stored as comments in SSH config.<br>• Fully compatible with standard SSH tools. |
411
- | **Bitwarden** | Secrets stored in your **Bitwarden Vault**.<br>• Requires `bw` CLI.<br>• Supports Organizations & Collections. |
202
+ | Storage | Description |
203
+ | --------- | ---------------------------------------------------------- |
204
+ | Local | SSH config at `~/.ssh/config`, passwords in system keyring |
205
+ | Bitwarden | Secrets stored in Bitwarden vault via `bw` CLI |
206
+
207
+ SSH-X-Term stores metadata as comments in your standard SSH config and remains fully compatible with OpenSSH tools.
208
+
209
+ ---
210
+
211
+ ## 🔑 SSH Agent Setup (Recommended)
212
+
213
+ ```sh
214
+ eval $(ssh-agent)
215
+ ssh-add ~/.ssh/id_ed25519
216
+ ```
412
217
 
413
- **Note:** If you're upgrading from a previous version that used JSON config (`~/.config/ssh-x-term/ssh-x-term.json`), your connections will be automatically migrated to the SSH config format on first run.
218
+ Once added, SSH-X-Term can use encrypted keys without prompting for passphrases.
414
219
 
415
220
  ---
416
221
 
417
222
  ## 🛡️ Security & Disclaimer
418
223
 
419
- **SSH-X-Term** is an independent open-source project released under the [MIT License](LICENSE).
224
+ SSH-X-Term is released under the MIT License.
420
225
 
421
- - **Credentials**: Your passwords/keys are handled securely via system APIs or Bitwarden. They are **never** logged or stored in plaintext files.
422
- - **Responsibility**: The safe handling of your credentials is ultimately your responsibility. The authors bear no liability for data loss or compromise.
423
- - **Affiliation**: Not affiliated with Bubble Tea, Bitwarden, or PuTTY.
226
+ * Credentials are never logged or written in plaintext
227
+ * All secrets are handled via OS APIs or Bitwarden
228
+ * Always ensure your system, SSH keys, and Bitwarden vault are properly secured
424
229
 
425
230
  ---
426
231
 
427
232
  ## 👏 Credits
428
233
 
429
- - [Bubble Tea](https://github.com/charmbracelet/bubbletea)The TUI framework.
430
- - [go-keyring](https://github.com/zalando/go-keyring) — Secure keyring integration.
431
- - [Bitwarden CLI](https://bitwarden.com/help/cli/) — Vault management.
432
- - [passh](https://github.com/clarkwang/passh) & [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) Auth automation.
234
+ * Bubble Tea — TUI framework
235
+ * go-keyring — Secure credential storage
236
+ * Bitwarden CLI — Vault integration
237
+ * OpenSSH Protocol reference and compatibility
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ssh-x-term",
3
- "version": "2.0.1",
3
+ "version": "2.0.3",
4
4
  "description": "TUI to handle multiple SSH connections simultaneously",
5
5
  "main": "index.js",
6
6
  "bin": {