This project lets you tag anything from the commandline. The tag executable provides a consistent way to add, remove and modify tags for tagged items. The goal is to make tagging dead simple and usable by other commandline apps. In making tags a first class nix citizen, perhaps they will see the light of day.


Let's start with tagging animals:

$ tag add horse -t fast,strong
$ tag add cat -t fast,independent
$ tag add dog -t loving
$ tag list fast

Tired of animals, let's tag cities. To avoid interfering with the animals list, we'll use a cities model:

$ tag add nyc -t fast fun -m cities
$ tag add boston -t educated,clean -m cities
$ tag add paris -t awesome,delicious
$ tag list fast -m cities
# to avoid typing '-m cities' for every command
$ export TAG_MODEL=cities

Since models are isolated from one another, third party commandline apps can use tag for their own private tagging purposes.


As I wanted to tag my vim knowledge on the commandline, I found its tagging features to greatly exceed that project's scope.


See here


  • Several more tag actions
  • Description and time fields
  • Make storage agnostic
  • Explain how to integrate with other commandline apps