jobber 1.1.2-alpha

Minimalistic console work time tracker
# Jobber

_Jobber_ is a minimalistic work time management program for the command line.

## Quick Tour

### Initialize New Database

Initialize the database into the application directory (e.g. `~/.config/jobber/jobber.json`):

```plain
▶ jobber init
```

### Initialize the Standard Templates

Install the standard invoice templates into the application directory (e.g. `~/.config/jobber/default/invoice.typ`):

```plain
▶ jobber init templates
```

### Create Company

Create (your) _company_.

```plain
▶ jobber create company
```

### Create Workers

Create one or more _workers_:

```plain
▶ jobber create worker
```

### Create Clients

Create one or more _clients_ with the `create` command and add some information like address, VAT and a payment rate:

```plain
▶ jobber create client
```

### Jobs

Create a _job_:

```plain
▶ jobber create job
```

### Track Your Work

Then track your _work_ with simple shell commands like:

```plain
▶ jobber start
```

or

```plain
▶ jobber end
```

Or be more precise and add a time:

```plain
▶ jobber start 12:15
```

### List Work

```plain
▶ jobber list work

   Job ID: ▶ 0
   Worker: My Self (me)
   Client: Late Capitalism Ltd. (lc)
  Subject: work to do
     Rate: $80.00 / hour
 Interval: 15 min
  Billing: -
     Work: 60:00 hrs
  Revenue: $4,800.00

╭─────┬──────────────────────┬───────┬───────────┬──────────────────────────────┬───────────╮
│ Pos │                Start │   End │  Duration │ Subject                      │ Tags      │
├─────┼──────────────────────┼───────┼───────────┼──────────────────────────────┼───────────┤
│   0 │ 2025 Wed Jun 4 21:30 │ 21:45 │    15 min │ last year                    │ -         │
│   1 │ 2026 Mon May 4 21:30 │ 21:45 │    15 min │ last month                   │ -         │
│   2 │      Thu Jun 4 14:00 │ 16:00 │  2:00 hrs │ meeting in room #1           │  meeting  │
│     │                      │       │           │ second line                  │           │
│   3 │                16:15 │ 19:45 │  3:30 hrs │ whole day                    │ -         │
│   4 │                18:00 │ 18:15 │    15 min │ work in the middle           │ -         │
│   5 │                21:30 │ 21:45 │    15 min │ work in the middle but       │ -         │
│     │                      │       │           │ with a very long subject     │           │
│     │                      │       │           │ which shall be wrapped       │           │
│     │                      │       │           │ automatically when displayed │           │
│   6 │                22:00 │ 23:30 │  1:30 hrs │ work in the evening          │ -         │
│   7 │      Fri Jun 5 10:00 │ 19:30 │  9:30 hrs │ too long                     │ -         │
│   8 │      Sat Jun 6 02:00 │ 02:00 │ 24:00 hrs │ way too long                 │ -         │
│   9 │      Sun Jun 7 06:00 │ 07:00 │  1:00 hrs │ one hour                     │  meeting  │
│  10 │                09:45 │ 19:30 │  9:45 hrs │ long work                    │ -         │
│  11 │      Tue Jun 9 01:00 │ 09:00 │  8:00 hrs │ eight hours                  │ -         │
╰─────┴──────────────────────┴───────┴───────────┴──────────────────────────────┴───────────╯

Use jobber show work to view a work unit.
Use jobber start to start work.

```

### Calendar View

```plain
▶ jobber calendar

                             06/2026
╭────────────────────────────────────────────────────────────────╮
│   Day    Sun    Mon    Tue    Wed    Thu    Fri    Sat    Week │
│                   -      -      -    7.5    9.5     22      39 │
│     7  12.75      -      8      -      -      -      -   20.75 │
│    14      -      -      -      -      -      -      -       - │
│    21      -      -      -      -      -      -      -       - │
│    28      -      -      -                                   - │
│                                            Jun 2026: 59.75 hrs │
╰────────────────────────────────────────────────────────────────╯
Job: 0
```

### Create an Invoice

```plain
▶ jobber create invoice
```

On the first page it shows the list of jobs and on the following daily time sheets listing the working hours more exactly.

### Generate PDF Invoices using _typst_ template

```plain
▶ jobber export invoice 0
```

The output can look like this (using the template `:marx_and_friends`):

![Invoice](images/invoice.png)

### ANSI Color Support

Jobber supports [ANSI Codes](https://en.wikipedia.org/wiki/ANSI_escape_code)
which colorize the output in the terminal for better readability.

Use `jobber --no-ansi` to turn them off.

## Documentation

- [Complete Command-Line Help]commands.md