aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 47cbf27d59611470718de7c652e45e28a62bb252 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# recit

personal productivity system backed by [recfiles](https://en.wikipedia.org/wiki/Recfiles)

# dependencies

* [recutils](https://www.gnu.org/software/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](https://git.capotej.com/capotej/recit/releases) (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](https://git.capotej.com/capotej/recit/src/branch/main/share/recit/recit.example.rec)