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
| Region | Host | Off-site copy goes to |
|---|---|---|
| eu-1 | eu-1.orchardfiles.com | eu-2 |
| eu-2 | eu-2.orchardfiles.com | eu-1 |
| ap-1 | ap-1.orchardfiles.com | eu-1 |
Limits
| Maximum object size | 5 TB |
|---|---|
| Multipart part size | 8 MB minimum, 5 GB maximum |
| Path length | 1,024 bytes, UTF-8 |
| Versions per object | Unbounded inside the retention window |
| Concurrent connections per key | 64 |
| Presigned URL lifetime | 7 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.