Skip to content
Emacs interface for shroud password manager
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.dir-locals.el nongnu: license headers Jun 20, 2019
COPYING Sprinkle Freedom on top. Feb 7, 2019
Makefile nongnu: license headers Jun 20, 2019
README add readme Jun 11, 2019 nongnu: comply with requirements(license header) Jun 20, 2019
shroud-bui.el remove shroud-bui-alist-serialize Jun 17, 2019
shroud-cli.el fix: allow space(char) in entry-content values Jun 17, 2019
shroud-el.el shroud-eval wishlist Jun 23, 2019
shroud-test.el output format of shroud--show-entry has changed Jun 17, 2019
shroud.el use completing read interface by default Jun 17, 2019
shroud.svg shroud.svg: change license to CC-BY-SA 4.0 Jun 24, 2019


* Emacs-Shroud Interface
  :ALT_TITLE: Introduction
  :DESCRIPTION: Shroud secrets manager
  Shroud is a password manager written in Guile which uses GnuPG in
  the backend. See Shroud's website at [[][this link.]] This package is an
  Emacs interface to Shroud using the Buffers User Interface library.

  Shroud stores secrets as a plain text encrypted using
  GnuPG. Particularly, in Lisp's S-expressions, in a form of
  associaton lists. This provides the dual benefit that, the file is
  trivial to parse by machine, yet at the same time, is perfectly
  readable/editable by a human.

  You can view, copy and edit secrets from Emacs.

** Features
   :ALT_TITLE: Features
   :DESCRIPTION: Facilities provided by this package
   - Elisp procedures to operate the Shroud command line interface.
   - An Elisp implementation of Shroud, using EPG and dash.
   - A Buffers User Interface to view entries in the database.

** For a quick start
   :ALT_TITLE: Usage
   :DESCRIPTION: Common usage commands
   - M-x shroud
   - (global-set-key (kbd "C-c p") 'shroud)
   - Keybinds: To view the keybinding press =C-h m= in the *Shroud*
   | Key | Action              |
   | c   | copy password       |
   | I   | copy username       |
   | a   | add new entry       |
   | d   | delete entry        |
   | g   | refresh buffer      |
   | e   | edit entry at point |
   | w   | copy url            |

* Installation
  :ALT_TITLE: Installation
  :DESCRIPTION: This section will guide you through setting up Shroud.el
** with guix
   :ALT_TITLE: Install with Guix
   :DESCRIPTION: Using the Gnu Guix package manager
   To install, simply clone the repo, or download file =guix.scm= and
   build the package =emacs-shroud= present in =guix.scm=.
   #+begin_src shell
    git clone
    cd emacs-shroud
    guix package -i guix.scm
** from git
   :ALT_TITLE: From Sources
   :DESCRIPTION: Install from Git
   #+begin_src emacs-lisp
    (push (directory-file-name "/path/to/emacs-shroud/") load-path)
    (require 'shroud)
** from Melpa
   :ALT_TITLE: From Melpa Package Repository
   :DESCRIPTION: Install from Melpa
   The easiest way to install is to use MELPA, and just type:
   =M-x package-install RET shroud= inside Emacs.

* Configuration
  :ALT_TITLE: Configuration
  :DESCRIPTION: Pick some options, set variables
  Shroud's configuration options can be changed in the =$HOME/.shroud=
  file. The default database is located in =~/.config/shroud/db.gpg=.

  However, Emacs-shroud also includes an elisp implementation of
  Shroud. It can be configured to use the same defaults as Shroud.
  #+begin_src emacs-lisp
    (setq shroud-el--database-file "~/.config/shroud/db.gpg")
    (setq shroud-el--config-file "~/.shroud")
    (setq shroud-el--gpg-key "A1761FE275883XXX")
  If gpg-key is not set and no configuration file is found Shroud may
  prompt you to choose a key each time you edit the database(remember
  it's just alists)
  You can choose to use the elisp implementation only with this bit of Elisp.
  #+begin_src emacs-lisp
    (setq shroud-executable nil)
  If the shroud-executable is nil shroud--init will setup accordingly.

* Examples
  :ALT_TITLE: Example Setup
  :DESCRIPTION: A minimal setup
** Sample Shroud Config
   :ALT_TITLE: Shroud Config
   :DESCRIPTION: Config file
   =$HOME/.shroud= or M-x customize-group shroud
   #+begin_src emacs-lisp
    '((user-id . "AAOEUOEUP12323"))
** Sample Shroud Database
   :ALT_TITLE: Shroud Database
   :DESCRIPTION: Database file
   #+begin_src emacs-lisp
    ;; -*- epa-file-encrypt-to: ("AAOEUOEUP12323") -*-
    (((id . "my-bank") (contents  ("password" . "hackme") ("username" . "pwned") ...)) ...)
* Legalese
  :COPYING:  t

** Texinfo meta
   #+AUTHOR: Amar Singh
   #+TITLE: Shroud.el
   #+TEXINFO_DIR_TITLE: Shroud.el
   #+TEXINFO_DIR_DESC: Shroud secrets
   #+SUBTITLE: Manage secrets, passwords etc.

** Copyright
   Copyright (C) 2019 Amar Singh

   This program is free software: you can redistribute it and/or
   modify it under the terms of the GNU General Public License as
   published by the Free Software Foundation, either version 3 of the
   License, or (at your option) any later version.

   This program is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   See the GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <>.
You can’t perform that action at this time.