tlock icon indicating copy to clipboard operation
tlock copied to clipboard

Two-Factor Authentication Tokens Manager in Terminal

TLock

TLock is an open-source tool to store and manage your authentication tokens securely. It gives users a centralized solution to generate and maintain time-based one-time passwords (TOTP) and other token types for secure authentication processes. By consolidating multiple authentication tokens into a single application, this 2FA manager streamlines the process of accessing accounts while ensuring high security.

⭐ Features

  • 🚀 Cross-platform - Works perfectly on Windows, Linux, and MacOS.
  • ⚡️ Blazingly Fast app written in Golang.
  • 👥 Supports multiple users, each protected optionally with a password.
  • ⌨️ Traverse through the UI with customizable key keybindings (can have different keybindings per user).
  • 📁 Supports organizing tokens inside of folders.
  • 🌟 Supports industry-standard TOTP and HOTP-based tokens.
  • 📷 Easily add tokens from the screen or the advanced token editor.
  • 🎨 Supports multiple themes to sync the TLock theme with your favorite color scheme.
  • 😀 Show icon of the issuer if it is supported.

[!NOTE] For showing the provider's icon, you must have Nerd Fonts installed

[!NOTE] To make screenshot feature work on wayland, you need to install grim

⬇️ Installation

  • Arch Linux (with AUR helper, like yay)

    yay -S tlock
    
  • NixOS (with Flakes)

    Try out before installing ✨

    nix run "git+https://github.com/eklairs/tlock?submodules=1"
    

    Minimal configuration:

    # flake.nix
    {
      inputs = {
        nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
        tlock.url = "git+https://github.com/eklairs/tlock?submodules=1";
        tlock.inputs.nixpkgs.follows = "nixpkgs";
      };
    
      outputs = inputs @ { self, nixpkgs, tlock, ... }:
      {
        # Change hostname etc. as needed
        nixosConfigurations.hostname = let
          system = "x86_64-linux";
          lib = nixpkgs.lib;
        in lib.nixosSystem {
          inherit system;
          modules = [
            {
              environment.systemPackages = [
                tlock.packages.${system}.default
              ];
            }
            ./configuration.nix
          ];
        };
      };
    }
    
  • Windows (with scoop)

    scoop bucket add tlock https://github.com/eklairs/tlock
    scoop install tlock
    
  • Manually

    You can also download the binary based on your operating system to use TLock from releases

  • Docker

    docker run -it --rm ghcr.io/eklairs/tlock:latest
    

🖼️ Screenshots

🏎️ Running

Open your terminal and type tlock to start using tlock!

❤️ Contributing

Did you come across a bug or want to introduce a new feature? Don't hesitate to open up an issue or pull request!

License

MIT