top | item 32962524

Show HN: Jot: Rapid note management for the terminal, inspired by Obsidian

146 points| araekiel | 3 years ago |github.com

42 comments

order

yakcyll|3 years ago

I found Obsidian great, so if this reaches near feature parity and allows me to stay in the terminal, it's a great upgrade already.

Recently though I switched from vim to Doom Emacs and started learning org-mode. This turned out to quite literally be a career breakthrough for me, as I realized how much easier it is with both to remain productive throughout the day and to manage my personal knowledge base, or second brain.

I'd highly recommend everyone to try DE out [0]. I always thought Emacs to be unnecessarily complex, but majority of it is hidden away in special features. DE, especially for vimmers, delivers a lot of very useful IDE-like functionality out of the box, simplifies the hotkeys, provides stellar configurability and, in my experience, just lets fingers flow more smoothly across the keyboard.

Org-mode by itself may seem daunting as well, but it turns out to be designed in a similar fashion - take and use what you need, no hidden complexity or other strings attached. I can recommend Distrotube's tutorials on either [1].

[0]: https://github.com/doomemacs/doomemacs

[1]: https://www.youtube.com/watch?v=Ea_-TaEGa7Y

Jeff_Brown|3 years ago

Org mode has a lot of rabbit holes, but to use org roam (which builds on org mode and Lets you manage a knowledge graph) effectively is surprisingly easy. You need to know how to link to something, how to view backlinks, how to format the tree of text using asterisks to indicate depth in the tree, how to define aliases in a note's Properties drawer, and that's pretty much it.

araekiel|3 years ago

Cool! Will check it out.

aedocw|3 years ago

I've got a few zsh functions that let me type "note" which creates a file named todays date (if it doesn't exist), inserts a timestamp, and opens it in vim. When I exit vim, the notes directory is committed to git then pushed up. This lets me keep my notes directory in sync across machines, and available via web (gitea).

  note () {
   DATE=`date +"%Y%m%d"` 
   TS=`date +"%Y%m%d %H:%M:%S"` 
   FILE=$HOME/Documents/notes/$DATE.txt 
   notegitpull
   echo $TS >> $FILE
   vi $FILE
   notegitpush
  }
  
  notegitpull () {
   pushd $HOME/Documents/notes
   if ping -c 1 git.server &> /dev/null
   then
    git pull
   else
    echo "Offline, not pulling changes"
   fi
   popd
  }
  
  notegitpush () {
   pushd $HOME/Documents/notes
   git pull
   git add \*
   git commit -m "Autocommit due to edit of $FILE"
   if ping -c 1 git.server &> /dev/null
   then
    git push origin main
   else
    echo "Offline, not pushing changes up"
   fi
   popd
  }

ehnto|3 years ago

I have something similar, I made it check for a .notes folder in the current working directory so that I can have per-project notes just by adding that folder in first. I want to add custom filenames as I'm finding that easier to mentally keep track of, like "integration-bug-factfinding.note" is a little easer to find again than "12-22-2022.note". Currently I have these commands:

note //Adds a note to the current days notefile, in the current directory's .notes folder if present or ~/.notes if not

edit-note //Opens the same notefile as above in a text editor

notes //Concats todays notefiles echos displays them

all-notes //Concats all notes ever and echos them, useful to grep for keywords across my history of notes

oktwtf|3 years ago

> It uses the same format of storage as Obsidian...

Can Obsidian and Jot co-mingle in the same vault?

I use Obsidian and am very happy with the git plugin[0] and Working Copy(iOS)[1] for keeping things automatically synced between my phone and desktop(s). Often I find myself dumping notes into random places from the terminal; feeding markdown via pipes. But I then have to remember to collect these artifacts and ensure I fire Obsidian back up for a push. I'd love something that could work "together" with my present setup.

Looks like things are set out quite clearly[2], and Rust looks quite approachable. Very cool stuff!

[0]: https://github.com/denolehov/obsidian-git

[1]: https://workingcopyapp.com

[2]: https://github.com/araekiel/jot/tree/main/src

araekiel|3 years ago

Now that I think about it, they can, just not right now. What Jot needs is a 'use existing folder as vault' feature like in Obsidian, or an 'import vaults from Obsidian' feature. As an Obsidian user myself, this would be neat. Thanks for the idea! I'll add this to the feature updates list :)

samsquire|3 years ago

My notes system is established but this tool looks interesting. I essentially create a Github repository and journal computer and software ideas in the open in a README.md with a markdown heading for each note and number the notes.

You can find my journal of 450+ computer software ideas in my profile.

If you're on the fence over what tool to journal with, then I recommend my approach, it just works and it has low barrier to entry, you just need github account, you could even use the web interface to update your journal and edit the README.md.

Whatever tool you use it needs to have low friction so it encourages you to write and you don't forget how to create a post once you set it up.

The important thing about journalling is that it encourages you to write and keep writing which is where the reward comes from.

araekiel|3 years ago

Sounds great :) Eventually, Jot will have git integration for cross device sync, maybe then, it could serve as a nice addition to your workflow.

bongobingo1|3 years ago

Maybe I'm dumb, but I don't see what this is doing besides aliasing `cd`, `mkdir`, `ls` and `nvim note.md`?

araekiel|3 years ago

Jot's purpose is to ease note management, using vaults stored in different parts of your storage, that can be accessed from anywhere, essentially eliminating the need to manually cd to different locations. This is still in its initial phase, hence the rudimentary features (I prioritized everything I considered basic necessities). I am working on adding more fancy features though, for example, a fuzzy finder.

Version467|3 years ago

I like that this is editor agnostic, but I also think that obsidians killer feature is the effortless linking between notes. That seems to me like it would be much easier to do with an editor plugin.

Do you have any plans to add something like that?

hermiod|3 years ago

I just wrote a super simple nvim plugin in fennel that allows you to go straight to your daily note using your existing obsidian config. https://git.sr.ht/~hermiod/obsidianlite.nvim

What I really want to do is build a language server for "backlinking markdown". In that case any editor could consume it to get references, go to definition, etc. Does that sound like the right experience?

araekiel|3 years ago

Yes :) I do have plans for something similar, but its a bit low on my priority list since I'm keeping this project focused on note management right now.

emerongi|3 years ago

Personally, I'd like to take notes with vim (or helix), however somehow it's still an unsolved problem to sync files with end-to-end encryption between devices, without also having to use some specialized application.

Obsidian is so far the most seamless way to write and sync notes between Linux and iOS. I'd pay money for a daemon that could do E2EE encryption of any files on my machine and also worked on iOS.

tcrenshaw|3 years ago

Have you looked at syncthing? I believe it ticks off all your boxes. I'm using it to sync my obsidian vault and Todo list between multiple android, Windows, and Linux devices and it Just Works. I do have an always on server running it as well to both maintain a backup and to catch any notes devices powered down might miss, but it's not a requirement.

Mylloon|3 years ago

Personally, I use Syncthing to sync all my notes between computers and my phone, it works great!

araekiel|3 years ago

I do plan on adding vault encryption and cross device sync (literally making a list of updates atm). Like tacostakohashi mentioned, I too have been thinking of using git for cross device sync.

tacostakohashi|3 years ago

> it's still an unsolved problem to sync files with end-to-end encryption between devices, without also having to use some specialized application.

How about using git, over https or ssh? Or are those 'specialized'?

pydry|3 years ago

I do this with termux + keybase git.

Thorentis|3 years ago

Feedback on commands:

> jt note newnote

> jt folder newfolder

I have to type "note" or "folder" twice, just to create a new one. I prefer the convention that most other tools follow whereby "new" is the base command, and then the thing you want to create is the noun. Eg

> jt new note

If you really want the noun to be first and the verb second, at least simplify it to:

> jt note new

Though I much prefer the verb first since it reads more like an action sentence.

araekiel|3 years ago

I did try this before, just instead of 'new' I used 'make'. I'll consider this again! Thanks! :)

octokatt|3 years ago

I appreciate this effort, and I want to try it out... but in the README, I did not see how to literally make a note from the terminal.

Is this intended to make something like Nano easier to integrate with an extra tool set provided by Jot, or is there a feature I missed? I'm not sure what problem this is trying to solve.

araekiel|3 years ago

Hey, try the note command to make notes. Example -> https://github.com/araekiel/jot#create-notes-and-folders

And yes, this tool is meant for integration with text editors. Jot is simply for creating and managing notes (markdown files). You can use the text editor that you fancy, like nano or vim, or something like vscode, if you need a GUI.

nmz|3 years ago

Is this is about the default freebsd command?