The full desktop app and runner, open source under Apache-2.0.
- Unlimited flows and runs on your machines
- Every trigger and step type
- Run history kept for 30 days
- Community forum support
Larchwire is an open-source desktop app for wiring triggers, scripts, and files into flows that execute where your work already lives, with nothing routed through someone else’s servers.
Free and open source · macOS, Windows, Linux
Running in 1,400+ studios, labs and back offices that would rather not ship their files to someone else's cloud.
| Trigger | Configuration | Activity | Enabled |
|---|
| Run | Flow | Trigger | Duration | Started | Status |
|---|
Try a different status, or search for a flow name like invoice-sync.
Thirty-one built-in step types, plus any script on your PATH. These are the ones teams reach for first.
Run history lives in a local SQLite file you can query, back up or delete. The dashboard reads straight from it.
Every step's stdout and stderr, tagged with flow and run. Filter as it streams, or pipe it to your own tools with larchwire logs -f.
Flows execute on your laptop, a Mac mini or a Linux box. Files never take a detour through our infrastructure.
Keychain on macOS, Credential Manager on Windows, libsecret on Linux. Flows reference secrets by name only.
Schedules, folder watches and local model steps keep running on a train or behind an air gap.
Install the runner as a login item, a launchd agent or a systemd service. It sleeps until a trigger fires.
Idle memory with 40 flows loaded and six folder watches active.
From trigger to the first line of your script on an M2 Mac mini.
macOS 13+, Windows 10 22H2+ and any Linux with glibc 2.31 or newer.
Every flow you draw is saved as a TypeScript or YAML file next to your scripts. Commit it, diff it in a pull request, run it from CI with the same CLI.
“We used to lose the first hour of every shoot day to copying cards. Now the card goes in, and by the time the kettle boils the proxies are on the vault and the editors have a message.”
Ines MorelandHead of Post Operations, Kettlewell Post
The full desktop app and runner, open source under Apache-2.0.
Shared flows, runners and approvals for teams of 3 to 50.
For regulated teams, air-gapped sites and many runners.
| Feature | Solo | Team | Enterprise |
|---|
Still evaluating? An engineer, not a sales script, will answer within one business day.
Talk to salesFree and open source for anyone running flows on their own machine.
$ brew install --cask larchwireInstall Larchwire, build a flow that reacts to new files, and run it from the canvas and the CLI. About five minutes.
Larchwire is a desktop app and a small background runner. You describe a flow (a trigger plus a list of steps) on the canvas or in a file, and the runner executes it on the same machine. Runs, logs and outputs are written to a local SQLite database under ~/.larchwire.
Nothing in this guide needs an account. Accounts only exist for the Team plan, where flow definitions sync between teammates.
Use the installer from the download page, or a package manager:
Check the install with larchwire --version. It should print 2.4.1.
tidy-downloads.~/Downloads with the pattern *.pdf.Every flow saved in the app is a file in your project folder, so the CLI can run it without the app open:
A flow is one trigger followed by steps. Each step declares typed inputs and outputs, so the canvas can check connections before anything runs. Steps can be scripts (Python, Node, Deno, Bash), built-in actions (HTTP, database, file, notify) or another flow.
steps.<name>.output.Five trigger types ship today: folder watch, schedule (cron syntax or plain English), webhook with HMAC verification, git push on a local repository, and a global hotkey. A flow has exactly one trigger; use a small router flow if you need more.
Retry policies are set per step: attempts, backoff (fixed, linear or exponential), a base delay and optional jitter. When the last attempt fails the run either pauses and notifies the owner, skips the step, or fails the whole run.
Steps that call external APIs should be idempotent before you raise attempts above 3. Larchwire passes an attempt number and a stable run_id you can use as an idempotency key.
Secrets live in the operating system's credential store. Flows reference them by name, for example secret("ledger-hmac"), and values are injected as environment variables only for the step that asks for them. They never appear in run logs.
| Command | What it does |
|---|---|
| larchwire validate <dir> | Type-checks every flow and reports broken connections. |
| larchwire run <flow> | Runs a flow once with optional --input values. |
| larchwire logs -f | Streams logs from every flow on this runner. |
| larchwire deploy <runner> | Copies flows to another runner over SSH (Team plan). |
Runner settings live in ~/.larchwire/larchwire.toml. The defaults are sensible; most teams only change the history retention and the concurrency limit.
Free and open source. Released September 24, 2026. Every build is signed, and checksums are listed with each file.
macOS 13 Ventura or later. Universal build for Apple silicon and Intel.
9f3c2b9e8a1d4c7e9d5a7b1e2c6f4a91e0d3b7c5a8f2e6d4c1b9a7e5f3d2c1b0Windows 10 22H2 or Windows 11. x64 and Arm64 installers.
4b17e0c9d2a6f8e3b5c1d7a9e4f2b6c8d0a3e5f7b9c1d3e5a7b9c2d4e6f8a0b2glibc 2.31 or newer. Tested on Ubuntu 22.04, Debian 12 and Fedora 40.
e2a9c4f6b8d0a2c4e6f8b0d2a4c6e8f0b2d4a6c8e0f2b4d6a8c0e2f4b6d8a0c2$ brew install --cask larchwire> winget install Larchwire.Larchwire$ curl -fsSL https://get.larchwire.dev/apt.sh | sudo bashHeadless servers only need the runner: larchwire-runner is a 22 MB static binary with the same CLI.
| Memory | 38 MB idle, plus whatever your scripts use |
|---|---|
| Disk | 210 MB for the app, history grows about 4 MB per 10,000 runs |
| Script runtimes | Python 3.9+, Node 18+, Deno 1.40+, Bash or PowerShell, found on PATH |
| Network | None required. Update checks can be turned off. |
| Older builds | See every release |
The safest data is data we never receive. Here is exactly what runs where, what the Team plan syncs, and how to report a problem.
Steps run as child processes of the runner on your machine. Files, payloads and outputs never leave it unless a step sends them somewhere you named.
Secrets live in Keychain, Credential Manager or libsecret, scoped per flow, and are redacted from logs and run history.
On Team, only flow definitions sync. They are encrypted with XChaCha20-Poly1305 before upload; we cannot read them.
Releases are built in CI from tagged commits, signed for macOS and Windows, and published with SHA-256 checksums.
The Team sync service completed a SOC 2 Type II audit in June 2026. The report is available under NDA.
Crash reports and anonymous usage stats are off until you opt in. Update checks can be disabled entirely.
| EU cloud hosting (Frankfurt) | Encrypted flow definitions and account records |
|---|---|
| Transactional email provider | Sign-in links, invoices and approval requests |
| Payment processor | Card details for paid plans; we never see full numbers |
Email security@larchwire.dev. We acknowledge within one business day and pay bounties from $250 to $8,000 depending on impact.
7A1C 3E90 B4D2 61F8 0C5E 9B27 D4A6 1F3C 88E2 5B07A 24-person post house in Toronto moved ingest, proxies and dailies notifications onto two Mac minis it already owned.
Before Larchwire, each card from set was copied by hand: an assistant editor dragged folders to the vault, ran a checksum tool, queued proxies in a transcoder and then posted in the team chat when everything finished. On a two-camera day that took most of the morning, and one missed checksum in 2025 cost a reshoot.
Ines Moreland's team built ingest-and-proxy in an afternoon. A folder watch fires when a card mounts, a Python step verifies every clip against the camera manifest, ffmpeg writes proxies, rsync copies originals to the vault and a final step posts a summary to the dailies channel.
“The retry policy is the part I did not know I needed. Proxies used to die at 2 a.m. on memory limits. Now they retry with fewer threads and nobody gets paged.”Ines Moreland, Head of Post Operations
Because everything runs on hardware in the building, Kettlewell's studio clients approved the setup without a vendor security review. Rushes never touch a third-party cloud.
Share flows and runners with your team. No card needed, and your Solo flows come with you.
“Month-end close used to be four people and a shared drive. It is one flow with an approval step now, and an audit trail our auditors actually liked.”
Tell us how many runners and people you expect. We reply within one business day with pricing and a plan for a pilot.
If you use Solo, nothing: the app works without an account and sends no telemetry unless you opt in. On Team and Enterprise we store your name, work email, workspace membership, billing details through our payment processor, and encrypted flow definitions we cannot decrypt.
Files, payloads, step outputs, run logs and secrets stay on your runners. We do not have a mechanism to receive them.
Account records are kept while your workspace is active and deleted 30 days after you close it. Invoices are kept for seven years where tax law requires it.
You can export or delete your account data at any time from workspace settings, or by emailing us. We respond to requests within 30 days.
Larchwire Labs, Inc. Write to privacy@larchwire.dev with any question about this policy.
The desktop app and runner are licensed under Apache-2.0. These terms do not limit your rights under that licence.
Team is billed per seat, monthly or yearly. You can cancel at any time; access continues until the end of the paid period. Enterprise terms are set in your order form.
Do not use the sync service to store content you have no right to share, or to attack other systems. Flows you run on your own hardware are your responsibility.
The sync service is provided with a 99.9% monthly uptime target on Enterprise. Our total liability is limited to the fees you paid in the previous 12 months.
404
The link may be old, or the page moved when the docs were reorganised in 2.4.