(R)age encrypted note-taking CLI app
  • Python 99.1%
  • Makefile 0.9%
Find a file
2024-06-19 18:55:16 +02:00
halig chore: update deps 2024-06-19 18:55:16 +02:00
tests feat: make the inclusion of each notebook's note optional via --include-notes when listing notebooks 2024-05-17 18:45:22 +02:00
.gitignore feat: prettify errors 2023-04-06 17:30:21 +02:00
.pre-commit-config.yaml chore: update linters and replace black with ruff-format 2024-05-17 18:47:56 +02:00
LICENSE Initial commit 2022-08-10 16:12:59 +00:00
Makefile feat: prettify errors 2023-04-06 17:30:21 +02:00
noxfile.py tests: remove pyfakefs due to issues with pathlib and sqlite in favor of a simple tempfolder where to store test files 2023-11-29 18:42:30 +01:00
pdm.lock chore: update deps 2024-06-19 18:55:16 +02:00
pyproject.toml chore: update deps 2024-06-19 18:55:16 +02:00
README.md chore: typo 2023-05-17 17:02:47 +00:00
sample.env feat: move project from poetry to pdm, rewrite from scratch and add 2023-04-01 12:37:10 +02:00

halig

PyPI PyPI - License PyPI - Python Version pdm-managed

(R)age encrypted note-taking CLI app.

halig opens, using your favorite $EDITOR, an in-memory copy of a file and upon save-and-exit, it encrypts the new contents into an age file that you can store, relatively safe, anywhere.

Features

  • Simple notebooks management with paths autocompletion
  • Passphrase-less, fully-encrypted notes, compatible with existing SSH keys
  • No external age binary needed
  • Almost all age advantages, like having multiple keys for encryption and decryption
  • Remote (HTTP) public keys import: e.g: github.com/<username>.keys

Install

pipx install halig # or pip

Setup TLDR

set -e
ssh-keygen -t ed25519
mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/halig"
cat << EOF > "${XDG_CONFIG_HOME:-$HOME/.config}/halig/halig.yml"
---
notebooks_root_path: ~/Documents/Notebooks
identity_paths: 
  - ~/.ssh/id_ed25519
recipient_paths:
  - ~/.ssh/id_ed25519.pub
  - https://github.com/<username>.keys
  - https://gitlab.com/<username>.keys
EOF

Usage TLDR

halig edit some_notebook     # edit today's note relative to <notebooks_root_path>/some_notebook
halig edit some_notebook/foo # edit  <notebooks_root_path>/some_notebook/foo.age
halig notebooks              # list current notebooks