Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm looking for something really quick and simple: type note <title>, start writing, and exit. Ideally with a simple list to jump to a specific note.

Is there such a thing?

share|improve this question

migrated from Feb 14 '10 at 22:31

This question came from our site for professional and enthusiast programmers.

you mean like vi to edit and ls to list them? – asveikau Feb 14 '10 at 22:18
You can use vi for editing and listing ;) – Felix Feb 14 '10 at 22:24
echo "Some note" > note-title.txt – Brendan Long Feb 15 '10 at 1:43
ahahha I just love unix people – Pitto Jul 19 '11 at 16:39
Simpler than vi and more elaborate than echo: cat > note.txt. – mouviciel Dec 1 '11 at 10:26

14 Answers 14


share|improve this answer

Personally I would recommend that you use GNU screen. It's a terminal/screen multiplexer (sort of like a TSR) which allows you to manage multiple terminal sessions through one connection.

For example, at work, I have a session which is running on the machine by my desk. Every day I connect to that from a terminal session on my laptop. From there I have different sessions running persistently --- an irssi session to the local/internal IRC server, sessions connected to MySQL databases, etc.

That same session runs for months at a time. I just keep detaching from and reconnecting to it. When I get to work I start with coffee; hang out using the company wireless from the coffee shop we have in the other building from me. After using that for while I go up to my desk (usually the connection is still good, otherwise I kill the ssh and reconnect). For meetings I go to the conference room and continue using the same connections. Any time I get disconnected, I just reconnect. When I use the VPN from home, I just reconnect to that same screen session. It saves the state of my work in over a dozen windows and gives me 10,000 lines of searchable backscroll for each separate terminal/window. (Much better than the backscroll features in irssi for example).

You could have one session/window in your screen session always opened to a ~/notes file for example. Perhaps that would be screen "0" (zero). So, whenever you want to take a note, you hit something like: [Ctrl]-[A], [0], type your note, then [Ctrl]-[A], [A] to go back to what you were doing. You could easily make a macro in GNU screen to set a key binding ... you could even make a shell alias or script to invoke the GNU window change for you. You could couple this with a editor macro to record the date/time stamp of each note. (In vi I use :r!date[Enter] to insert the data at the current line. So my "notes" -- a macro do to this would look like:

:map #9 o# JimD: ^[:r!date^M:-1j^M^Mo^I

... where #9 is the key to which we're binding it (vi special name for "Function key 9") and the macro is "open a line, containing "JimD: ", [Escape] and execute the :r!ate command, join this line to the previous line, insert a blank line, open a new line below that, and indent ... leaving us in insert mode.

(This isn't precisely what I do ... bit it's close).

This trick to all of this is just using the existing tools and adapt your workflow to make the best use of them. I make my screen sessions multi-user ... so I can have multiple terminal windows (xterms or MacOS X mostly) opened and all connected to this one GNU screen session. (For sanity's sake I have all my terminals set to the same dimensions ... these days that's 132x52). It's easy to have 10 or 20 sessions open under screen and to be displaying one of them in one terminal window, another in a different one. I can use the terminal's cut-n-paste or GNU screen's cut-n-paste features. (screen's are keyboard driven and generally more powerful ... so I normally only resort to the mouse when cuting to or from a browser or other window).

Often the "notes" editor session is also useful as an intermediary for cut-n-paste operations. Mark a large swath of text and paste it into notes; then edit that into a convenient form for the paste operation (or save that portion to a separate file for use in shell redirections using :.,$w pastebuf).

share|improve this answer
i think i like your answer the best, however it doesnt do everything. by using the tnotes command you can incorporate the note taking into a script. both versions have their ups and downs, but i think yours is the most bulletproof and doesnt rely on other programs. you seem to have really mastered screen and the command line and i think everyone can learn a lot by trying, exploring, and practicing. thanks for the encouragement and inspiration. – Joshua Kersey Feb 16 '10 at 4:14

Emacs has org-mode, which is tres spiffy.

OTOH, a hacky setup with some echoing cats might be the way to go.

share|improve this answer
+1 emacs,org-mode FTW – Rohan Monga Nov 26 '10 at 9:15

'todo.txt-cli' of 'gina trapani' ('lifehacker' fame) wrote some nice piece of work...

share|improve this answer

This would be a pretty easy shell script to write, just take in input to a temp file, and then cat that to your note storage file when the input is closed.

What you really want is SideKick, but they never made a unix version. (ah for the good old days of TSR's ;)

share|improve this answer

If you'd like a full blown program for task management, take a look at Taskwarrior.

See the 30 seconds tutorial.

share|improve this answer

Apparently I can't vote another comment up yet, but by Gina Trapani is a fantastic command-line tool for task management. There are a couple tools built around it for doing project management ( is one) and a nifty metrics presenter, Check them out at Todo.txt, and add-ons.

share|improve this answer

I would use Emacs

share|improve this answer
Emacs is simple? :P – Anon. Feb 14 '10 at 22:24
No less so than vi mentioned above... – Joe Internet Feb 14 '10 at 23:17
Emacs is not so simple to use. After thinking about it emacs is not the right solution for this. – Zubair Feb 15 '10 at 9:13


Bixtep is a command line application for organizing notes in a flexible and customizable way in the Bash shell. Its uses span from quick note taking to managing excerpts, sources, and any other type of textual content. All data is stored in an XML file.

share|improve this answer
Link-only answers aren't very useful. Can you give more details? Otherwise, your answer will likely be deleted. – bwDraco Sep 6 '11 at 4:53

Have a look at devtodo:

DevTodo is a small command line application for maintaining lists of tasks. It stores tasks hierarchically, with each task given one of five priority levels. Data is stored as XML, so various XSLT templates can be executed on the XML to convert it into different formats (eg. HTML).

share|improve this answer


hierarchical notebook(hnb) is a curses program to structure many kinds of data in one place, for example addresses, to-do lists, ideas, book reviews or to store snippets of brainstorming. Writing structured documents and speech outlines.

The default format is XML but hnb can also export to ASCII and HTML. External programs may be used for more advanced conversions of the XML data.

It's great. Usually, it's in the distribution's repos.

share|improve this answer
Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference. – soandos Jul 17 '12 at 2:14

Cjots, it seems however to be a frozen project.

share|improve this answer

If you are a node.js user, try

npm install -g notebox

It is very simple to use and completely command line based. Here are some examples:

nb n "my note" # create a new note
nb n # create a new note using $EDITOR
nb s # list all notes
nb s -t tag1,tag2 # list all notes with tag1 and tag2
nb n -p --title "my title" # create a note with password protection and title
share|improve this answer

I came across this question when looking for a solution myself. I'll list a few of the better looking solutions I've come across. Disclaimer: I haven't tried these yet, but they look promising.

You've heard of Evernote? Well Geeknote provides a CLI for evernote.


  • Evernote is well known and well regarded, so you have the insurance of using a tool that has good support.
  • I imagine you can switch to just using evernote whenever you want if you get tired or confused by the cli.
  • Evernote means your notes will sync across your devices.
  • Cross platform.


  • There is a free version, but it's not FOSS and I don't know how limited the free version is.

Simplenote seems to be an alternative to Evernote with similar features including syncing across devices. sncli (simple note cli) is again a cli frontend, but it doesn't appear to be actively maintained anymore.


  • Similar to Evernote's.
  • Stylistic difference if you don't like evernote.


  • Similar to Evernote's.
  • sncli hasn't been updated for two years according to the repo.

Memo is probably the most legit solution yet. A pure command line tool for unix systems, this definitely wins in terms of geek cred.


  • FOSS solution.
  • Conky integration.
  • Updated in Oct 2015, so probably not unmaintained.
  • Geek cred.


  • It doesn't look like there is build in support for syncing across devices. If your geek creds are truly up to scratch, however, that shouldn't be a problem.

Homebrew solutions

My solution up until now has been to keep a private snippet on bitbucket and update that with my notes. I've found it a little cumbersome, and I could improve it with a few scripts, but I haven't got round to it yet.

I found taskwarrior, and it looks great - I'll certainly start using it for keeping lists but I'm not up for building a "listwarrior" myself yet and I don't think it fits the bill for keeping lists.

Finally, an alternative to using pure bash/vi which is tenable, I suppose, is Vimwiki. I haven't used it, it looks quite cool, but I'm not sure it's quite what I want either. If you are a vim expert already, might be worth trying.

I hope that was useful. Honestly, I'm probably going to try the geek note solution, because I like the idea of a CLI but I need the syncing: I use three different devices, three different operating systems and dual boot them and I'm looking to increase that. Plus, it's one less thing to worry about backing up.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.