aboutsummaryrefslogtreecommitdiff

recit

personal productivity system backed by recfiles

dependencies

  • recutils (brew install recutils)
  • uuidgen (included with most systems)
  • any perl (included with most systems)

Use Cases

You can use recit to track things like:

  • What needs to be done today?
  • What did you do yesterday?
  • What did you talk about in that 1:1 a few weeks ago?
  • Where did you leave off on that project you started last year?
  • What did you do last year?
  • What did I last do in this current directory?

Usage

Usage: recit <command> [<args>]

Some useful recit commands are:
add-entry    Add entries, optionally for a project and/or a certain time
add-project  Add Project
commands     List all recit commands
edit         Open DB in $EDITOR
edit-entry   Edit an entry given its UUID
entries      Display entries, optionally for a project and/or a certain time
projects     List all Projects
setup        sets up a new recit database at $HOME/.recit.rec
today        Show all entries for today
tomorrow     Show all entries for tomorrow
here         Show all entries written inside this directory

See 'recit help <command>' for information on a specific command.

Installation

Download the latest release (or clone this repository) and follow the instructions displayed when running bin/recit init from the root directory.

Getting started

Once installed, run recit setup to create your database at $HOME/.recit.rec.

Entries

Entries are the core of recit, they represent a timestampped entry with a message. Optionally, an entry can be associated to a particular Project.

Adding entries

There are several ways to add entries. The simplest takes no arguments, like so:

recit add-entry

This creates an entry for the current time, populated by contents from your configured $EDITOR.

You can add an entry for a future (or past) time by using the -t flag, like so:

recit add-entry -t tomorrow

This creates an entry for tomorrow, populated by contents from your configured $EDITOR. You can also pass an absolute date like 2022-07-22 or 2022-04-01 4:00PM.

If you just want to pass a quick message on the command line, you can use the -m argument:

recit add-entry -t tomorrow -m "pick up dry cleaning"

Viewing entries

You can view all entries by running:

recit entries

Or, just entries for yesterday, today or tomorrow:

recit tomorrow

recit today

recit yesterday

Or, entries for a particular day:

recit entries -t 2022-07-02

You can also view entries written when you were in a particular directory

cd /path/to/my-directory
recit here

Editing entries

You'll notice that recit add-entry returns a UUID. You can edit the entry for that UUID like so:

recit edit-entry 9C66BB1A-545C-4FA6-B83E-5730CE53E44D

Projects

Projects can be tracked with recit and you can view or create entries associated with them.

Creating a project

You create a project like so (spaces not allowed):

recit add-project -n "my-project"

Viewing projects

You can view all projects like so:

recit projects

Adding entries for a Project

You can pass -p to recit add-entry to associate that entry with a project, like so:

recit add-entry -p my-project -m "wrote tech spec"

If you try to pass a project to -p that doesn't exist, you will get an error.

View entries for a Project

You can also pass -p to recit entries to view all entries for that project. Similarly, this will throw an error if project does not exist.

recit entries -p "my-project"

View entries for a directory

You can also pass -c to recit entries to view all entries for a directory (must be absolute for now).

recit entries -c "$HOME/my-scratch-dir"

Schema

You can view the latest schema at share/recit/recit.example.rec