Orchard Files

Documentation

Enough to get a workspace syncing in a few minutes, and the reference for the parts that surprise people later.

Install the agent

The desktop agent and the CLI ship in the same binary. On macOS and Linux:

curl -fsSL https://orchardfiles.com/install.sh | sh
orchard login --workspace acme

On Windows, download the MSI from the console and run it. The installer registers the agent as a service and starts it at login.

First sync

Point a local directory at a workspace path. The agent watches it from then on; you do not run the command again.

orchard sync add ~/Work/designs /designs
orchard sync status

  /designs   ~/Work/designs   watching   1,284 files   14.2 GB   idle

The first pass hashes everything locally and uploads only what the server does not already hold, so seeding a second machine from the same workspace is mostly a no-op.

Restoring

Every write is a version. List them and restore by timestamp:

orchard versions /designs/proposal.pdf
orchard restore /designs/proposal.pdf --at 2026-08-14T09:20Z
orchard restore /designs --at 2026-08-01 --into ~/restore/

Restoring never overwrites in place unless you pass --force. Without it the restored copy lands beside the original with a suffix.

The S3-compatible endpoint

Each workspace is also an S3 bucket. Generate a key pair in the console, then point any S3 client at the regional endpoint:

[orchard]
type = s3
provider = Other
endpoint = https://eu-1.orchardfiles.com
access_key_id = OF...
secret_access_key = ...
region = eu-1

Supported: ListObjectsV2, GetObject, PutObject, DeleteObject, multipart upload, and presigned GET and PUT URLs. Not supported: bucket policies, object locking, and lifecycle rules — retention is a workspace setting, not a per-object one.

Endpoints

RegionHostOff-site copy goes to
eu-1eu-1.orchardfiles.comeu-2
eu-2eu-2.orchardfiles.comeu-1
ap-1ap-1.orchardfiles.comeu-1
A workspace lives in one region. Moving it is a support request and takes as long as the data takes to copy.

Limits

Maximum object size5 TB
Multipart part size8 MB minimum, 5 GB maximum
Path length1,024 bytes, UTF-8
Versions per objectUnbounded inside the retention window
Concurrent connections per key64
Presigned URL lifetime7 days maximum

Connection behaviour

The agent keeps a single TLS 1.3 connection open per workspace and multiplexes transfers over it. It is deliberately long-lived: reconnecting costs a handshake and a re-listing, and on a large workspace that is not free. If the connection drops, the agent backs off — one second, then two, to a ceiling of five minutes — and resumes partial uploads from the last acknowledged part rather than restarting them.

Idle connections are not closed by the server. If a middlebox on your network closes them for us, set keepalive_interval in ~/.orchard/config.toml to something below its timeout:

[network]
keepalive_interval = "45s"
max_parallel_parts = 4

Getting help

Support is support@orchardfiles.com. Include the output of orchard doctor — it collects versions, endpoint reachability and the last few hundred log lines, and it redacts your keys before printing.