# halig
![PyPI](https://img.shields.io/pypi/v/halig?logo=python)
![PyPI - License](https://img.shields.io/pypi/l/halig)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/halig)
[![pdm-managed](https://img.shields.io/badge/pdm-managed-blueviolet)](https://pdm.fming.dev)
[(R)age](https://github.com/woodruffw/pyrage) 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](https://github.com/FiloSottile/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
```shell
pipx install halig # or pip
```
## Setup TLDR
```shell
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
```shell
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
```
Raw data
{
"_id": null,
"home_page": null,
"name": "halig",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "cli, notes, age, rage, encryption, notebook",
"author": null,
"author_email": "=?utf-8?b?Y8SDdMSDbGlu?= <185504a9@duck.com>",
"download_url": "https://files.pythonhosted.org/packages/31/7c/9817aeff81f508a20175e07eb262cd99b02a611fccab9503f9026445bde7/halig-0.4.6.tar.gz",
"platform": null,
"description": "# halig\n\n![PyPI](https://img.shields.io/pypi/v/halig?logo=python)\n![PyPI - License](https://img.shields.io/pypi/l/halig)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/halig)\n[![pdm-managed](https://img.shields.io/badge/pdm-managed-blueviolet)](https://pdm.fming.dev)\n\n[(R)age](https://github.com/woodruffw/pyrage) encrypted note-taking CLI app.\n\n`halig` opens, using your favorite `$EDITOR`, an in-memory copy of a file and upon save-and-exit,\nit encrypts the new contents into an [age](https://github.com/FiloSottile/age) file that\nyou can store, _relatively_ safe, anywhere.\n\n\n## Features\n\n- Simple notebooks management with paths autocompletion\n- Passphrase-less, fully-encrypted notes, compatible with existing SSH keys \n- No external `age` binary needed\n- Almost all `age` advantages, like having multiple keys for encryption and decryption\n- Remote (HTTP) public keys import: e.g: github.com/\\<username\\>.keys\n\n## Install\n\n```shell\npipx install halig # or pip\n```\n\n## Setup TLDR\n\n```shell\nset -e\nssh-keygen -t ed25519\nmkdir -p \"${XDG_CONFIG_HOME:-$HOME/.config}/halig\"\ncat << EOF > \"${XDG_CONFIG_HOME:-$HOME/.config}/halig/halig.yml\"\n---\nnotebooks_root_path: ~/Documents/Notebooks\nidentity_paths: \n - ~/.ssh/id_ed25519\nrecipient_paths:\n - ~/.ssh/id_ed25519.pub\n - https://github.com/<username>.keys\n - https://gitlab.com/<username>.keys\nEOF\n```\n\n## Usage TLDR\n\n```shell\nhalig edit some_notebook # edit today's note relative to <notebooks_root_path>/some_notebook\nhalig edit some_notebook/foo # edit <notebooks_root_path>/some_notebook/foo.age\nhalig notebooks # list current notebooks\n```\n\n",
"bugtrack_url": null,
"license": "GPL-3.0-or-later",
"summary": "age-encrypted, file-based, note-taking CLI app",
"version": "0.4.6",
"project_urls": {
"Changelog": "https://git.roboces.dev/catalin/halig",
"Documentation": "https://git.roboces.dev/catalin/halig",
"Homepage": "https://git.roboces.dev/catalin/halig",
"Repository": "https://git.roboces.dev/catalin/halig"
},
"split_keywords": [
"cli",
" notes",
" age",
" rage",
" encryption",
" notebook"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1a41a4f18d6d35ef5faad2b12c322194250bd4ee2877e26a7058b1194e136d03",
"md5": "fae5a7d09435e49521c9982782e98d27",
"sha256": "3381a555473243dc5c2ebcf1aed5101cef2531c994151ffef17e223da116ee9a"
},
"downloads": -1,
"filename": "halig-0.4.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "fae5a7d09435e49521c9982782e98d27",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 25974,
"upload_time": "2024-05-17T17:06:02",
"upload_time_iso_8601": "2024-05-17T17:06:02.191807Z",
"url": "https://files.pythonhosted.org/packages/1a/41/a4f18d6d35ef5faad2b12c322194250bd4ee2877e26a7058b1194e136d03/halig-0.4.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "317c9817aeff81f508a20175e07eb262cd99b02a611fccab9503f9026445bde7",
"md5": "f0c8b7d72371552acb3939931f6c7b9a",
"sha256": "3b345848435ec0f5cba6539a56567bdae0caaf2a50908f0a00091ae733b83d2f"
},
"downloads": -1,
"filename": "halig-0.4.6.tar.gz",
"has_sig": false,
"md5_digest": "f0c8b7d72371552acb3939931f6c7b9a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 27155,
"upload_time": "2024-05-17T17:06:03",
"upload_time_iso_8601": "2024-05-17T17:06:03.705488Z",
"url": "https://files.pythonhosted.org/packages/31/7c/9817aeff81f508a20175e07eb262cd99b02a611fccab9503f9026445bde7/halig-0.4.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-17 17:06:03",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "halig"
}