keepassxc-proxy-lib

Crates.iokeepassxc-proxy-lib
lib.rskeepassxc-proxy-lib
version0.1.1
created_at2025-12-04 09:15:46.949015+00
updated_at2025-12-04 10:38:45.737412+00
descriptionClient library for communicating with KeePassXC via its browser integration protocol
homepagehttps://git.dog/xx/keepassxc-proxy-lib
repositoryhttps://git.dog/xx/keepassxc-proxy-lib
max_upload_size
id1966219
size56,628
Rasmus Moorats (nnsee)

documentation

README

keepassxc-proxy-lib

A Rust library to fetch credentials from a running KeePassXC instance via its browser integration protocol.

Installation

Add to your Cargo.toml:

[dependencies]
keepassxc-proxy-lib = "0.1"

Usage

use keepassxc_proxy_lib::{Connection, Association};

fn main() -> Result<(), keepassxc_proxy_lib::Error> {
    let mut conn = Connection::new();
    conn.connect(None)?;

    // Create new association (database should be unlocked)
    conn.associate()?;

    // Save association for later
    let assoc = conn.dump_association()?;
    println!("Save this: {}", serde_json::to_string(&assoc)?);

    // Get logins
    let logins = conn.get_logins("https://github.com")?;
    for login in logins {
        println!("User: {}, Pass: {}", login.login, login.password);
    }

    Ok(())
}

Restoring a saved association

use keepassxc_proxy_lib::{Connection, Association};

fn main() -> Result<(), keepassxc_proxy_lib::Error> {
    let assoc: Association = serde_json::from_str(r#"{"name":"...","public_key":"..."}"#)?;

    let mut conn = Connection::new();
    conn.connect(None)?;
    conn.load_association(&assoc)?;

    if conn.test_associate(false)? {
        let logins = conn.get_logins("https://github.com")?;
        // ...
    }

    Ok(())
}

Requirements

  • KeePassXC with Browser Integration enabled (Settings -> Browser Integration)
  • No need to enable specific browsers; the integration being enabled is sufficient

Platform Support

  • Linux (Unix socket via XDG_RUNTIME_DIR or /tmp)
  • macOS (untested) (Unix socket via TMPDIR)
  • Windows (untested) (named pipe)

Security Note

The association's public key acts as a key file to any password with a URL. Store it securely.

Credits

License

MIT

Commit count: 0

cargo fmt