Synck

Synck is an open-source version-control engine and command-line tool for knowledge work: the documents, conversations, tasks, records and saved email that a team produces while it works. It records every accepted change as append-only history and follows each item, a file or a chat for example, through renames and moves. It also keeps the whole history in an ordinary folder that you own.

Here is the whole idea in four commands:

$ synck init --author "Alex"
initialized Synck repository 01a17495-2748-7b72-9f7d-510d60ce94dc
$ printf 'Ship the proposal on Friday.\n' > plan.txt
$ synck commit -m "Write down the plan"
committed sha256:f70013937512919770fda5c3ca8f5dd42633dccc35aa334d4119f15efa103491
$ synck log --oneline
2 | 2026-10-25 20:41 +01:00 | Alex | Write down the plan
1 | 2026-10-25 20:41 +01:00 | Alex | Initialize Synck repository

That folder now has a history. You can see who changed what and when, get back any earlier version, and check that nothing has been damaged. None of that needs an account, a server or a network connection.

Why Synck exists

Much of a project’s value is not in its final files. It is in the earlier drafts, the conversation where a figure was challenged, the task that recorded who approved it, and the email that went to the client. Most tools keep that context inside a hosted service. While the service is running you can see it, but you do not really hold it.

Synck is built around one promise: a complete copy of your data, with its history, that remains readable and verifiable without the service that made it. SynckHub, the collaboration product built on Synck, stores its workspaces as Synck repositories and can export one as a complete repository: a directory holding the entire retained history and every byte it refers to. With nothing but this open-source tool, you can open that directory, read its files, conversations and email, verify it, make further copies and keep working. If SynckHub disappears, your repository does not go with it.

The same engine also works as a straightforward local version-control tool for any folder of files. That is the easiest way to learn it.

What makes Synck different

If you know Git, a few of Synck’s choices will look familiar and a few will surprise you. They are deliberate; Synck internals explains the reasoning behind each one.

  • Items, not snapshots. Synck versions items: files, folders, chats, task lists, calendars and other kinds of record. Each item has a permanent identity and its own ordered history, so renaming draft.txt to proposal.txt is still the same file.
  • Append-only history. Accepted history is never rewritten. Undo adds a new change that reverses an old one. There is no amend, rebase or force-push.
  • No staging area. You edit files in any application. synck commit records what changed, either everything or the paths you name.
  • One writer, linear history. Each item has one authority that accepts its changes in order. Synck does not have Git-style branches and merges.
  • Complete, self-checking copies. A complete repository carries every version and every byte its history refers to, so a single directory is enough to read and verify it.

How this documentation is organized

The documentation follows the path most people take, from a first try to a deep understanding:

Chapter What you will find
Getting started What Synck is, how to install it, and two short tutorials
Synck basics Everyday work in a tracked folder: recording, moving, history, undo and named versions
Complete repositories Reading, copying, editing and taking over a repository exported from SynckHub
Backup and recovery Integrity checks, backups, interrupted operations and storage space
Synck internals The data model, commit identity, the .synck directory, the system design and its trade-offs
Reference Every command, formats and compatibility, output and exit codes, a glossary and FAQ

Where to start

Project status

Synck 0.1.0 is the first public release. The engine, its SQLite storage, the shared item definitions and the synck command-line tool are released under the Apache-2.0 license. SynckHub’s applications and hosted platform remain proprietary.

The Rust API is pre-1.0 and may still change. What is stored on disk is treated more strictly: a new release does not rewrite accepted history, change an identifier or quietly reinterpret stored data. See formats and compatibility.

Source code, issues and contributions live at github.com/synergyos/synck. To report a security problem, follow the repository’s SECURITY.md instead of opening a public issue.