Skip to content
This repository has been archived by the owner on May 30, 2019. It is now read-only.


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Biographer (v0.6.2)

A command-line utility to remember everyday memories. This was a project of mine. I played with it during my free time (or whenever I got a new idea)...

How it works?

It puts your stories (with a MD5-hashed filename) into a directory for later viewing. Once stored, it never disturbs the original story (unless you play around). While updating the stories, it just appends your story to the previous story.

It supports some basic encryption. I've used a simple algorithm to hex and shift the ASCII values in the files, which can be "phrased" as a hexed 256-char Vigenère cipher using byte-wise XOR along with CBC[1] (which can detect incorrect passwords).

A local file has a SHA-256 hash of the original password, so that instead of typing the password every time you interact with the application, you can simply sign in and do your stuff. Basically, it asks you for your password at least once in every session (of course!).

The cool part is that you can search through your stories for a specific word (between a range of dates) either using Python (which takes some time, depending on the number of stories you have) or the provided Rust library (which amplifies the performance by a factor of ~100). Note that it's just a basic (case-sensitive) search.

Regarding cross-platforms, I've tested it on Windows 8 and Ubuntu, but I'm not sure about other OS (I guess it works for them just as well). Oh, and it also runs on Android (if you've got QPython) installed.

[1]: It's not much secure!, but that's not my goal either! We need confidentiality, not integrity. So, this is just to prevent people from peeking into the stories using text editors. Protecting the stories however, is (always) on your side. Well, if someone's really involved, then he'll be able to crack it in a few days.


  • Clone the repo (or download the zip). Note that you'll need Python first!
  • It'd be best if you have python in your path environment variable. You can just execute python /path/to/biographer.
  • If you're really interested in using the Rust library for searching (which is gonna be useful only if you have some appreciable amount of stories already), then download the nightly version of Rust, cd into the folder and run cargo build --release and make sure that you're compiling from and for the right architecture (i.e., 32-bit Rust for 32-bit Python)
  • It supports all the options in command-line, if you wanna do everything in the fly! Try running python /path/to/biographer --help

Note on usage

The script runs best on Linux terminal (by which I mean the display, speed, and specifically KeyboardInterrupt, which is necessary for navigation throughout the program). Running on IDEs isn't recommended as they may echo your password (even IDLE does that), and so do it at your own risk!

As for Windows users, since your command prompt sucks, things are quite weird for you. For example, when you're about to write in the command prompt, the usual KeyboardInterrupt with Ctrl+C almost always terminates the program (as they're being asynchronous). So, I had to make use of EOFError to work around it, which means you have to use Ctrl+Z and Enter instead of Ctrl+C once you've finished writing.


An (awful) utility to remember everyday memories... [DEPRECATED]








No releases published


No packages published