Vibecode Transmit

track this build5 phases, 15 steps, beginner friendly
YES · one-shottable
price variesbuild time one sittingcategory ⚙️ productivity utilitiesreplaced by 0 people

The core loop is small enough for a capable coding agent to produce a useful local version in one sitting. For Transmit, build a focused SFTP and object-storage client with bookmarks and transfer queue. The hard boundary is protocol compatibility, native polish, sync, security, and ongoing maintenance, plus os integration polish and maintenance.

the project pack5 files · written for this build, step by step
README.md
# Transmit · indie build

A two-pane transfer client that connects over SFTP and to S3-compatible object storage, keeps encrypted bookmarks, queues transfers that survive a dropped connection and resume rather than restart, verifies what it uploaded, and never silently overwrites a newer file.

Estimated effort: **weekend**. Work `BUILD_PLAN.md` top to bottom · every phase ends in a check that has to pass before the next one starts.

## Stack

| Part | Choice | Why |
| --- | --- | --- |
| Language | Swift 6 and SwiftUI in Xcode | the native file panel, keychain access and drag and drop all want AppKit |
| SFTP | libssh2 through a thin Swift wrapper | implementing the protocol yourself means implementing cryptography, which rule one of every build says not to do |
| Object storage | The S3 API over HTTPS with signature version 4 | one API covers every S3-compatible provider, which is most of them |
| Credentials | The macOS keychain, never a settings file | a bookmark file containing passwords is a file people sync and share by accident |
| Queue | A persisted transfer queue with byte-level resume | a transfer that restarts from zero after a dropped connection is the difference between usable and infuriating |

## Before you start

Have every one of these ready. The plan assumes them from step one.

- [ ] **A Mac running macOS 14 or newer** · free if you own one
  - Why: The native panel, keychain and drag and drop are platform APIs.
  - Get it: Apple menu, then About This Mac.
  - Verify: About This Mac reports macOS 14 or higher
- [ ] **Xcode 16 or newer** · free
  - Why: Builds the application and links libssh2.
  - Get it: Mac App Store or developer.apple.com/xcode.
  - Verify: xcodebuild -version prints 16 or higher
- [ ] **A real SFTP server you control** · a few USD a month, or free on hardware you own
  - Why: Local testing hides authentication, host key and timeout behaviour. You need somewhere you can also change the host key deliberately in Phase 1.
  - Get it: Any small virtual server with SSH, or a machine on your network. You must be able to regenerate its host key to test the refusal path.
  - Verify: You can connect and can change the host key on purpose
- [ ] **An S3-compatible bucket with credentials** · storage is cheap; some providers charge for requests and egress
  - Why: Phase 3 needs a real bucket. Providers differ subtly in their S3 implementations, so test against the one you will actually use.
  - Get it: Create a bucket with any S3-compatible provider and credentials scoped to it. Confirm it supports multipart upload before relying on it.
  - Verify: A signed list request returns the bucket contents
- [ ] **Test files including one over the multipart threshold** · free
  - Why: Resume and multipart both need a file large enough to interrupt partway, which a small file does not give you.
  - Get it: Generate a file comfortably above your multipart threshold. Keep it as a fixture.
  - Verify: A file large enough to interrupt mid-transfer is available

## Quick start

```sh
xcrun notarytool submit Transfer.zip --keychain-profile AC --wait
```

Then copy `.env.example` to `.env` and fill in the values it documents.

## Honest limits

This build deliberately does not replace:

- The long tail of protocol and server compatibility.
- Mounting remote storage as a local disk.
- Two-way synchronisation with conflict resolution.
- The polish of a client maintained for two decades.
- protocol compatibility, native polish, sync, security, and ongoing maintenance
- years of OS-version edge cases
- large extension ecosystem
- cross-device sync
- commercial support and rapid compatibility fixes

If one of those is essential to you, that is the reason to keep paying for Transmit, and the README should say so rather than pretend.

$ choose a build depth, inspect the files, then open the complete pack in your agent

why people still pay

People still pay for Transmit because small utilities are technically reproducible, but customers pay for polish and immediate fixes when an OS update breaks a daily habit. The recurring cost buys permissions, accessibility APIs, sandboxing, signing, notarization, OS regressions, updates, backups, and support, not just the visible interface.

what you lose

xprotocol compatibility, native polish, sync, security, and ongoing maintenance

xyears of OS-version edge cases

xlarge extension ecosystem

xcross-device sync

xcommercial support and rapid compatibility fixes

share on X ↗"I just replaced Transmit with one prompt"
the escape hatch

Don't feel like building it? These folks already made it free.

CyberduckTransmit's protocol list, bookmarks, and transfer queue, plus a donation nag instead of a receipt.4.5kjul 2026open source↗

no votes, no pay-to-list · just what's real

the numbers

Transmit pricing

planmonthlyannual (per mo)what you get
transmit 5 direct licensecustom—1 named user; install on every Mac that user owns or controls; 7-day unrestricted trial
transmit 5 mac app store annual—$2.08/user1 Apple Account; use on all Macs; major updates included while the subscription remains active

free tierno free tier; 7-day full-featured unrestricted trial

billingone-time $45 direct license or annual-only $24.99 Mac App Store subscription; no monthly plan

hidden costsThe direct license may require a paid future major-version upgrade; the App Store edition stops working after expiry and cannot offer every direct-build integration.

verified 2026-08-14 · source ↗

questions
Vibecode Transmit

Yes. A competent AI coding agent (Claude Code, Codex, Cursor) can build a usable personal Transmit replacement in one session with the prompt on this page. It runs on your own machine or server with no subscription.

How much does Transmit cost?

Transmit's pricing is usage-based or varies by plan · Sold as a one-time Mac licence..

What do I lose by replacing Transmit?

Honestly: protocol compatibility, native polish, sync, security, and ongoing maintenance; years of OS-version edge cases; large extension ecosystem; cross-device sync; commercial support and rapid compatibility fixes. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to Transmit?

Yes: Cyberduck (Transmit's protocol list, bookmarks, and transfer queue, plus a donation nag instead of a receipt.) The prompt is for when you want it exactly your way.