Contents
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
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
Initializes Autolog for the current or specified repository.
Options:
-p, --path <path>
: Optional path to git repository. Defaults to current directory.
Make Command
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
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
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
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
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.
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:
Generate a timesheet for January:
Log 8 hours for today:
Log 6 hours for a specific date:
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