Crates.io | cinc |
lib.rs | cinc |
version | 0.2.3 |
created_at | 2025-05-24 15:27:33.438298+00 |
updated_at | 2025-06-14 23:26:46.125938+00 |
description | Cloud sync replacement for games that don't have it |
homepage | https://github.com/0x00002a/cinc |
repository | https://github.com/0x00002a/cinc |
max_upload_size | |
id | 1687563 |
size | 254,564 |
We have steam cloud at home
This is a tool designed to give a similar experience to steam cloud sync for games which don't have it on steam. It's goals are:
cargo install cinc
In order to actually sync to a shared location and not just the local filesystem you will need to configure cinc to use a backend. Currently the only supported backend of this nature is WebDav. You can add a WebDav backend with the following command:
cinc backends add \
--name=<splung> \
--ty=webdav \
--root=/cinc \
--webdav-url=<url> \
--webdav-username=<username> \
--set-default
The --root
argument is optional, but is recommended unless you include it in
the url or are okay with cinc using the root of the WebDav server. You can
learn more about what each of these arguments does with cinc backends add --help
.
Once you have configured a backend you can move on to actually using cinc on
your platform of choice. Currently it supports steam and anything that uses umu
or wine in theory though for many games it will struggle to find the manifest
without being launched through steam or heroic. You can use the --steam-app-id
argument on cinc launch
to solve this problem.
Set the launch options field to:
cinc launch -- %command%
This might not work since cargo installs packages to a directory that isn't
always in the path by default, in that case use the absolute path for cinc
instead (you can get it by doing which cinc
in your shell)
Launching non-steam games through steam has an added complication due to the
app id that steam assigns it not matching the actual steam app id for the game.
This means that cinc
will not be able to automatically work out which game it
is launching. This is solved by passing the --steam-app-id
argument with the
real steam app id (which can be found on steamdb or by examining the numeric
part of the store page url, e.g. for
https://store.steampowered.com/app/1903340/Clair_Obscur_Expedition_33/ the
steam app id is 1903340
)
e.g. if you have bought clair obscur through another store front but want to run it as a non-steam game through steam you would use the following command:
cinc launch --steam-app-id=1903340 -- %command%
To use cinc with the heroic launcher you must specify it as a wrapper in the
advanced options for the game. Set the wrapper path to the absolute path to the
binary (likely /home/<name>/.local/share/cargo/bin/cinc
) and the arguments to
launch
.
If you want to run the game under gamescope or anything else which would usually act as a wrapper make sure cinc is the last executable in the pile. It depends on being passed the exact command to run the game itself (i.e. NOT gamescope running the game) in order to do various parts of its platform and sync paths detection.
e.g. to run a game under steam with gamescope and cinc:
gamescope -- cinc launch -- %command%
Technically not all games are supported. cinc uses the
ludusavi manifest format (and
ludusavi's manifest by default) and I have yet to find a game that isn't on
that list, but if a game isn't supported and you want it recommend either changing
the default_manifest
url in the config to point at your custom manifest or contributing
to the ludusavi one directly (which you should do by contribing to pcgamingwiki).
Note that the manifest is cached so if you do this you will need to update it with
cinc --update