# abraunegg/onedrive: a OneDrive client for Linux, FreeBSD and OpenBSD

> The maintained D-language fork of the skilion OneDrive client syncs OneDrive Personal, OneDrive for Business and SharePoint libraries on Linux, FreeBSD and OpenBSD. It is a headless sync daemon with granular filtering, not a desktop file manager, and it has no native Windows or macOS build.

**abraunegg/onedrive** — OneDrive Client for Linux

- Repository: https://github.com/abraunegg/onedrive
- Website: https://abraunegg.github.io
- Stars: 12,870 · Forks: 918
- Language: D
- License: GPL-3.0
- Published: 2026-09-21 · Updated: 2026-09-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/abraunegg-onedrive

## What abraunegg/onedrive solves, and who is actually stuck without it

Microsoft ships an official OneDrive client for Windows and macOS. It does not ship one for Linux, FreeBSD or OpenBSD. That gap is the entire reason this project exists. If you administer Linux workstations, a headless server that needs to mirror a SharePoint document library, or a FreeBSD box that has to reach OneDrive for Business, the vendor route is closed and you are looking at either a sync daemon or manual uploads through a browser.

The audience is narrower than the topic list suggests. This is not aimed at someone who wants a tray icon and a file picker. It is aimed at an administrator or a technical user who is comfortable editing a config file, running a systemd unit, and reasoning about which direction data should flow. The client supports OneDrive Personal, OneDrive for Business, Microsoft 365 and SharePoint document libraries, and the README lists single-tenant and multi-tenant Microsoft Entra ID environments plus national clouds as supported. The project began in early 2018 as a fork of the skilion client after pull requests were not merged; skilion confirmed in 2020 that they had no intention of maintaining their work, and the original repository was archived and made read-only in December 2024. That history matters when you are choosing which of the two codebases to install, because the upstream one stopped receiving changes in November 2021.

## How the sync engine decides what to move

The client is a local daemon that reconciles a local directory with a remote OneDrive or SharePoint tree. Three synchronisation modes are documented: bi-directional (the default), upload-only, and download-only. Dry-run mode lets you exercise the configuration without touching files. That four-way split is the core of the design, and it is the first decision you make, because an upload-only configuration on a server that also receives cloud edits will silently diverge.

Change detection runs on both sides. Cloud-side changes arrive through native WebSocket support, with webhooks offered for environments where WebSockets are unsuitable, and the README notes webhook setup is manual. Local changes are watched with inotify. Filtering happens client-side before anything is transferred, using inclusion and exclusion rules with `*` wildcards and `**` globbing, so you can keep a large SharePoint library from landing on a laptop with a small disk. The client keeps a cached sync state to make decisions quickly on large sync sets.

Conflict handling is where the design shows its priorities. The documentation describes creating local backups whenever that is judged the safest conflict-resolution strategy, and the client implements the FreeDesktop.org Trash specification so that items deleted locally as a result of an online deletion can be recovered. Both choices favour recoverability over a clean directory listing, which is the right trade for a server and an irritation on a desktop. The README does not document rollback of a completed sync, so a mistaken filter change is corrected by fixing the filter, not by undoing the run.

## Installing abraunegg/onedrive and running a first dry-run sync

The repository is a D project built through a generated `configure` script and a `Makefile.in`; the top-level entries are `configure`, `configure.ac`, `Makefile.in`, `src/`, `docs/`, `contrib/`, `tests/` and `config`. The README points readers at the project documentation site at https://abraunegg.github.io for installation instructions per distribution, and the repository also carries a `contrib/` directory for packaging material and a Docker image published as `driveone/onedrive`. The README excerpt available here does not print a full build command sequence, so the documentation site is the place to get the exact steps for your distribution; do not guess at flags.

What the repository does tell you is where the pieces live. The `configure` script and `Makefile.in` at the top level are the build entry points for the source tree, and `config` is the sample configuration file. Once the client is installed, the configuration file is `~/.config/onedrive/config`, and the README documents the synchronisation mode and filtering rules as the settings that matter most.

Before syncing a real library, run a sync in dry-run mode against a small test directory. Dry-run mode is documented as a way to test configuration changes safely without modifying files. Set the sync directory and a narrow filter, run the dry-run, read the list of planned transfers, and only then switch out of dry-run mode for the real sync.

## Where abraunegg/onedrive is the wrong tool

There is no native Windows or macOS build, and the README is direct about why: Microsoft provides an official client on both platforms with operating-system integration and Files On-Demand, so native support there is not a development priority. Running the Docker container on those hosts is described as a possibility if Docker is available and a host directory can be mounted as the sync directory, but that is a workaround, not parity. Files On-Demand in particular has no equivalent here, so a full mirror costs local disk equal to the remote tree minus whatever your filters exclude.

Webhook mode is documented as requiring manual setup, which means the near-real-time path most people want is the WebSocket one, and the webhook fallback is for environments where that is blocked. Either way, change detection depends on a persistent connection to Microsoft, so a laptop that suspends constantly will not behave like a server.

The bigger caveat is operational. This is a daemon that writes to your files. A misconfigured filter or the wrong sync mode can propagate deletions in a direction you did not intend. The client mitigates this with local backups and FreeDesktop.org Trash integration, but those are recovery mechanisms, not a substitute for a dry run. If you want a client that asks before every action, this is not it.

## How it differs from rclone for OneDrive access

rclone is the obvious alternative and the difference is architectural rather than cosmetic. rclone is a general remote-storage tool with a OneDrive backend among many; you invoke it, it performs the transfer or mount you asked for, and it exits. abraunegg/onedrive is a single-service daemon that owns one local directory and keeps it reconciled with OneDrive continuously, with inotify and WebSocket watching built in.

That means the choice follows from whether you want a job or a state. If you need to copy a directory to OneDrive on a schedule, or mount the remote as a filesystem, rclone's model fits and you keep one tool for every cloud you touch. If you need a Linux workstation or server where a OneDrive folder behaves like a local folder that happens to stay in sync, the daemon model is what you want, and rclone would require you to build the watching and scheduling yourself. The trade is scope: rclone covers many providers, this client covers Microsoft's and goes deeper on Microsoft-specific behaviour such as shared folders, SharePoint libraries and national cloud endpoints.

## Maintenance, licensing and the cost of staying current

The repository is not archived and the last push was on 2026-09-21. Releases are irregular rather than frequent: v2.5.11 on 2026-06-30, v2.5.10 on 2026-01-30, and v2.5.9 on 2025-11-06. That cadence is worth internalising before you deploy at scale. Microsoft's OneDrive API and authentication requirements change, and the project's own history makes the point: the README notes major API changes and evolving platform requirements since the skilion client stopped receiving code changes in November 2021, which is precisely why the fork exists. A client that talks to a vendor API carries a compatibility maintenance cost whether or not the code changes.

Licensing is GPL-3.0. The README states that forking and continuing development is permitted under the GPL provided derivative works retain the same license, and that this client complies with the original GPLv3 terms. If you plan to redistribute the binary inside a product, or link it into a proprietary appliance image, that is the point to involve someone qualified to assess GPL obligations; nothing here should be read as legal advice. Sponsorship is offered through GitHub Sponsors and the README states it is optional and does not change access to the software, documentation or support.

## Conclusion

Adopt abraunegg/onedrive when you need OneDrive Personal, OneDrive for Business or SharePoint document libraries reachable from a Linux, FreeBSD or OpenBSD host, and when you are willing to run a sync daemon rather than a desktop client. Skip it if your users are on Windows or macOS and expect Files On-Demand: the README states those platforms are not a development priority because Microsoft ships an official client for both. Before you commit, verify two things from the documentation: which authentication flow fits your tenant, and whether your account type is covered by the compatibility list, since national cloud deployments such as Microsoft Cloud for US Government, Microsoft Cloud Germany and Azure/Office 365 operated by VNET in China are named separately. Then run a dry-run sync against a small test folder before pointing it at a production document library.

## FAQ

### What is abraunegg/onedrive and do I need it?

It is a free, open-source Microsoft OneDrive client for Linux, FreeBSD and OpenBSD that supports OneDrive Personal, OneDrive for Business, Microsoft 365 and SharePoint document libraries. You need it if you want those services reachable from one of those operating systems, since Microsoft's official client covers only Windows and macOS.

### Is abraunegg/onedrive free to use?

The client is free and open-source software licensed under GPL-3.0, and the README states that sponsorship is optional and does not alter access to the software, documentation or community support. What you pay for is your Microsoft OneDrive or Microsoft 365 subscription, which is separate.

### How do I install abraunegg/onedrive?

The README points to the project documentation site at https://abraunegg.github.io for installation instructions, and the repository ships a configure script and Makefile.in for building from source. A Docker image is also published as driveone/onedrive for containerised deployments.

### Can I use abraunegg/onedrive on Windows 11 or macOS?

No, not natively. The README states the client does not provide native support for Microsoft Windows or macOS and that this is not currently a development priority, because Microsoft ships an official client with Files On-Demand on both. Running it through the Docker container is described as possible if Docker is supported on the host and a directory can be mounted as the sync directory.

### What is a disadvantage of abraunegg/onedrive?

It is a daemon that writes to your files, so a wrong sync mode or filter can propagate changes in a direction you did not intend; the client mitigates this with local backups and FreeDesktop.org Trash integration, but dry-run mode exists precisely so you can check the plan first. It also has no Files On-Demand equivalent, so a full mirror consumes local disk.

## Sources

- [abraunegg/onedrive on GitHub](https://github.com/abraunegg/onedrive)
- [License: GPL-3.0](https://github.com/abraunegg/onedrive/blob/master/LICENSE)
- [Project website](https://abraunegg.github.io)
- [README](https://github.com/abraunegg/onedrive/blob/master/README.md)
- [Releases](https://github.com/abraunegg/onedrive/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/abraunegg-onedrive
