Skip to main content

A CLI tool to help with keeping a work/personal journal

Project description


Journal is a Python command line tool to help with keeping a date and time
organized journal for work, personal, or any reason really!

Inspired by Peter Lyons' [article]( on career development, my own experiences, and too much free time.


* [My blog post explaining Journal](


Journal is on pypi at [](

To install, from a command line:

$ pip install journal


$ easy_install journal

depending on how much Python work you do.

Journal only requires Python, (tested on Python 2.5, 2.6, 2.7).

The `journal` command should now be available on your command line.


It's as simple as:

$ journal "Task foo completed"

and a `~/.journal/[DATE].txt` file will be created using the current date with a timestamp and your entry appended to that file. Keep entering your tasks you complete during the day and then you can quickly view your work at the end of the day. Or review what you did yesterday, just before your morning scrum meeting! Or review what you did last week, when you come back on Monday! Build a simple record of your work and gain better understanding of your work.

The API for viewing and listing previous entries is currently a WIP, but you
should be able to view specific entries for a day by using the flag `--view|-v`.

Short tags work with these dates.

$ journal --view "yesterday"
$ journal --view "12 days ago"
$ journal --view "8/14"

# Easiest way to view today (t)
$ journal -vt

# Easiest way to view yesterday (y)
$ journal -vy

You can view all entries since a specific previous date, using the flag
`--since`. This is sparse output, dates without entries will be skipped quietly.

$ journal --since "yesterday"
$ journal --since "7 days ago"

##Advanced usage

By default, journal entries are stored in `~/.journal`. By providing the `--location|-l path` command line switch entries will be read from & written to the provided directory. This functionality is useful for having journals dealing with separate domains:

$ journal -l ~/.work "Got all of the monies"
$ journal -l ~/.home "Spent all the monies"

See below for using a `.journalrc` to define these journals & storage locations.


You can create a `.journalrc` file (or one specified with the `-c` switch) to define default journal directories:

default: work

location: ~/Dropbox/journals/home

location: ~/Dropbox/journals/work

With multiple journals defined, you can use the `--journal|-j name` switch to choose which journal to write to.


##v0.4.0 - WIP
- more tests?

##v0.3.0 - 2012/05/09
- added support for multiple journals and journal locations
- added ~/.journalrc for storing default configurations of journals/locations
- changed argument handling to add all arguments to the same entry instead of
splitting them up

##v0.2.0 - 2011/08/18
- added multiple journal messages from 1 command line; multi-arg entries
- added '--since' and '--view' args to view previous entries using human-readable dates

##v0.1.0 - 2011/08/16
- working journal recording
- view entries made today

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

journal-0.4.0.tar.gz (7.8 kB view hashes)

Uploaded source

Built Distribution

journal-0.4.0.macosx-10.10-x86_64.tar.gz (11.6 kB view hashes)

Uploaded any

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page