Documentation
ΒΆ
Overview ΒΆ
Command wardenssh is the WardenSSH launcher entrypoint. v0 wiring:
- load ~/.ssh/wardenssh.json (non-secret config; first run -> defaults)
- build the merged host list from ~/.ssh/config (file source) and the vault client (real vault auth via TUI setup modal, or FakeClient when no vaults are configured)
- start the in-process ssh-agent on a platform pipe and run the tview/tvxterm launcher
Directories
ΒΆ
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
capture
command
|
|
|
internal
|
|
|
app
Package app wires WardenSSH's subsystems together at the front door: it builds the launcher's merged host list from the two sources β a parsed ~/.ssh/config (file source, read-only per Q6/A) and the vault client's sources (Q10/C, Q16/B multi-vault) β applying the no-dedup + source-label policy (Q11/C) and the wildcard exclusion for ssh_config defaults.
|
Package app wires WardenSSH's subsystems together at the front door: it builds the launcher's merged host list from the two sources β a parsed ~/.ssh/config (file source, read-only per Q6/A) and the vault client's sources (Q10/C, Q16/B multi-vault) β applying the no-dedup + source-label policy (Q11/C) and the wildcard exclusion for ssh_config defaults. |
|
config
Package config loads and saves ~/.ssh/wardenssh.json (the non-secret config, per .local/spec.md Q16/B).
|
Package config loads and saves ~/.ssh/wardenssh.json (the non-secret config, per .local/spec.md Q16/B). |
|
connect
Package connect wires the launcher's ConnectMsg into the full connect flow: lazy-decrypt the vault key (Q8/C), load it into the in-process agent (Q19/B ref-counted), and spawn ssh via the session manager with SSH_AUTH_SOCK pointed at our agent pipe (Q4/B).
|
Package connect wires the launcher's ConnectMsg into the full connect flow: lazy-decrypt the vault key (Q8/C), load it into the in-process agent (Q19/B ref-counted), and spawn ssh via the session manager with SSH_AUTH_SOCK pointed at our agent pipe (Q4/B). |
|
hosts
Package hosts holds the unified, source-merged host list that the launcher TUI renders (Q10/C dual-source, Q11/C no-dedup + source badges, Q18/iii live-session green dots, Q29/B fuzzy filter + source-scope cycling).
|
Package hosts holds the unified, source-merged host list that the launcher TUI renders (Q10/C dual-source, Q11/C no-dedup + source badges, Q18/iii live-session green dots, Q29/B fuzzy filter + source-scope cycling). |
|
keyring
Package keyring provides cross-platform OS keyring storage for vault refresh tokens (Q7/D), using zalando/go-keyring (Windows Credential Manager, macOS Keychain, Linux Secret Service).
|
Package keyring provides cross-platform OS keyring storage for vault refresh tokens (Q7/D), using zalando/go-keyring (Windows Credential Manager, macOS Keychain, Linux Secret Service). |
|
session
Package session implements the WardenSSH session manager (Q18/iii yield-and-switch): N concurrent child processes each on their own PTY, one active (foreground) at a time, background sessions drained into bounded ring buffers so memory does not grow unbounded while a session is hidden.
|
Package session implements the WardenSSH session manager (Q18/iii yield-and-switch): N concurrent child processes each on their own PTY, one active (foreground) at a time, background sessions drained into bounded ring buffers so memory does not grow unbounded while a session is hidden. |
|
sshagent
Package sshagent implements WardenSSH's in-process ssh-agent (see .local/spec.md): a keyring holding private keys in RAM, served over a pipe to ssh.exe.
|
Package sshagent implements WardenSSH's in-process ssh-agent (see .local/spec.md): a keyring holding private keys in RAM, served over a pipe to ssh.exe. |
|
sshconfig
Package sshconfig reads ~/.ssh/config (read-only in v0 per .local/spec.md Q6/A) and extracts launchable host entries for the host-list source "file" (Q10/C, Q27/C).
|
Package sshconfig reads ~/.ssh/config (read-only in v0 per .local/spec.md Q6/A) and extracts launchable host entries for the host-list source "file" (Q10/C, Q27/C). |
|
tviewui
Package tviewui implements the WardenSSH launcher TUI using tview + tcell + tvxterm (embedded terminal emulator).
|
Package tviewui implements the WardenSSH launcher TUI using tview + tcell + tvxterm (embedded terminal emulator). |
|
vault
Package vault is the seam between WardenSSH and the BitWarden/VaultWarden vault (Subsystem 2, .local/plan.md).
|
Package vault is the seam between WardenSSH and the BitWarden/VaultWarden vault (Subsystem 2, .local/plan.md). |
|
vaultadapter
Package vaultadapter bridges the vaultclient (BitWarden API + crypto) into the vault.Source/Client interfaces that app.BuildHostList and the TUI consume.
|
Package vaultadapter bridges the vaultclient (BitWarden API + crypto) into the vault.Source/Client interfaces that app.BuildHostList and the TUI consume. |
|
vaultclient
Package vaultclient: auth.go implements the password-grant login flow and the vault sync, decrypting the user's Protected Symmetric Key + RSA private key from the token response.
|
Package vaultclient: auth.go implements the password-grant login flow and the vault sync, decrypting the user's Protected Symmetric Key + RSA private key from the token response. |
|
vaultcrypto
Package vaultcrypto: cipher.go implements the BitWarden encrypted-string format "2.<base64(iv||ciphertext||mac)>" with AES-256-CBC + HMAC-SHA256 (encType=2).
|
Package vaultcrypto: cipher.go implements the BitWarden encrypted-string format "2.<base64(iv||ciphertext||mac)>" with AES-256-CBC + HMAC-SHA256 (encType=2). |
Click to show internal directories.
Click to hide internal directories.