# Command-Line Help for `jobber`

This document contains the help content for the `jobber` command-line program.

**Command Overview:**

* [`jobber`↴](#jobber)
* [`jobber init`↴](#jobber-init)
* [`jobber create`↴](#jobber-create)
* [`jobber create company`↴](#jobber-create-company)
* [`jobber create worker`↴](#jobber-create-worker)
* [`jobber create client`↴](#jobber-create-client)
* [`jobber create job`↴](#jobber-create-job)
* [`jobber create tag`↴](#jobber-create-tag)
* [`jobber create invoice`↴](#jobber-create-invoice)
* [`jobber select`↴](#jobber-select)
* [`jobber start`↴](#jobber-start)
* [`jobber end`↴](#jobber-end)
* [`jobber add`↴](#jobber-add)
* [`jobber cancel`↴](#jobber-cancel)
* [`jobber list`↴](#jobber-list)
* [`jobber list workers`↴](#jobber-list-workers)
* [`jobber list clients`↴](#jobber-list-clients)
* [`jobber list jobs`↴](#jobber-list-jobs)
* [`jobber list work`↴](#jobber-list-work)
* [`jobber list tags`↴](#jobber-list-tags)
* [`jobber list invoices`↴](#jobber-list-invoices)
* [`jobber list invoice`↴](#jobber-list-invoice)
* [`jobber show`↴](#jobber-show)
* [`jobber show company`↴](#jobber-show-company)
* [`jobber show client`↴](#jobber-show-client)
* [`jobber show worker`↴](#jobber-show-worker)
* [`jobber show work`↴](#jobber-show-work)
* [`jobber show job`↴](#jobber-show-job)
* [`jobber show invoice`↴](#jobber-show-invoice)
* [`jobber calendar`↴](#jobber-calendar)
* [`jobber export`↴](#jobber-export)
* [`jobber export invoice`↴](#jobber-export-invoice)
* [`jobber info`↴](#jobber-info)
* [`jobber edit`↴](#jobber-edit)
* [`jobber edit company`↴](#jobber-edit-company)
* [`jobber edit worker`↴](#jobber-edit-worker)
* [`jobber edit client`↴](#jobber-edit-client)
* [`jobber edit job`↴](#jobber-edit-job)
* [`jobber edit tag`↴](#jobber-edit-tag)
* [`jobber delete`↴](#jobber-delete)
* [`jobber delete company`↴](#jobber-delete-company)
* [`jobber delete worker`↴](#jobber-delete-worker)
* [`jobber delete client`↴](#jobber-delete-client)
* [`jobber delete job`↴](#jobber-delete-job)
* [`jobber delete tag`↴](#jobber-delete-tag)
* [`jobber delete invoice`↴](#jobber-delete-invoice)
* [`jobber delete work`↴](#jobber-delete-work)
* [`jobber restore`↴](#jobber-restore)
* [`jobber restore worker`↴](#jobber-restore-worker)
* [`jobber restore client`↴](#jobber-restore-client)
* [`jobber restore job`↴](#jobber-restore-job)
* [`jobber restore tag`↴](#jobber-restore-tag)
* [`jobber restore invoice`↴](#jobber-restore-invoice)
* [`jobber restore work`↴](#jobber-restore-work)
* [`jobber sort`↴](#jobber-sort)
* [`jobber undo`↴](#jobber-undo)
* [`jobber completions`↴](#jobber-completions)

## `jobber`

Jobber Command Line Interpreter

Jobber is a minimalistic work time manager.

**Usage:** `jobber [OPTIONS] [COMMAND]`

###### **Subcommands:**

* `init` — Initialize a new database or re-initialize an existing one
* `create` — Create entities in the database
* `select` — Select a job to work at
* `start` — Begin work
* `end` — End work
* `add` — Add a working position
* `cancel` — Cancel any running work
* `list` — List database entities
* `show` — Show database entity
* `calendar` — Show work within a calendar
* `export` — Export database entities
* `info` — Show info about this application
* `edit` — Edit database entities
* `delete` — Delete database entities
* `restore` — Restore database entities
* `sort` — Sort job's working positions by date/time
* `undo` — Undo previous operation
* `completions` — Print completions for the given shell.

###### **Options:**

* `-d`, `--database-file <DATABASE_FILE>` — Database file to use
* `-n`, `--no-ansi` — Prevent usage of ANSI color codes

  Default value: `false`



## `jobber init`

Initialize a new database or re-initialize an existing one.

Creates (or replaces) a database file (JSON) named jobber.json beside the configuration file. The filename can be changed by using `jobber -d <FILENAME> init`.

This function can be undone with `jobber undo`.

**Usage:** `jobber init`



## `jobber create`

Create entities in the database.

All the functions can be undone with `jobber undo`.

**Usage:** `jobber create <COMMAND>`

###### **Subcommands:**

* `company` — Create your company
* `worker` — Create a new worker
* `client` — Create a new client
* `job` — Create a new job
* `tag` — Create a new tag
* `invoice` — Create an invoice from one or more jobs



## `jobber create company`

Create your company

**Usage:** `jobber create company`



## `jobber create worker`

Create a new worker

**Usage:** `jobber create worker <ID>`

###### **Arguments:**

* `<ID>` — Workers's acronym



## `jobber create client`

Create a new client

**Usage:** `jobber create client <ID>`

###### **Arguments:**

* `<ID>` — Client's identifier



## `jobber create job`

Create a new job

**Usage:** `jobber create job [OPTIONS]`

###### **Options:**

* `-n`, `--no-select` — Do not select new job



## `jobber create tag`

Create a new tag

**Usage:** `jobber create tag <NAME>`

###### **Arguments:**

* `<NAME>` — Name of the tag



## `jobber create invoice`

Create an invoice from one or more jobs

**Usage:** `jobber create invoice [OPTIONS] [JOB_ID] [UNTIL]`

###### **Arguments:**

* `<JOB_ID>` — job's identifier
* `<UNTIL>` — Bill until this date

###### **Options:**

* `-s`, `--subject <SUBJECT>` — Overall invoice subject



## `jobber select`

Select a job to work at

Like start and end together in one command.

This function can be undone with `jobber undo`.

**Usage:** `jobber select <JOB_ID>`

###### **Arguments:**

* `<JOB_ID>` — Job identifier



## `jobber start`

Begin work

Start working at the specified time (or now) in the job with the given identifier (or current job). A job may contain subject and tags. Any work which is still running must be ended before starting a new one.

This function can be undone with `jobber undo`.

**Usage:** `jobber start [OPTIONS] [START_TIME]`

###### **Arguments:**

* `<START_TIME>` — Time work begins

   Available formats:

   | Example             | Description       |
   |---------------------|-------------------|
   | `now`               | current time      |
   | `2026-05-31 13:15`  | date/time         |
   | `13:15`             | time today        |
   | `15m`               | minutes in past   |
   | `+15m`              | minutes in future |
   | `8h`                | hours in past     |
   | `+8h`               | hours in future   |

  Default value: `now`

###### **Options:**

* `-s`, `--subject <SUBJECT>` — Subject of the work
* `-t`, `--tags <TAGS>` — Comma-separated list of tags (no spaces allowed e.g. support,test)
* `-j`, `--job <JOB>` — ID of the job to start work for. The job will also be selected as current job (unless -n is used)
* `-n`, `--no-select` — Do not select new job when using --job



## `jobber end`

End work

End running work at the specified time (or now). If a subject was not set within the previous start command it must be set at this point. If a subject was already set within the start command, it might be replaced (`-r`) or appended (`-a`) explicitly.

This function can be undone with `jobber undo`.

**Usage:** `jobber end [OPTIONS] [END_TIME] [SUBJECT]`

###### **Arguments:**

* `<END_TIME>` — Time when work ended (or current time if not given)

   Available formats:

   | Example            | Description          |
   |--------------------|----------------------|
   | `now`              | current time         |
   | `2026-05-31 13:15` | date/time            |
   | `13:15`            | time behind start    |
   | `15m`              | work in minutes      |
   | `8h`               | work in hours        |

  Default value: `now`
* `<SUBJECT>` — Subject of the done work

###### **Options:**

* `-r`, `--replace-subject` — If subject already was set replace with the given one
* `-a`, `--append-subject` — If subject already was set append the given one to it
* `-t`, `--tags <TAGS>` — Comma-separated list of tags (no spaces allowed e.g. support,test)
* `-j`, `--job <JOB>` — ID of the job to end work for (default is current job)



## `jobber add`

Add a working position

Like start and end together in one command.

This function can be undone with `jobber undo`.

**Usage:** `jobber add [OPTIONS] <START> <END> <SUBJECT>`

###### **Arguments:**

* `<START>` — Date/time work begins

   Available formats:

   | Example            |  Description           |
   | -------------------|------------------------|
   | `now`              |  current time          |
   | `2026-05-31 13:15` |  date/time             |
   | `13:15`            |  time today            |
   | `15m`              |  minutes in past       |
   | `+15m`             |  minutes in future     |
   | `8h`               |  hours in past         |
   | `+8h`              |  hours in future       |
* `<END>` — Time when work ended (or current time if not given)

   Available formats:

   | Example            |  Description          |
   | -------------------|-----------------------|
   | `now`              |  current time         |
   | `2026-05-31 13:15` |  date/time            |
   | `13:15`            |  time behind start    |
   | `15m`              |  minutes past start   |
   | `8h`               |  hours past start     |
* `<SUBJECT>` — Subject of the work

###### **Options:**

* `-t`, `--tags <TAGS>` — Comma-separated list of tags (no spaces allowed e.g. support,test)
* `-j`, `--job <JOB>` — ID of the job to add work for (default is current job)



## `jobber cancel`

Cancel any running work.

This function can be undone with `jobber undo`.

**Usage:** `jobber cancel [OPTIONS]`

###### **Options:**

* `-j`, `--job <JOB>` — ID of the job to end work for (default is current job)



## `jobber list`

List database entities

List jobs, clients, workers or a job's work from database.

**Usage:** `jobber list <COMMAND>`

###### **Subcommands:**

* `workers` — List workers
* `clients` — List clients
* `jobs` — List jobs
* `work` — List job's done work
* `tags` — List known tags
* `invoices` — List invoices
* `invoice` — List work of an invoice



## `jobber list workers`

List workers

**Usage:** `jobber list workers [OPTIONS]`

###### **Options:**

* `-d`, `--deleted` — List only deleted workers



## `jobber list clients`

List clients

**Usage:** `jobber list clients [OPTIONS]`

###### **Options:**

* `-d`, `--deleted` — List only deleted clients



## `jobber list jobs`

List jobs

**Usage:** `jobber list jobs [OPTIONS]`

###### **Options:**

* `-d`, `--deleted` — List only deleted jobs



## `jobber list work`

List job's done work

**Usage:** `jobber list work [OPTIONS] [JOB_ID]`

**Command Alias:** `job`

###### **Arguments:**

* `<JOB_ID>` — Job's identifier (or current if not given)

###### **Options:**

* `-d`, `--deleted` — List only deleted work



## `jobber list tags`

List known tags

**Usage:** `jobber list tags [OPTIONS]`

###### **Options:**

* `-d`, `--deleted` — List only deleted tags



## `jobber list invoices`

List invoices

**Usage:** `jobber list invoices [OPTIONS]`

###### **Options:**

* `-d`, `--deleted` — List only deleted invoices



## `jobber list invoice`

List work of an invoice

**Usage:** `jobber list invoice <INVOICE_NO>`

###### **Arguments:**

* `<INVOICE_NO>` — Invoice number



## `jobber show`

Show database entity

**Usage:** `jobber show <COMMAND>`

###### **Subcommands:**

* `company` — Show company information
* `client` — Show client
* `worker` — Show workr
* `work` — Show work
* `job` — Show job
* `invoice` — Show invoice



## `jobber show company`

Show company information

**Usage:** `jobber show company`



## `jobber show client`

Show client

**Usage:** `jobber show client [ID]`

###### **Arguments:**

* `<ID>` — Client's identifier (or the one from current job)



## `jobber show worker`

Show workr

**Usage:** `jobber show worker [ID]`

###### **Arguments:**

* `<ID>` — Worker's identifier



## `jobber show work`

Show work

**Usage:** `jobber show work [OPTIONS] [WORK_POS]`

###### **Arguments:**

* `<WORK_POS>` — Work's position

###### **Options:**

* `-j`, `--job-id <JOB_ID>` — Job's identifier



## `jobber show job`

Show job

**Usage:** `jobber show job [OPTIONS] [JOB_ID]`

###### **Arguments:**

* `<JOB_ID>` — Job's identifier

###### **Options:**

* `-w`, `--worked` — Show list of work positions



## `jobber show invoice`

Show invoice

**Usage:** `jobber show invoice <INVOICE_NO>`

###### **Arguments:**

* `<INVOICE_NO>` — Invoice number



## `jobber calendar`

Show work within a calendar

**Usage:** `jobber calendar [OPTIONS] [START] [END]`

###### **Arguments:**

* `<START>` — Time to display

   Available formats:

   | Example     | Description     |
   | ------------|-----------------|
   | `all`       | all work time   |
   | `now`       | current month   |
   | `5/2026`    | month/year      |
   | `5`         | month           |
   | `2026`      | whole year      |

  Default value: `all`
* `<END>` — Continue display until

   Available formats:

   | Example     | Description     |
   | ------------|-----------------|
   | `now`       | current month   |
   | `5/2026`    | month/year      |
   | `5`         | month           |
   | `2026`      | whole year      |

###### **Options:**

* `-j`, `--job-id <JOB_ID>` — Show only work of this job

   [default: current job]
* `-a`, `--all-jobs` — Show work of all jobs

   [default: current job only]
* `-d`, `--deleted` — Show only deleted work and deleted jobs



## `jobber export`

Export database entities

**Usage:** `jobber export <COMMAND>`

###### **Subcommands:**

* `invoice` — Export (or restore) a invoice



## `jobber export invoice`

Export (or restore) a invoice.

Bill will be marked as export and can be restored later.

**Usage:** `jobber export invoice <NO> [OUTPUT] [TEMPLATE]`

###### **Arguments:**

* `<NO>` — Invoice number
* `<OUTPUT>` — Output format

  Default value: `pdf`

  Possible values: `plain`, `pdf`

* `<TEMPLATE>` — Invoice template (Typst format)

  Default value: `invoice.typ`



## `jobber info`

Show info about this application

**Usage:** `jobber info [OPTIONS]`

###### **Options:**

* `--no-info` — suppress program information
* `--no-stats` — suppress database statistics
* `--no-tips` — suppress user tips



## `jobber edit`

Edit database entities

**Usage:** `jobber edit <COMMAND>`

###### **Subcommands:**

* `company` — Edit company
* `worker` — Edit a worker
* `client` — Edit client's address
* `job` — Edit job
* `tag` — Edit a tag



## `jobber edit company`

Edit company

**Usage:** `jobber edit company`



## `jobber edit worker`

Edit a worker

**Usage:** `jobber edit worker <ID>`

###### **Arguments:**

* `<ID>` — Worker's identifier



## `jobber edit client`

Edit client's address

**Usage:** `jobber edit client <ID>`

###### **Arguments:**

* `<ID>` — Client's identifier



## `jobber edit job`

Edit job

**Usage:** `jobber edit job <ID>`

###### **Arguments:**

* `<ID>` — Jobs position



## `jobber edit tag`

Edit a tag

**Usage:** `jobber edit tag <NAME>`

###### **Arguments:**

* `<NAME>` — Name of the tag



## `jobber delete`

Delete database entities

All the functions can be undone with `jobber undo`.

**Usage:** `jobber delete <COMMAND>`

###### **Subcommands:**

* `company` — Delete company information
* `worker` — Delete a worker
* `client` — Delete a client
* `job` — Delete a job
* `tag` — Delete a tag
* `invoice` — Delete an invoice
* `work` — Delete a work position



## `jobber delete company`

Delete company information

**Usage:** `jobber delete company <ID>`

###### **Arguments:**

* `<ID>` — Tag's identifier



## `jobber delete worker`

Delete a worker.

Worker will be marked as deleted and can be restored later.

**Usage:** `jobber delete worker <ID>`

###### **Arguments:**

* `<ID>` — Worker's identifier



## `jobber delete client`

Delete a client

Client will be marked as deleted and can be restored later.

**Usage:** `jobber delete client <ID>`

###### **Arguments:**

* `<ID>` — Client's identifier



## `jobber delete job`

Delete a job.

Job will be marked as deleted and can be restored later.

**Usage:** `jobber delete job <ID>`

###### **Arguments:**

* `<ID>` — Job's identifier



## `jobber delete tag`

Delete a tag

Tag will be marked as deleted and can be restored later.

**Usage:** `jobber delete tag <ID>`

###### **Arguments:**

* `<ID>` — Tag's identifier



## `jobber delete invoice`

Delete an invoice.

Invoice will be marked as deleted and can be restored later.

**Usage:** `jobber delete invoice <ID>`

###### **Arguments:**

* `<ID>` — Invoice number



## `jobber delete work`

Delete a work position.

Work position will be marked as deleted and can be restored later.

**Usage:** `jobber delete work <JOB_ID> <POS>`

###### **Arguments:**

* `<JOB_ID>` — ID of the job containing the work
* `<POS>` — Work position



## `jobber restore`

Restore database entities

All the functions can be undone with `jobber undo`.

**Usage:** `jobber restore <COMMAND>`

###### **Subcommands:**

* `worker` — Restore a deleted worker
* `client` — Restore a deleted client
* `job` — Restore a deleted job
* `tag` — Restore  a deleted tag
* `invoice` — Restore a deleted invoice
* `work` — Restore a deleted work



## `jobber restore worker`

Restore a deleted worker

**Usage:** `jobber restore worker <ID>`

###### **Arguments:**

* `<ID>` — Worker's acronym



## `jobber restore client`

Restore a deleted client

**Usage:** `jobber restore client <ID>`

###### **Arguments:**

* `<ID>` — Client's identifier



## `jobber restore job`

Restore a deleted job

**Usage:** `jobber restore job <ID>`

###### **Arguments:**

* `<ID>` — Job's identifier



## `jobber restore tag`

Restore  a deleted tag

**Usage:** `jobber restore tag <ID>`

###### **Arguments:**

* `<ID>` — Tag's identifier



## `jobber restore invoice`

Restore a deleted invoice

**Usage:** `jobber restore invoice <ID>`

###### **Arguments:**

* `<ID>` — Invoice number



## `jobber restore work`

Restore a deleted work

**Usage:** `jobber restore work <JOB_ID> <POS>`

###### **Arguments:**

* `<JOB_ID>` — ID of the job containing the work
* `<POS>` — Work position



## `jobber sort`

Sort job's working positions by date/time

ATTENTION: reassigns all jobs' positions within the database

This function can be undone with `jobber undo`.

**Usage:** `jobber sort [JOB_ID]`

###### **Arguments:**

* `<JOB_ID>` — Job's identifier



## `jobber undo`

Undo previous operation.

The undo buffer has a size of *one* which means you can't undo two or more changes.

So undo itself can be undone by calling `jobber undo` again.

**Usage:** `jobber undo`



## `jobber completions`

Print completions for the given shell.

These can be sourced directly, e.g.:

for fish run:
```
   jobber completions fish | source
```

for zsh run:
```
    source <(jobber completions zsh)
```

But they can also be loaded/stored permanently, e.g.:

for zsh run:
```
    mkdir -p ~/.zsh/completions
    jobber completions zsh > ~/.zsh/completions/_jobber
```
  ...and add this to your .zshrc:
```
    fpath=(~/.zsh/completions $fpath)
    autoload -Uz compinit && compinit
```
for fish just run:
```
    jobber completions fish > ~/.config/fish/completions/jobber.fish
```

**Usage:** `jobber completions <SHELL>`

###### **Arguments:**

* `<SHELL>` — Shell to print completions for

  Possible values: `bash`, `elvish`, `fish`, `powershell`, `zsh`




<hr/>

<small><i>
    This document was generated automatically by
    <a href="https://crates.io/crates/clap-markdown"><code>clap-markdown</code></a>.
</i></small>
