6 ms·
Show HN: CLI plain-text notes & bookmarks with Git, sync, encryption, and more
- auto 6y agoThis looks awesome, and touches on a bunch of things that have been on my to-do list of "find a thing that can do X", even if that thing didn't let me stay in the command line, which this obviously does. Curious to see what people come here to say does all of this better, because if it exists in a nice package like this, I haven't seen it yet.
- nyolfen 6y agomad props, this is extremely cool. i only wish i had it ten years ago so i wouldn't have my crap spread across one more system.
- dengsauve 6y agoThis looks fantastic, just from a quick download and playing around for 5 minutes I know this is going to come in handy. I don't always have a note taker open, but I almost always have a terminal open.
- engineerX 6y agoWow, looks great. Using git to sync is super convenient -- there's so much infrastructure available to support git so it's basically no effort to start syncing with github etc. I use dstask to manage my todo list which also uses git, it's excellent.
- jhoechtl 6y agoThank you for dstask. I also have to take a deeper look into this submission. Are you aware of a currated list of git-synched solutions to note taking and todo management? I used to use emacs org which was very good in the beginning yet somehow started to overgrow to the point where I found myself more in organizing than get stuff done.
- pbronez 6y agoThat would definitely be helpful. This tool looks cool, but I need windows support.
- filmgirlcw 6y agoThis looks fantastic! I’ve only spent a few minutes with this, but the design is really, really smart and the featureset is top-notch! Congratulations!
- erling 6y agoThis looks amazing! Love how simple yet powerful it is. Great job!
- maxioatic 6y agoThis looks super cool and polished. That it's a 11401 line shell script is blowing my mind.
- pantulis 6y agoThe completeness of the tool combined with the madness of shell scripting. The author is a demigod, no doubt.
- maxioatic 6y agoA shelligod, for sure
- bachmeier 6y agoEveryone should use the language of their choice. That said, looking over the code, I understand why Perl became popular as a shell replacement.
- heresie-dabord 6y ago> Everyone should use the language of their choice. We live in a fruitful age for programming. There are many viable languages. Some have notation that is more difficult, perhaps, but humans are good at notation and there is no such thing as "easy" programming. That said, any language that offers portability and stability that can be measured in _decades_ has a distinct advantage.
- dmd 6y agoI hate to be critical of what's a rather impressive piece of work, but a lot of the reason for that length is just a lot of repetition, e.g. https://github.com/xwmx/nb/blob/master/nb#L10423 https://github.com/xwmx/nb/blob/master/nb#L10423
- xwmx 6y agoThat particular function, `nb show`, is a big `if` statement checking the file type and environment for available tools. I'm more than happy for suggestions and / or pull requests for optimizing that. Note that Bash is a weird language that doesn't provide language features found in normal languages, and this targets old Bash which doesn't even have associative arrays, so there are things that might look "wrong", but aren't necessarily in this context. That's a big part of what makes it interesting to code in.
- zorbash 6y agoIt looks incredible, rich in features and the git syncing capability is neat. My only wish would be to be able to import my bookmarks somehow. A few months back wrote my one CLI bookmark manager in Elixir (https://github.com/tefter/cli https://github.com/tefter/cli). It's impressive how much nb achieves yet being written in Bash.
- z29LiTp5qUC30n 6y agohttps://github.com/oriansj/orgmode-bookmarks https://github.com/oriansj/orgmode-bookmarks enjoy
- xwmx 6y agoThanks! That looks really interesting and very nicely designed (both your CLI and the web app). It should be pretty easy to create a bookmark import plugin for `nb`, so that's likely to happen.
- ontouchstart 6y agoI am surprised to see there are 3,365 commits of this project with a 5-year gap: https://github.com/xwmx/nb/graphs/contributors https://github.com/xwmx/nb/graphs/contributors Perhaps there are some interesting stories that the author would like to tell?
- xwmx 6y agoYeah, it's a little unusual. No big story. I just did an early version and then didn't update it for a long time, then got hooked on working on it again over the past few months. I don't know what to say about the number of commits. My working style on this project has involved a lot of smaller commits and little feature iterations, maybe because of the single big script and single big README, or maybe something about the feedback loop of this style of development.
- holmb 6y agoThere have been a few of these note taking systems that have passed through HN lately. I use org-mode for some notes and sometimes open-junk-file (that I discovered in in Spacemacs). What I miss is a tool that will help me keep some notes encrypted at rest but will allow me to search filenames _and_ content. nb seems to support searching, and encryption, but not the two in combination.
- phaer 6y agoEmacs can use GPG to encrypt files at rest pretty transparently. Just save a files with the extension `.org.gpg` and it should get encrypted automatically with Spacemacs (I personally use https://github.com/hlissner/doom-emacs/ https://github.com/hlissner/doom-emacs/). Note that adding an encrypted file to your agenda, .e.g. `(setq org-agenda-files '("~/org/secret-diary.org.gpg"))` will let Emacs decrypt that file upon calling "org-agenda". Something similar should be possible for search if it doesn't work out of the box
- holmb 6y agoI use this to encrypt files as well and I think Emacs handles this very well for individual files. It is however the notes management tool that doesn't support transparently search through multiple files. I imagine what is needed is using gpg-agent to handle passwordless decryption of the files at rest.
- phaer 6y agoAh yes, I am using gpg-agent with my Yubikey - decryption would be tiresome without. Well, org-agenda at least seems to support it through Emacs lower-level functions. Search is a bit more complicated, but should be well possible through hooks?
- yjftsjthsd-h 6y agoIf you only care about encryption at rest, maybe just do filesystem encryption? Whether that's encfs or luks or ZFS encryption or whatever. (Caveat: some of these have very specific security properties that you may find inadequate (encfs is poor against an attacker who can see multiple versions of a file over time, IIRC), or efficiency issues with syncing (you're not gonna git commit a ZFS dataset))
- benrbray 6y agoSee also Logseq [1] (a roam alternative) and Cerveau/Neuron [2] (a zettelkasten implemented in Haskell) for alternative git-based note management. See also [3] for a Lobsters discussion from a few days ago. [1] https://logseq.com/ https://logseq.com/ [2] https://www.cerveau.app/ https://www.cerveau.app/ [3]https://lobste.rs/s/e5lx5p/what_note_taking_team_wiki_personal_wiki https://lobste.rs/s/e5lx5p/what_note_taking_team_wiki_person...
- vinebase-albert 6y agoI love all of this! Just need a similar web-based GUI so my coworkers can use the same back-end technology without having to use the CLI.
- hghghhhjuu 6y agoIf it’s all just plain text, you could just put it on GitHub / gitlab and edit the files from the built in “raw” editors.
- xwmx 6y agoIndeed, it is, and you can do exactly that.
- etherio 6y agoYou can check out https://github.com/Uzay-G/archivy/ https://github.com/Uzay-G/archivy/. It's quite similar except uses a web interface. We're building it out and are working on adding a login system so people can host instances publicly with multiple users.
- w0m 6y agoWow. Is This is the child of Gina Trapani's old notes.sh? I feel like I've watched this grow incredibly over the last 15 years...
- pantulis 6y agoDid Gina had some "notes.sh" script? I can only remember her "todo.txt" for todos. This can perfectly replace it, yes, and it is very similar in spirit.
- mrpf1ster 6y agoThis tool is going into my workflow right away. I take notes in markdown (with latex) for all my classes but they're disorganized and searching through them for a specific topic is annoying. This solves so many problems haha. I noticed there's a way to tag bookmarks, is there a similar functionality for tagging notes?
- xwmx 6y agoCool, your use case is exactly one I hope it works for. I find that the notebooks are a really good way to organize by topic or project, and should work really well for classes, too. You can even archive a project or class notebook when it ends and still easily access, revive, or drop into the content. Tagging in `nb` is really simple and is just a matter of putting hashtags in your documents and then searching for those hashtags using `nb search` / `nb q`. `nb <url>` makes tagging a little more convenient when bookmarking by providing a `-t <tag1>,<tag2>...` / `--tags <tag1>,<tag2>...` option and saving them in a dedicated `## Tags` section in `.bookmark.md` documents.
- philips 6y agoI use pass[1] with this alias for daily notes. The nice thing about that is there are lots of native clients alias journal='pass edit journal/$(date +%Y-%m-%d)' [1]: https://www.passwordstore.org/ https://www.passwordstore.org/
- xwmx 6y agoVery cool. `pass` is awesome and I didn't realize it had the `pass edit` feature. I have written scripts that use the 1Password and Keychain command line tools, and I definitely want `nb` to use all three of these, maybe via a plugin.
- sixhobbits 6y agoLooks similar to jrnl.sh which I have been using for years. Combine with iTerm2 with it's configurable "drop down" terminal with a global shortcut and I can save anything from one word notes to full meeting minutes using the same flow.
- vhanda 6y agoShameless Plug: If you're looking for a mobile client for your markdown notes - https://GitJournal.io https://GitJournal.io It's completely open source and integrates with Git. Please feel free to hop on to GitHub and vote on the existing features.
- rbosinger 6y agoI bought the pro version and really appreciate this app.
- haroldegibbons 6y agoI prefer using Vim (or Emacs), git and grep for things like this. They're everywhere and have stood the test of time. Are there any particular advantages I'm missing here? Either way thanks for sharing; it's helpful to see how other people do notes.
- xwmx 6y agoFWIW, the core idea in `nb` is that it grew out of exactly that toolset and philosophy and develops it into a single, streamlined interface with a bunch of conveniences and features. It embraces that model and is intended to support it.
- iveqy 6y agoCool project, the first question that comes to my mind is, how did you succeed to have icons in a terminal application?
- jlgaddis 6y agoUnicode [0]. You'll need a terminal that supports Unicode (but most do nowadays, AFAIK) and a font that can display Unicode characters. Oh, and make sure you're using a locale that supports UTF-8, of course. --- [0]: https://en.wikipedia.org/wiki/Unicode https://en.wikipedia.org/wiki/Unicode
- iveqy 6y agothanks
- darekkay 6y agoThat's some impressive documentation - did you write (and update) it all by hand, or is it semi-automatically updated from the CLI help page? Shameless plug for people who are just interested in the bookmarks part: I've created Static Marks [1], an open-source tool which turns plain-text YAML bookmark collections into a shareable HTML web app. [1] https://github.com/darekkay/static-marks https://github.com/darekkay/static-marks
- nathias 6y agoI was searching for something like this and thinking of creating it myself, glad I don't have to now. Can it import evernote notes/notebooks?
- firstSpeaker 6y agoHow does this compare with https://github.com/gnebbia/kb https://github.com/gnebbia/kb?