-
Notifications
You must be signed in to change notification settings - Fork 0
Ideas
DasDuo edited this page Jun 29, 2026
·
3 revisions
A holding pen for ideas and deferred thoughts — not a roadmap and not a commitment. Nothing here is promised or scheduled, and most of it may never ship. Things only move out of "Ideas" when a real, felt need shows up (ideally from actually using ShuttleX).
- Suggest favoriting a frequently-used host — instead of a passive "recent" list (deliberately not built), proactively nudge: "you've connected to X N times in the last Y — add it to favorites?". More in the spirit of the app than a recents list (it reinforces the curated ★ Favorites rather than adding a parallel history). Cost to weigh: needs a local per-host connection log (counts + timestamps) — new persistent state and a small privacy surface (a record of your access patterns) — plus careful, non-nagging suggestion UI and threshold tuning, all to save a single star-click on a host you already see. Build only if the friction is actually felt in daily use, not on spec.
-
Confirm before connecting (optional, default off) — an optional "are you sure?" prompt before opening sensitive hosts (e.g. anything tagged
prod). Terminal-agnostic. -
Public-key clipboard helper — store your public key once (paste it, or point at a
.pubfile in Settings); a "Copy public key" action then drops it on the clipboard, ready to paste into~/.ssh/authorized_keyson a target box. Explicitly not SSH key management — nossh-copy-id, no agent integration, nothing pushed anywhere. It's purely a time-saver for the manual copy-paste step you'd do by hand anyway, and it works regardless of where your keys actually live (disk, 1Password, Secretive). No security concern — a public key is public. Design note: the key is the same for every server, so it belongs as a single global action (Settings / the menu-bar right-click menu), not a per-server item. Pairs with the existing "Copy SSH command". Thoughts welcome — open an issue/discussion if you'd use this or see it differently. - Off-main-thread I/O — move JSON/XLSX work off the main thread. Deferred: current files are tiny (KB), so it would be premature optimization.
- XLSX worksheet selection — let the import pick a sheet in multi-sheet workbooks. Currently the first worksheet is used.
- Merge top-level (ungrouped) hosts — finer merge behavior for ungrouped entries. Edge case.
-
Swift 6 language mode — the package builds in Swift 5 mode (
swiftLanguageModes: [.v5]) to avoid strict-concurrency churn. Migrating to.v6would surface potential data races at compile time, but needs a concurrency audit of the app state and AppKit statics.
- Signing & notarization — would let the app run on other Macs without the Gatekeeper approval step, but requires a paid Apple Developer account ($99/year). Until then, see Installation for the one-time approval.
-
Recents list — a "recently connected" section at the top of the menu. Dropped on purpose. It optimizes the wrong axis for high-stakes work: recency instead of intent. In an incident (e.g. a prod outage), muscle-memory clicks the top item — and if that's a stale Dev host you just used, you connect to the wrong environment. ShuttleX is a curated, intent-first launcher, not a session history; the safe pattern is making the right host obvious (groups, ★ Favorites,
prodtags/badges), not surfacing whatever you touched last. The convenient half of the idea is kept as the "suggest favoriting a frequently-used host" idea above — opt-in, no always-on top-of-list hazard. -
Terminal profiles per server — launching a connection with a named terminal profile (e.g. a red "Prod" window). Dropped on purpose. ShuttleX supports seven terminals (Terminal.app, iTerm2, Ghostty, Warp, Alacritty, kitty, WezTerm), and only the two AppleScript-driven ones (Terminal.app, iTerm2) have a named-profile concept at all — the CLI terminals don't. Even on those two it isn't reliable: the profile has to already exist (we can only reference, not create it), it can't be enumerated dependably (iTerm2 with a custom prefs folder hides its profiles from the standard domain), and applying it via AppleScript behaves inconsistently. That's a lot of per-terminal special-casing for a result that silently does nothing in the common case — not worth it. If you want per-environment colors today, set a colored profile as the default in your terminal, or use the tags feature to spot
prodat a glance.
- Optional server tags (off by default) — comma-separated tags per server, badges in the menu, searchable
- Global hotkey (centered Spotlight panel) on a custom
NSPanel; menu-bar click keeps the anchored dropdown - Remote (team) server source — read-only HTTPS inventory; commands ignored for safety; login user + favorites kept locally per person
- Global default SSH user with per-server override
- In-app server editor (add/edit/delete)
- Space-shuttle app icon
- Search across group names
- New window when the terminal isn't running yet
- Command-injection hardening (shell-quoting + import validation)
- Backup history & configurable JSON path
- English UI, tests, CI
- DMG download (drag-to-install), built and attached to releases automatically
- CLI-terminal launch failures now surface in the UI; duplicate group names merged on load
- Optional update check (off by default) + curated release notes from the changelog
- Favorites (pin servers to a collapsible section at the top)