Documentation

A simple utility to easily generate timesheets from your git log.

Autolog is a minimal configuration timesheet tool that leverages your git activity to generate professional timesheets. Simply initialize repositories under a client, continue with your normal git workflow, and Autolog automatically tracks your active days based on commits. When needed, generate a timesheet that allocates hours across your repositories, request manager approval with a click, and share via PDF or secure link.

Installation

Note: Autolog is only compatible with Apple Silicon Macs

$ brew tap daveymoores/autolog
$ brew install autolog

Commands Overview

Autolog provides several commands to manage your timesheets:

init

Initialize Autolog for current or specified repository

make

Generate a new timesheet with a unique link

edit

Change the hours worked value for a given day

remove

Remove a client or repository

update

Update details for a client or repository

list

List all clients and associated repositories

Init Command

$ autolog init [OPTIONS]

Initializes Autolog for the current or specified repository.

Options:

  • -p, --path <path>: Optional path to git repository. Defaults to current directory.

Make Command

$ autolog make [OPTIONS]

Generates a new timesheet on a unique link.

Options:

  • -c, --client <client>: Optional client name. Defaults to client of current directory.
  • -m, --month <xx>: Sets the month value. Defaults to current month.
  • -y, --year <xxxx>: Sets the year value. Defaults to current year.

Edit Command

$ autolog edit [OPTIONS]

Changes the hours worked value for a given day.

Options:

  • -n, --namespace <namespace>: Optional namespace/project name. Defaults to project within current directory.
  • -h, --hour <xx>: Sets the hour value. Required.
  • -d, --day <xx>: Sets the day value. Defaults to current day.
  • -m, --month <xx>: Sets the month value. Defaults to current month.
  • -y, --year <xxxx>: Sets the year value. Defaults to current year.

Remove Command

$ autolog remove [OPTIONS]

Removes a client or repository.

Options:

  • -c, --client <client>: Required client name. If namespace isn't passed, this will remove the client.
  • -n, --namespace <namespace>: Optional namespace/project name. If provided, only removes the specific repository.

Update Command

$ autolog update [OPTIONS]

Updates details for a client or repository.

Options:

  • -c, --client <client>: Required client name.
  • -n, --namespace <namespace>: Optional namespace/project name of the git repository.

List Command

$ autolog list

Lists all clients and their associated repositories.

Timesheet Approval Process

Note: The approval workflow requires an approver to be configured for your client. Set up an approver after initialization using autolog update --client <client-name>which will prompt you to enter approver details.

Once an approver is configured, your timesheet will render an approval button:

Your designated approver will receive an email notification with a link to approve your timesheet. The link has a unique identifier that means only the user with access to the email can approve it.

Once approved, you will receive an email notification with a link to your approved timesheet.

Approved

Examples

General Usage

As a freelance software engineer, you might be working for multiple clients in a month. Keeping track of which days you worked for each client can be challenging. Autolog simplifies this process. Here's an example:

Step 1: Navigate to each of Client A's repositories and run autolog init. You will be prompted to add the repository to an existing client or create a new client.

Step 2: Repeat the same process for Client B's repositories.

Step 3: At the end of the month, run autolog make --client "Client A" to generate a timesheet for Client A.

Step 4: Similarly, run autolog make --client "Client B" to generate a timesheet for Client B.

Command Usage Examples

Initialize for current repository:

$ autolog init

Generate a timesheet for January:

$ autolog make -m1

Log 8 hours for today:

$ autolog edit -h8

Log 6 hours for a specific date:

$ autolog edit -h6 -d22 -m11 -y2025

Troubleshooting

Git Repository Not Found

Ensure you're in a valid git repository or specify the path explicitly with the -p option.

Required Arguments Missing

Some commands require specific arguments. For example, the edit command requires at least the hour value. Use autolog [command] --help to see required options.

Date Format Issues

When specifying dates, use numeric values (e.g., -m3 for March).

Data Protection & Privacy

Autolog follows a privacy-first approach with minimal data storage and transmission:

Local Storage: All primary data (Git history, time records) stays on your machine in a local SQLite database

Temporary Sharing: Generated timesheets are stored on external servers for 24 hours only

Minimal Data: Only specific timesheet data is transmitted, never your entire database

Auto-Deletion: Shared timesheet data is automatically deleted after 24 hours

No Registration: No user accounts or personal information collection