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