All Projects → nickjj → Notes

nickjj / Notes

Licence: mit
A zero dependency shell script that makes it really simple to manage your text notes.

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Notes

Lifelong Learning
✅ ✅ ✅ A massive repo filled with notes on everything from coding to philosophy to psychology to marketing to product
Stars: ✭ 297 (+379.03%)
Mutual labels:  note-taking, notes
Notemarks
A git based labeling app to manage notes, documents, and bookmarks.
Stars: ✭ 61 (-1.61%)
Mutual labels:  note-taking, notes
Nb
CLI and local web plain text note‑taking, bookmarking, and archiving with linking, tagging, filtering, search, Git versioning & syncing, Pandoc conversion, + more, in a single portable script.
Stars: ✭ 3,846 (+6103.23%)
Mutual labels:  note-taking, notes
notes-app-cli
A command line interface for Notes.app on macOS.
Stars: ✭ 32 (-48.39%)
Mutual labels:  notes, note-taking
Notecalc3
NoteCalc is a handy calculator trying to bring the advantages of Soulver to the web.
Stars: ✭ 879 (+1317.74%)
Mutual labels:  note-taking, notes
Issue Tracker Zh
中文GitHub反馈区
Stars: ✭ 267 (+330.65%)
Mutual labels:  note-taking, notes
Takenote
TakeNote is a note-taking app for the web. You can use the demo app at takenote.dev. It is a static site without a database and does not sync your notes to the cloud. The notes are persisted temporarily in local storage, but you can download all notes in markdown format as a zip.
Stars: ✭ 5,180 (+8254.84%)
Mutual labels:  note-taking, notes
note-keeper
📓 A tiny bash tool for taking and organizing notes.
Stars: ✭ 58 (-6.45%)
Mutual labels:  notes, note-taking
Instanote
Note keeping done in PHP 5.2 and JSON
Stars: ✭ 11 (-82.26%)
Mutual labels:  note-taking, notes
Vscodenotebook
📝 Use VS Code as a reliable note-taking/journal application
Stars: ✭ 584 (+841.94%)
Mutual labels:  note-taking, notes
uwunote
Kinda like Windows 10 Sticky notes but subjectively better - Written in go and GTK3+
Stars: ✭ 16 (-74.19%)
Mutual labels:  notes, note-taking
Geekbook
G33KB00K3 - fun to read & fun to write -- 🤓 eXtreme eXtendable note taking system for nerds/geeks (including scientists!) docs: http://geekbook.rtfd.io = beautiful html generator of your markdown-based notes
Stars: ✭ 31 (-50%)
Mutual labels:  note-taking, notes
flawesome
Productivity Tool
Stars: ✭ 56 (-9.68%)
Mutual labels:  notes, note-taking
Deer
✏️A modern, fast, beautiful note taking app, built on Electron and React
Stars: ✭ 267 (+330.65%)
Mutual labels:  note-taking, notes
jot
Command-line note-taking for minimalists
Stars: ✭ 24 (-61.29%)
Mutual labels:  notes, note-taking
Stup
Daily notes in the terminal 🐧
Stars: ✭ 340 (+448.39%)
Mutual labels:  note-taking, notes
dendron-site
Getting started with Dendron
Stars: ✭ 99 (+59.68%)
Mutual labels:  notes, note-taking
octo
Build your knowledge base
Stars: ✭ 252 (+306.45%)
Mutual labels:  notes, note-taking
Jrnl
Collect your thoughts and notes without leaving the command line.
Stars: ✭ 5,126 (+8167.74%)
Mutual labels:  note-taking, notes
Notes
📝 Simple delightful note taking, with more unix and less lock-in.
Stars: ✭ 939 (+1414.52%)
Mutual labels:  note-taking, notes

Notes Build Status

A zero dependency shell script that makes it really simple to manage your text notes.

Instead of trying to impose a whole bunch of rules and syntax requirements, this tool does its best to get out of your way.

It tries to do everything possible so that if you're working in a terminal, you can save whatever text you want into a file. This could come from typing a sentence out, pasting something from your clipboard or saving the output of a program.

Demo Video

Demo video

Updates to the notes script since this video

  • v0.2.0 scopes the notes files per month instead of per day. This differs from what's in the video at the 4:00 mark.
  • v0.1.0 matches exactly what's in this video.

Design Goals and Philosophy

I've been keeping track of my notes in plain text files since 2001. I always felt like when it comes to jotting down notes it was always best to do everything possible to keep friction low.

That means not worrying about specific file types, formatting, tagging, check boxes, syntax rules and a bunch of other things that delay you from getting something out of your head and into a document.

Text is amazing for notes because:

  • You can use grep and friends to search through it later
  • Even with notes dating back from 2001, I'm only using 1.5mb of disk space
  • It's really easy to back up and sync to other devices using Drop Box or similar tools

Since it's unstructured text you can use this tool for whatever type of note taking you want. You can keep track of general thoughts, create a diary or make plan files similar to what John Carmack did for a number of years.

I personally use it as a scattered brain dump. Even with things being very unstructured (and even untagged) I can usually grep out anything I want within a few seconds.

Your notes are organized by auto-dated files

Let's say it's December 25th, 2019. If you were to run notes hello world it would create a 2019-12.txt file in your NOTES_DIRECTORY (this is something you can configure). It would then append hello world to the end of the file.

If you run notes something else on the next day it will still append to the same file and continue appending to that file until the next months hits. For example, on January 1st 2020 any notes commands will append to a 2020-01.txt file.

There's other things you can do such as piping input to it, or running the script without any arguments to open the file in your configured EDITOR but let's first go over installing it before we get to that.

What is this script not good for?

Depending on how you work, it's probably not ideal for grouping up a bunch of extended thoughts about a specific topic.

For example, if you were planning to write a book and you spent 3 months gathering info about what you're writing about then you would end up with a bunch of isolated date formatted files that was mixed in with everything else.

In those cases, I recommend you make a new script called book which basically does what this script does except it always dumps everything to 1 specific file of your choosing which isn't dated. That's what I do to help plan my video courses.

Installation

Copy / paste the line below, or if you don't like this pattern of installing scripts then feel free to run things manually.

1 liner to get notes downloaded to /usr/local/bin:

sudo curl \
  -L https://raw.githubusercontent.com/nickjj/notes/master/notes \
  -o /usr/local/bin/notes && sudo chmod +x /usr/local/bin/notes

There's no fancy git clone instructions because you may end up modifying at least 1 line of the script. Plus since the script is so simple, this repo is likely not going to change and if it does you will be able to diff it without any issues.

Configuration

By default it will use ${HOME}/notes as your notes directory and if that directory doesn't exist beforehand, this script will allow you to create it with a y/n prompt when you first run the program.

You can also customize your notes path in 1 of 2 ways:

  1. Put export NOTES_DIRECTORY="/tmp/foo" in your ~/.profile or equivalent file (/tmp/foo would be your notes path)
  2. Directly edit the notes script and replace ${HOME}/notes with /tmp/foo in the NOTES_DIRECTORY variable

Also, if you want this script to open your notes in your code editor you'll want to make sure you have your EDITOR defined in your ~/.profile too. This is a Unix standard. For example, mine looks like export EDITOR="vim".

If you change your ~/.profile, don't forget to log out / login.

Usage Examples

There's 3 ways of using this script:

  • notes something you want to jot down

    • Appends whatever arguments you add as text into the dated file
  • xclip -o | notes

    • Pipes and appends anything (in this case your clipboard's contents) into the dated file
  • notes

    • Opens the dated file in your configured EDITOR

That's really all there is to it. With the above 3 ways of adding notes you'll find yourself adding all sorts of different types of notes with very little friction. I encourage you to check out just how short the source code is.

If you wanted to go all out, you could even create custom key binds in your code editor that would take the selected text and append it to your notes by running one of the above commands. Since everything is text you have a lot of flexibility!

Also, you have the power of the command line at your finger tips to manipulate these files however you see fit. For example you can run cat 2019-*.txt > 2019.txt to create a yearly file.

About the Author

I'm a self taught developer and have been freelancing for the last ~20 years. You can read about everything I've learned along the way on my site at https://nickjanetakis.com. There's hundreds of blog posts and a couple of video courses on web development and deployment topics. I also have a podcast where I talk to folks about running web apps in production.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].