The goal of hsh
is to be an all-in-one life management tool. Specifically, the eventual goal is that hsh
will have,
at a bare minimum:
Additionally, while my initial focus is on the CLI, and I care very much about ensuring that hsh
always has an
outstanding command line, I explicitly want to make sure that hsh
also has a good web front-end.
hsh
unapologetically owes a great debt to nb
, and started off fully compatible with it. In fact, if you point
hsh
and nb
to the same notebook, they will currently largely be able to operate the same way. And like nb
, hsh
believes completely in the primacy of plain text. My intention is that all of the above features use plain text files as
their sources of truth.
That said, hsh
is heading in a different direction:
nb
and hsh
will use the
same sort IDs if pointed at the same notebook, hsh
explicitly will not keep those IDs stable. I fully get and
like Zettelkasten's note IDs, but for hsh
, those are the timestamp of the note's creation. As a reuslt, while hsh
currently honors files with arbitrary names, it only creates them with dates, and I consider supporting title-based
notes (e.g. what you get with nb move --title
) to be an antifeature that hsh
will not support. (In fact, in a kind
of reverse of that, hsh
will soon have a command to restore filenames to their original creation date.)nb
relies on a rich collection of command-line tools to work, my goal with hsh
is for it to be fully
self-contained. (That said, it currently relies on ripgrep
, and it'll probably be a bit before we break that one.)hsh
, like nb
, currently relies on Git for a lot of its history and metadata, and while I plan for hsh
to
continue optionally supporting that flow, my intention is for hsh
to track much of that metadata internally and
directly.Note taking and a loose concept of todos are now present. In particular, the following functionality exists:
ripgrep
)