# Proton Drive CLI

**URL:** https://discourse.nixos.org/t/proton-drive-cli/80519
**Category:** Help
**Created:** [October 11, 2026, 11:54am UTC](https://discourse.nixos.org/t/proton-drive-cli/80519 "2026-10-11T11:54:05Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![jdavidstark](https://discourse.nixos.org/user_avatar/discourse.nixos.org/jdavidstark/32/38800_2.png) [@jdavidstark](https://discourse.nixos.org/u/jdavidstark)
#### Post date: [October 11, 2026, 11:54am UTC](https://discourse.nixos.org/t/proton-drive-cli/80519/1 "2026-10-11T11:54:05Z")

</div>

Would anyone have any insight on installing the Proton Drive CLI? I’m running NixOS 26.05 with Gnome 50.

In a Debian 13 virtual machine with Gnome 48, I can download [the latest linux/x64 binary](https://proton.me/download/drive/cli/index.html), and it works fine within that virtual machine.

When I download and try to use the same binary within NixOS, however, I get this error

```auto
12 | let raw;
13 | try {
14 | raw = await Bun.secrets.get({ service: CREDENTIALS_SERVICE, name: CREDENTIALS_NAME });
15 | } catch (error: unknown) {
16 | const message = error instanceof Error ? error.message : String(error);
17 | throw new ValidationError(
                       ^
ValidationError: Failed to load session from secrets (ensure you have secrets available, read the README for more information): libsecret not available
    code: undefined,
 details: {
  cause: error: libsecret not available
 code: "ERR_SECRETS_PLATFORM_ERROR"

,
},

      at load (src/credentials/secretCredentialsStore.ts:17:19)
      at async load (src/credentials/credentials.ts:62:38)
      at async loadSession (../incubating/account/js/src/auth.ts:31:32)
      at async SY (../incubating/account/js/src/index.ts:46:16)
      at async IY (src/api/index.ts:37:15)
      at async TP (src/init.ts:34:67)
      at async oSe (src/cli/repl.ts:10:27)
      at async aSe (src/cli/index.ts:27:15)

```

Under NixOS, `gnome-keyring` shows as installed at `/run/current-system/sw/bin/gnome-keyring`.

Thanks so much for your help!

* * *

P.S.: I’ve also made a start at a declarative installation for the Proton Drive CLI. I’m including it below for completeness. But when I do `protondrive`, I get output like I did `bun --help` with protondrive’s included bun dependency. So, I figure it’s better to sort out the binary download error first and then see if that resolves the declarative build issue.

```nix
  latestProtonDriveCLI = pkgs.stdenv.mkDerivation rec { # Issues possibly related to https://github.com/github/copilot-cli/issues/3081?
    pname = "protondrive";
    version = "0.9.0";

    src = pkgs.fetchurl {
      sha512 = "sha512:3533025ba69ae112b64e3e01fbcc1ad0688136a4043f6cf6a72886967d85fdcd9ec235479c2e113171614be5225bfba93427509a05ca5aa6071d924fa7e91ca8";
      url = "https://proton.me/download/drive/cli/${version}/linux-x64/proton-drive";
    };

    dontBuild = true;
    dontUnpack = true;

    installPhase = ''
      mkdir -p $out/bin
      cp ${src} $out/bin/protondrive
      chmod +x $out/bin/protondrive
    '';

    meta = with pkgs.lib; {
      description = "CLI for Proton Drive";
      homepage = "https://github.com/ProtonDriveApps/sdk/tree/main/cli";
      license = licenses.mit;
      mainProgram = "protondrive";
      platforms = ["x86_64-linux"];
    };
  };

```

---

<div class="post-metadata">

### Author: ![rph](https://discourse.nixos.org/user_avatar/discourse.nixos.org/rph/32/33776_2.png) [@rph](https://discourse.nixos.org/u/rph)
#### Post date: [October 11, 2026, 5:43pm UTC](https://discourse.nixos.org/t/proton-drive-cli/80519/2 "2026-10-11T17:43:38Z")

</div>

> [@jdavidstark](#):
>
> Under NixOS, `gnome-keyring` shows as installed at `/run/current-system/sw/bin/gnome-keyring`.

Hi @jdavidstark. I’m fairly new to NixOS so please take my advice with several grains of salt, yet my first inclination would be to ensure that `libsecret`, `libnotify` or any other external link library dependencies that enable optional features you would like to use have been added to the `buildInputs = [...]` attribute of your derivation, so that the Proton Drive executable might find them at runtime within the same closure searched via the dynamic linker.

---

<div class="post-metadata">

### Author: ![jdavidstark](https://discourse.nixos.org/user_avatar/discourse.nixos.org/jdavidstark/32/38800_2.png) [@jdavidstark](https://discourse.nixos.org/u/jdavidstark)
#### Post date: [October 12, 2026, 10:39pm UTC](https://discourse.nixos.org/t/proton-drive-cli/80519/3 "2026-10-12T22:39:32Z")

</div>

Thanks, I’m fairly new too. `gnome-keyring` and `seahorse` are installed, which should mean that `libsecret` is also (e.g., [`seahorse`](https://github.com/NixOS/nixpkgs/blob/6fcc160353f63555b560f25588925133c8f61f2a/pkgs/by-name/se/seahorse/package.nix)). But even [the straight binary download](https://proton.me/download/drive/cli/index.html) from a browser fails with an error like the one above or `Failed to load session from secrets (ensure you have secrets available, read the README for more information): libsecret not available`.

I’ve tried several ways to incorporate `libsecret` in the build process but am so far still getting essentially the same kinds of errors. So, I’m clearly continuing to miss something.

---

<div class="post-metadata">

### Author: ![bitbloxhub](https://discourse.nixos.org/user_avatar/discourse.nixos.org/bitbloxhub/32/35210_2.png) [@bitbloxhub](https://discourse.nixos.org/u/bitbloxhub)
#### Post date: [October 12, 2026, 11:11pm UTC](https://discourse.nixos.org/t/proton-drive-cli/80519/4 "2026-10-12T23:11:16Z")

</div>

You may be interested in this PR:

> <https://github.com/NixOS/nixpkgs/pull/557198>
>
> Adds proton-drive-cli, the CLI for Proton Drive.
> Version: \`0.8.0\`
> \[Source\](htt…ps://github.com/ProtonDriveApps/sdk/tree/main/cli)
> \[Docs\](https://proton.me/support/drive-cli)
> \[Binary downloads\](https://proton.me/download/drive/cli/index.html)
> 
> \## Things done
> 
> 
> 
> \- Built on platform:
> - \[x\] x86\_64-linux
> - \[x\] aarch64-linux
> - \[\] aarch64-darwin
> \- Tested, as applicable:
> - \[\] \[NixOS tests\] in \[nixos/tests\].
> - \[\] \[Package tests\] at \`passthru.tests\`.
> - \[\] Tests in \[lib/tests\] or \[pkgs/test\] for functions and "core" functionality.
> \- \[x\] Ran \`nixpkgs-review\` on this PR. See \[nixpkgs-review usage\].
> \- \[x\] Tested basic functionality of all binary files, usually in \`./result/bin/\`.
> \- Nixpkgs Release Notes
> - \[\] Package update: when the change is major or breaking.
> \- NixOS Release Notes
> - \[\] Module addition: when adding a new NixOS module.
> - \[\] Module update: when the change is significant.
> \- \[x\] Fits \[CONTRIBUTING.md\], \[pkgs/README.md\], \[maintainers/README.md\] and other READMEs.
> \- \[x\] Follows the \[automation/AI policy\].
> 
> \[NixOS tests\]: https://nixos.org/manual/nixos/unstable/index.html#sec-nixos-tests
> \[Package tests\]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#package-tests
> \[nixpkgs-review usage\]: https://github.com/Mic92/nixpkgs-review#usage
> 
> \[CONTRIBUTING.md\]: https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md
> \[automation/AI policy\]: https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#automationai-policy
> \[lib/tests\]: https://github.com/NixOS/nixpkgs/blob/master/lib/tests
> \[maintainers/README.md\]: https://github.com/NixOS/nixpkgs/blob/master/maintainers/README.md
> \[nixos/tests\]: https://github.com/NixOS/nixpkgs/blob/master/nixos/tests
> \[pkgs/README.md\]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md
> \[pkgs/test\]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/test

Generally, if something isn’t packaged in `nixpkgs` yet, it’s a good idea to search for any PRs by someone who has already done some of the packaging work.  
Anyhow, that PR does this:

```auto
  postFixup = lib.optionalString stdenvNoCC.hostPlatform.isLinux ''
    wrapProgram $out/bin/proton-drive \
      --prefix LD_LIBRARY_PATH : ${
        lib.makeLibraryPath [
          libsecret
          glib
        ]
      }
  '';

```

AFAICT it needs to do this (rather than `patchelf` or similar) because of the way the library is loaded from `Bun.secrets`.

---

<div class="post-metadata">

### Author: ![jdavidstark](https://discourse.nixos.org/user_avatar/discourse.nixos.org/jdavidstark/32/38800_2.png) [@jdavidstark](https://discourse.nixos.org/u/jdavidstark)
#### Post date: [October 13, 2026, 11:35am UTC](https://discourse.nixos.org/t/proton-drive-cli/80519/6 "2026-10-13T11:35:22Z")

</div>

Indeed. Thanks for the suggestion. Thought I had done that, but will definitely do so more carefully next time around and will watch that PR for developments. In the meantime, [this](https://github.com/alexrf45/nix-config/blob/7e91d947e024f1a733e1df151ac575b00c5b5c8d/pkgs/proton-drive-cli.nix) works perfectly (as referenced in the PR you mentioned), including for the current version (0.9.0). Thanks so much!

---

<div class="post-metadata">

### Author: ![bitbloxhub](https://discourse.nixos.org/user_avatar/discourse.nixos.org/bitbloxhub/32/35210_2.png) [@bitbloxhub](https://discourse.nixos.org/u/bitbloxhub)
#### Post date: [October 13, 2026, 4:53pm UTC](https://discourse.nixos.org/t/proton-drive-cli/80519/7 "2026-10-13T16:53:33Z")

</div>

FYI, that’s a different packaging mentioned in another PR that linked to the nixpkgs one in its description.
