diff --git a/COMPARISON.md b/COMPARISON.md index 091c8514..1f711ddd 100644 --- a/COMPARISON.md +++ b/COMPARISON.md @@ -1,73 +1,94 @@ -# One app for your terminal and your servers - -Sarv Terminal is a fast, GPU-accelerated terminal **and** a full SSH client in one native macOS -app — saved hosts, SSH keys, SFTP, tunnels, and end-to-end-encrypted sync, all built in. No -plugins, no separate SSH manager, no config-file spelunking. - -## Everything you get - -- **Import — switch in minutes.** Bring hosts in from `~/.ssh/config` (including `Include`d files), - iTerm2, CSV, PuTTY, MobaXterm and SecureCRT, and pull your appearance & keybindings from Ghostty, - Alacritty, Kitty, iTerm2 and WezTerm. -- **Saved-host vault.** Every server with its full SSH profile — user, port, identity file, agent - forwarding, proxy jump, host-key policy, startup command — in workspace → project folders with - tags and per-host color themes. -- **SSH key manager.** See every key in `~/.ssh`, generate Ed25519 / ECDSA / RSA-4096, copy the - public key, reveal in Finder, or delete — no `ssh-keygen` incantations. -- **SFTP + SCP file manager.** Dual-pane local↔remote browsing plus direct server-to-server copies, - live progress, an in-app file editor, and an rwx / octal permissions editor. -- **Port-forward manager.** Save and run Local (`-L`), Remote (`-R`) and Dynamic / SOCKS (`-D`) - tunnels over any saved host, with start/stop and live status. -- **Zero-knowledge sync.** Move your whole setup between Macs under encryption only you can open — - AES-256-GCM, master password in the Keychain behind Touch ID, your own GitHub repo or synced folder. -- **AI command assist.** When a command fails, get a one-click explanation and a suggested fix you - can paste straight in — bring your own key, using Claude, OpenAI or a local Ollama model. Your key - is stored encrypted on your Mac and never synced. -- **Docker & Kubernetes attach.** List your running containers and pods and open a shell inside any - of them in a click — no `docker exec` / `kubectl exec` to remember. -- **Snippets & shell history.** A library of your most-used commands; browse recent shell history - and save any command as a snippet in a click. -- **Serial console.** Connect to routers, switches, a Raspberry Pi or a microcontroller over - USB-serial — pick the device and baud rate, opens right in a tab. -- **Terminal workspace.** Tabs and splits, focus mode, input broadcasting, tab colors and renaming, - an all-tabs overview, and reopen-closed-tab. -- **Known-hosts manager & activity logs.** -- **Customization.** Themes and per-host themes, background image with opacity and blur, - font / cursor / window controls, and fully rebindable keybinds. - ---- - -## How it compares - -Other terminals can run `ssh` — but the connection-manager layer that makes servers easy to live -with isn't built in. - -**Legend:** ✅ built-in · 🟡 partial · ⬜ not offered. -🟡 usually means the tool can run `ssh`, but has no proper GUI to manage it — no host vault, key -manager, or tunnel UI. - -| | **Sarv Terminal** | Ghostty | iTerm2 | Warp | Terminal.app | WezTerm | -|---|:---:|:---:|:---:|:---:|:---:|:---:| -| Saved-host vault (groups, per-host identity & proxy-jump) | ✅ | ⬜ | 🟡 | ⬜ | 🟡 | 🟡 | -| SSH key manager (generate / list / copy in-app) | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | -| SFTP / SCP dual-pane file manager | ✅ | ⬜ | 🟡 | ⬜ | ⬜ | ⬜ | -| Port-forward / tunnel manager (GUI) | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | -| Import hosts & settings from other apps | ✅ | ⬜ | 🟡 | ⬜ | ⬜ | 🟡 | -| End-to-end-encrypted settings sync | ✅ | ⬜ | 🟡 | 🟡 | ⬜ | ⬜ | -| AI explain/fix for failed commands (bring-your-own-key, local option) | ✅ | ⬜ | ⬜ | 🟡 | ⬜ | ⬜ | -| One-click Docker / Kubernetes container attach | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | -| Serial console (USB-serial) | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ✅ | -| Known-hosts manager | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | -| GPU-accelerated rendering | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | -| GUI settings (no config file required) | ✅ | 🟡 | ✅ | ✅ | ✅ | ⬜ | -| Local-first · no account · no telemetry | ✅ | ✅ | ✅ | 🟡 | ✅ | ✅ | -| Open source & free | ✅ | ✅ | ✅ | 🟡 | ⬜ | ✅ | -| License | MIT | MIT | GPL-2.0 | AGPLv3 (client) | Proprietary | MIT | - -> If you manage more than one server, Sarv Terminal is the only app here that puts your terminal, -> saved hosts, SSH keys, tunnels and file transfers in **one place** — fast, local-first, and -> zero-knowledge, with nothing leaving your Mac. That's the whole workflow the others leave you to -> assemble by hand. - -Sarv Terminal is macOS-only today (the Ghostty engine is cross-platform; a Linux UI is the -project's biggest open item). Comparison reflects built-in GUI capabilities as of 2026. +# A native Mac terminal built for server work + +Sarv Terminal combines the fast, GPU-accelerated Ghostty engine with the workflows normally found +in dedicated SSH clients: saved connections, SSH keys, SFTP/SCP, tunnels, encrypted settings sync, +container attach, and command-failure assistance. + +That places Sarv Terminal between two established categories. Terminal emulators optimize the local +command-line experience. Dedicated SSH managers optimize fleets of remote connections. Sarv Terminal +is for Mac users who want both in one open-source app. + +## Where we fit + +| Product | Positioning | Main trade-off | +|---|---|---| +| **Sarv Terminal** | We combine a native macOS terminal with visual SSH operations for people who manage multiple servers. | macOS-only today; saved-host passwords are not yet stored in Keychain. | +| **Ghostty / iTerm2 / WezTerm** | Excellent terminal experiences with remote workflows assembled from `ssh`, `scp`, `tmux`, and other tools. | No full built-in server-operations workspace. | +| **Termius / SecureCRT** | Cross-platform coverage, mature enterprise SSH administration, and mobile access. | Proprietary/commercial products rather than an open-source Mac-native stack. | +| **Warp** | Agentic coding and an editor-like command workflow. | Different focus from a saved-host, SFTP, key, and tunnel manager. | +| **Tabby** | Cross-platform open-source terminal access with SSH, Telnet, and serial support. | Electron-based and less focused on a native macOS server workspace. | + +## Compared with terminal emulators + +**Legend:** ✅ built in · 🟡 partial, optional, or adjacent capability · ⬜ not documented as built in. + +| Capability | **Sarv Terminal** | Ghostty | iTerm2 | Warp | WezTerm | +|---|:---:|:---:|:---:|:---:|:---:| +| GPU-accelerated terminal | ✅ | ✅ | ✅ | ✅ | ✅ | +| Saved-host workspace with groups, identity, and proxy jump | ✅ | ⬜ | 🟡 | ⬜ | 🟡 | +| SSH key-management UI | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | +| SFTP/SCP file-management UI | ✅ | ⬜ | 🟡 | ⬜ | ⬜ | +| GUI for local, remote, and SOCKS tunnels | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | +| Failure explanation + suggested fix with BYOK/local-model option | ✅ | ⬜ | 🟡 | 🟡 | ⬜ | +| One-click Docker/Kubernetes shell attach | ✅ | ⬜ | ⬜ | ⬜ | ⬜ | +| No account required for the core terminal | ✅ | ✅ | ✅ | 🟡 | ✅ | +| Open-source license | MIT | MIT | GPL-2.0 | AGPL-3.0 client | MIT | + +iTerm2 offers an optional generative-AI plugin, so it is marked partial rather than absent. Warp has +broad built-in AI/agent capabilities, but its product focus is agentic development rather than the +BYOK/local failed-command workflow described in this row. + +## Compared with SSH and connection managers + +This is the more important competitive set for Sarv Terminal's server-management features. + +| Capability | **Sarv Terminal** | Termius | SecureCRT | Tabby | +|---|:---:|:---:|:---:|:---:| +| Terminal + saved connections | ✅ | ✅ | ✅ | ✅ | +| Keys/credentials managed through the app | ✅ | ✅ | ✅ | 🟡 | +| GUI port-forwarding workflow | ✅ | ✅ | ✅ | 🟡 | +| Encrypted multi-device settings/host sync | ✅ user-controlled backend | ✅ Termius cloud vault | ⬜ not documented as built in | ⬜ not documented as built in | +| BYOK/local command-failure assistance | ✅ | ⬜ | ⬜ | ⬜ | +| One-click Docker/Kubernetes shell attach | ✅ | ⬜ | ⬜ | ⬜ | +| Desktop platforms | macOS | macOS, Windows, Linux + mobile | macOS, Windows, Linux | macOS, Windows, Linux | +| Product model | Free, open source | Proprietary, subscription tiers | Commercial | Free, open source | + +## The honest positioning + +Sarv Terminal's advantage is not that other products cannot connect to servers. Termius and +SecureCRT are mature connection managers, while Ghostty, iTerm2, Warp, WezTerm, and Tabby are strong +terminal products. + +The differentiator is the combination: **a native macOS terminal built on Ghostty, plus a visual +server-operations workspace, released under MIT and usable without a mandatory account.** We focus +on a Mac-first, open-source and local-first workflow. Cross-platform SSH managers remain the stronger +fit when mixed-device and mobile support are the priority. + +## Security and privacy scope + +Sarv Terminal does not require an account and does not bundle product telemetry. Local data stays on +the Mac unless an optional feature that communicates externally is enabled: + +- encrypted sync writes to the selected private GitHub repository or synced folder; +- AI assistance sends the relevant request to the configured provider, or stays local with + Ollama; +- saved-host passwords currently remain in local `hosts.json`; SSH keys are recommended until the + planned Keychain migration lands. + +## Sources and methodology + +Checked **2026-07-21** against vendor documentation and public repositories. The table covers +built-in, user-visible product capabilities rather than everything achievable with scripts or +third-party extensions. Features, editions, and pricing can change; corrections are welcome. + +- [Sarv Terminal README](README.md) +- [Ghostty features](https://ghostty.org/docs/features) +- [iTerm2 features](https://iterm2.com/features.html) and [AI plugin](https://iterm2.com/ai-plugin.html) +- [Warp repository](https://github.com/warpdotdev/warp) +- [WezTerm repository](https://github.com/wezterm/wezterm) +- [Termius Vault](https://termius.com/vault) +- [SecureCRT features](https://www.vandyke.com/products/securecrt/features.html) +- [Tabby repository](https://github.com/Eugeny/tabby) + +Sarv Terminal is macOS-only today. Its Ghostty-derived terminal engine is cross-platform, but +the connection-manager interface is currently implemented in SwiftUI. diff --git a/MARKETING-LAUNCH-PLAN.md b/MARKETING-LAUNCH-PLAN.md new file mode 100644 index 00000000..02b0ed6b --- /dev/null +++ b/MARKETING-LAUNCH-PLAN.md @@ -0,0 +1,264 @@ +# Sarv Terminal launch plan + +Updated **2026-07-21** for Sarv Terminal **1.9.4**. + +## Positioning decision + +**The open-source Mac terminal for people who manage servers.** + +Sarv Terminal should not compete on a generic "fast terminal" claim. Its wedge is the combination of +the Ghostty engine with a visual server-operations workspace: saved connections, SSH keys, SFTP/SCP, +tunnels, encrypted sync, container attach, and command-failure assistance. + +### Primary audience + +Mac-based developers, DevOps engineers, infrastructure engineers, consultants, and homelab users who +manage two or more remote systems and currently combine a terminal with separate SSH/SFTP tools. + +### Proof points + +1. Native macOS app built on the Ghostty engine. +2. Terminal and server operations in one workspace. +3. MIT licensed, no mandatory account, no bundled product telemetry. +4. Homebrew install plus signed and notarized releases. +5. User-controlled encrypted sync and BYOK/local AI options. + +### Messaging guardrails + +- Say **local-first**, not "nothing ever leaves the Mac." Optional sync and remote AI providers + communicate externally when enabled. +- Do not lead with "zero knowledge" until the exact scope is explained. +- Disclose that saved-host passwords currently live in local `hosts.json`; recommend SSH keys until + the Keychain migration ships. +- Describe Termius and SecureCRT as mature alternatives. The differentiation is the combined + Mac-native, open-source workflow—not a claim that competitors cannot manage servers. +- Use reproducible evidence for performance claims; do not claim "fastest." + +## Phase 0 — Trust and launch readiness + +**Goal:** make every install safe, credible, and easy to evaluate. + +### Work + +- Move saved-host passwords into macOS Keychain. This is the primary security-marketing blocker. +- Test the DMG and Homebrew path on a clean Mac with Gatekeeper enabled. +- Verify signing, notarization, checksums, auto-update, uninstall, and rollback behavior. +- Run a compatibility pass covering zsh, bash, fish, tmux, SSH through a jump host, popular TUIs, + Docker attach, Kubernetes attach, Unicode, and non-US keyboard layouts. +- Keep `README.md`, `COMPARISON.md`, screenshots, release notes, and the shipped feature set aligned. +- Publish a plain-language privacy and threat-model document. +- Add an opt-in first-run feedback link and a public known-issues section. + +### Exit criteria + +- No plaintext saved-host passwords. +- Ten clean-machine installs without a signing, Gatekeeper, or update failure. +- No known critical/high security defect. +- Every comparison row has a source and verification date. +- A new user can install and connect to a host in under five minutes. + +## Phase 1 — Positioning and proof + +**Goal:** show one memorable outcome instead of a long feature inventory. + +### Core demonstration + +Create a 20–30 second, silent captioned demo: + +1. Open the host workspace. +2. Connect through a saved profile or proxy jump. +3. Transfer a file in SFTP. +4. start a tunnel or attach to a container. +5. End on: **"We bring the terminal and server workspace together. Open source on Mac."** + +### Assets + +- One hero screenshot showing terminal + host workspace. +- One short workflow video and one GIF under a practical file-size limit. +- Three feature screenshots: connections, SFTP, and tunnels. +- An honest comparison page covering terminals and SSH managers separately. +- A founder story: why another terminal was necessary and why it is built on Ghostty. +- A technical post describing the architecture and upstream relationship. + +### Customer discovery + +Interview at least ten target users. Ask what they use today, how many systems they manage, the last +time remote work caused friction, and what would stop them from switching. Do not ask whether they +"like" the feature list. + +### Exit criteria + +- At least five target users install without live help. +- At least three use Sarv Terminal again after seven days. +- Users can repeat the positioning in their own words. +- Two attributable testimonials or case studies are approved. + +## Phase 2 — Focused beta and contributor flywheel + +**Goal:** earn evidence before a broad launch. + +### Distribution + +- Find 30–50 Mac-based developers/operators from existing relationships and relevant communities. +- Use GitHub Discussions for support and product feedback so answers stay searchable. +- Label several genuinely small, well-scoped contributor tasks. +- Publish weekly development notes and acknowledge every external contribution. +- Approach maintainers of complementary tools—Starship, tmux, Neovim, yazi, Zellij, Docker and + Kubernetes TUIs—for compatibility testing, not promotional endorsement. + +### Exit criteria + +- 30 activated testers. +- Seven-day return rate of at least 25% among testers who consent to measurement. +- Five resolved usability or compatibility issues from outside feedback. +- First maintainer response within 24 hours during the beta. +- At least two external contributors or documentation improvements. + +## Phase 3 — Public launch sequence + +**Goal:** compound attention across two weeks while the team remains available to respond. + +### Day 0 — GitHub and release + +- Publish a stable release with signed DMG, checksums, release notes, known limitations, and direct + Homebrew instructions. +- Pin a welcome Discussion for feedback and migration questions. +- Update the website, repository social preview, and screenshots at the same time. + +### Day 1 — macOS community + +For `r/macapps`, use the main feed only after satisfying the community's current rules: 10 local +karma, the required promotion template/approval path, relationship disclosure, and no more than one +developer promotion in 30 days. Otherwise use the monthly promotion megathread. + +Current account check (2026-07-21): `u/NetworkDue5038` has no recorded `r/macapps` local karma. +The eligible route is the pinned July 2026 **App Pile** megathread, but its moderator warning says a +first linked comment is likely to be auto-removed until the account has earned 10 local karma without +promotional comments or links. Participate genuinely before submitting; do not manufacture engagement. + +Megathread PCP-format draft (post only after the account is eligible): + +> **[OS] Sarv Terminal: a native Mac terminal for people who manage servers** +> +> **Problem:** We work on Sarv Terminal. We built it for Mac users who want a fast terminal but also +> need to manage saved SSH hosts, move files, and create tunnels without switching between several +> tools. It includes tabs and splits, saved SSH profiles, SSH key management, SFTP and SCP, local, +> remote and SOCKS tunnels, Docker and Kubernetes attach, and optional encrypted settings sync. No +> account is required. +> +> **Comparison:** Ghostty and iTerm2 are excellent terminal emulators, but server management is not +> their main workflow. Termius and SecureCRT offer stronger connection management, but they are +> proprietary products. Sarv Terminal combines a Ghostty-based terminal with built-in server tools +> and is free under the MIT license. It is currently Mac-only. Saved-host passwords have not yet +> moved to Keychain, so we recommend SSH keys. +> +> **Pricing:** Free and open source. Download or install with Homebrew: +> https://github.com/Sarv/SarvTerminal +> +> We would value feedback on SSH compatibility, SFTP workflows, and any blockers to daily use. + +Suggested title: + +> [OS] Sarv Terminal — a native Mac terminal with saved SSH hosts, SFTP and tunnels + +Suggested body: + +> Disclosure: We work on Sarv Terminal. It is a free MIT-licensed macOS terminal built on Ghostty for +> people who manage multiple servers. Alongside tabs and splits, it includes saved SSH profiles, +> SSH-key management, SFTP/SCP, local/remote/SOCKS tunnels, Docker/Kubernetes attach, and optional +> encrypted settings sync. No account is required. +> +> The project is still Mac-only, and saved-host passwords have not yet moved to Keychain, so SSH +> keys are recommended. We would especially value feedback on SSH compatibility, SFTP workflows, +> and any blockers to daily use. +> +> GitHub and downloads: https://github.com/Sarv/SarvTerminal + +Respond to every substantive comment. Do not ask for votes or coordinate artificial engagement. + +### Day 3 — Show HN + +Suggested title: + +> Show HN: Sarv Terminal – an open-source Mac terminal for managing servers + +The founder must write the submission personally. Hacker News currently prohibits generated or +AI-edited comments, requires a product people can try without a signup barrier, and prohibits vote +solicitation. Explain the origin, architecture, Ghostty relationship, trade-offs, and security scope. + +### Days 5–7 — Technical communities + +Create distinct posts for `r/commandline`, `r/opensource`, `r/developersIndia`, and any community +for the implementation language where the engineering story is genuinely relevant. Check each +community's current rules immediately before posting. Do not cross-post identical promotional copy. + +### Days 8–14 — Product Hunt and editorial outreach + +- Launch on Product Hunt only after the first feedback round is resolved. +- Tagline: **A native Mac terminal with server operations built in.** +- Prepare the maker comment, demo, screenshots, and direct product URL in advance. +- Submit to developer-tool newsletters and small creators with a factual three-line pitch, demo, and + clear disclosure. Prioritize editorial fit over audience size. + +## Phase 4 — Compounding growth + +**Goal:** turn releases and community work into repeatable discovery. + +Publish one useful artifact each week: + +- a transparent performance or memory investigation; +- an SSH/SFTP compatibility report; +- a migration guide from iTerm2, Ghostty, Termius, SecureCRT, or Tabby; +- an engineering deep dive into a real problem; +- a contributor story; +- a short workflow video; +- a meaningful release note with before/after evidence. + +Build search pages around user jobs, not keyword stuffing: "open-source SSH manager for Mac," "Mac +terminal with SFTP," "GUI SSH tunnel manager for macOS," and "Ghostty-based SSH client." + +## Measurement + +GitHub stars are useful social proof, not the north-star metric. + +| Funnel stage | Metric | Initial target | +|---|---|---:| +| Discovery | Qualified website/repository visits | 1,000 in first 30 launch days | +| Acquisition | Visit-to-download conversion | 25% | +| Activation | Successful first terminal + first saved connection | 60% of installers | +| Retention | Seven-day return rate | 25% | +| Quality | Install/signing failure rate | under 2% | +| Community | Meaningful external feedback conversations | 25 in 90 days | +| Contribution | External contributors with merged work | 5 in 90 days | +| Responsiveness | First maintainer response during launch | under 24 hours | + +Use transparent, privacy-respecting measurement. If application analytics are added, make the event +schema public, collect the minimum required data, and provide a clear opt-in choice. + +## Manual approval gates + +The following actions require a maintainer or account owner: + +1. Security approval before making credential-safety claims. +2. Moderator approval and local-karma eligibility for an `r/macapps` main-feed post. +3. Founder-written Hacker News submission. +4. Final confirmation immediately before publishing any external post or sending outreach. +5. Account login, CAPTCHA, verification code, payment, or legal/trademark decision. + +## Distribution audit (2026-07-21) + +- Latest release: `v1.9.4`, published 2026-07-17 with a 35 MB DMG, SHA-256 digest, source archives, + and a GitHub release attestation. +- Homebrew cask: `sarv/tap/sarv-terminal` points to `v1.9.4` and its SHA-256 exactly matches the + GitHub release asset. +- The Homebrew cask requires macOS Ventura or newer and declares Sparkle-managed auto-updates. +- Launch-page copy should state the macOS version requirement next to the install call to action. + +## Current platform references + +- [Show HN guidelines](https://news.ycombinator.com/showhn.html) +- [Hacker News guidelines](https://news.ycombinator.com/newsguidelines.html) +- [Product Hunt launch guide](https://www.producthunt.com/launch) +- [GitHub repository best practices](https://docs.github.com/en/repositories/creating-and-managing-repositories/best-practices-for-repositories) +- [Apple notarization guidance](https://developer.apple.com/documentation/security/notarizing-macos-software-before-distribution) +- [Homebrew acceptable casks](https://docs.brew.sh/Acceptable-Casks) diff --git a/README.md b/README.md index 57957ea2..3194578c 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,11 @@