ff3147e73bc9458cbd628e9f6e8382e1658210ba
Tests cover: alias resolution (exact match, device path match, unknown, empty methods default), AliasFor lookup, Load with missing/valid YAML, MapperName generation, and token plugin directory detection. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
arca
A CLI tool for mounting and unmounting LUKS-encrypted volumes. Latin for "strongbox."
arca talks to udisks2 over D-Bus, so no root privileges are required. It handles the unlock-then-mount and unmount-then-lock sequences as single commands.
Usage
arca mount /dev/sda1 # unlock + mount by device path
arca mount backup # unlock + mount by config alias
arca unmount backup # unmount + lock
arca status # show unlocked LUKS volumes
Configuration
Optional. Without a config file, arca works with device paths directly.
~/.config/arca/config.yaml:
devices:
backup:
uuid: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
mountpoint: "/mnt/backup" # optional — udisks2 picks if omitted
methods: # optional — default: [passphrase]
- fido2
- passphrase
media:
uuid: "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
methods:
- keyfile
- passphrase
keyfile: "/path/to/media.key"
Aliases let you refer to devices by name and ensure stable identification via UUID regardless of device path changes.
The methods list defines the unlock strategies to try in order. If the
first method fails (e.g., FIDO2 key not present), arca tries the next.
Supported methods: passphrase, keyfile, fido2, tpm2.
Installation
Nix flake
# flake.nix
inputs.arca.url = "git+https://git.wntrmute.dev/kyle/arca";
# in your NixOS config or home packages
environment.systemPackages = [ inputs.arca.packages.${system}.default ];
From source
go install git.wntrmute.dev/kyle/arca@latest
Requirements
- Linux with udisks2 running (standard on most desktop distributions)
- D-Bus session or system bus access
Description
Languages
Go
97.8%
Nix
2.2%