Files
IronStorage/README.md
2026-08-09 21:22:31 +00:00

1.8 KiB

IronStorage

IronStorage is a native client for pass and pass-otp.

pass stores entries as GPG-encrypted .gpg files in an ordinary directory tree (normally ~/.password-store), selects one or more recipients through .gpg-id files, and can track changes in Git. IronStorage keeps that format and the first-party pass command behavior. pass-otp compatibility adds otpauth:// secrets, OTP generation, and QR import/export.

The compatibility target includes init, list/show, find/grep, insert/edit, generate, remove, move/copy, and Git-backed commit and synchronization flows. Remote synchronization is HTTPS-only and uses server/application credentials kept in the operating system's secure store.

The central ironstorage Rust crate owns repository access, Git, GPG-compatible encryption and key handling, entries, OTP, synchronization, and platform-secure credential orchestration. Applications are presentation and interaction adapters only. Runtime subprocesses—including pass, git, and gpg—are forbidden; compatibility is implemented in Rust.

Candidate libraries and the pending project-license decision are tracked in DEPENDENCIES.md.

The shared TOML schema, path rules, editor precedence, and HTTPS remote format are documented in docs/configuration.md.

Project layout

crates/storage  password-store domain and storage library
crates/apple    UniFFI boundary for Apple presentation code
apps/cli        pass-compatible command-line frontend
apps/tui        Ratatui frontend
apps/desktop    Iced desktop frontend for macOS, Windows, and Linux
apple/          iPhone, AutoFill, and watchOS presentation targets

The Apple project is generated with XcodeGen:

cd apple
xcodegen generate