dev-log: Weekly Developer Work Log Tool

A command-line utility to help developers create and edit weekly work logs, persisting them as structured markdown files. Track project accomplishments and delivery status week by week, all without leaving your terminal.

Overview

dev-log is a lightweight .NET global tool built for developers who want a simple, structured way to record what they accomplished each week. Instead of digging through commit history or recall what you did last Tuesday, dev-log gives you a consistent place to capture it as you go.

Logs are saved as plain markdown files organized by week, making them easy to read, share, or check into source control. Whether you're filling out a weekly status report, preparing for a retrospective, or just keeping yourself accountable, dev-log keeps it fast and frictionless.

Installation

dotnet tool install --global dev-log

To update the tool to the latest version:

dotnet tool update --global dev-log

Because the tool is installed globally, you can run dev-log from any directory in your terminal.

Features

Weekly Log Organization

Logs are automatically organized by week. Each weekly log is saved as a markdown file named dev-log-YYYYMMDD.md, where the date is the Sunday that starts the week. You never have to think about file naming or folder structure — dev-log handles it for you.

Project-Based Entries

Each log is organized by project name. Add accomplishments for as many projects as you're working on in a given week, and they'll be grouped cleanly in the output markdown file. This makes it easy to see at a glance what you shipped across all your work.

Interactive Accomplishment Entry

When adding a log entry, dev-log prompts you for accomplishments one at a time. Enter each one on its own line and press Enter on an empty line when you're done. No editors to open, no files to navigate — just type what you did and move on.

Enter accomplishments (one per line, empty line to finish):
  > Implemented the OAuth integration with full test coverage
  > Fixed the cache invalidation bug blocking the release
  > 

In-Place Editing

Made a typo or need to refine an accomplishment? The edit command lets you update individual lines from the current week's log interactively. It shows your current entries with line numbers and prompts you to pick which one to update.

Current accomplishments:
 [1] Implemented the OAuth integration with full test coverage
 [2] Fixed the cache invalidation bug blocking the release

Enter line number to edit (empty to finish):
  > 2
  New text: Resolved the cache invalidation bug, unblocking the v2.1 release
Enter line number to edit (empty to finish):
  > 

Interactive REPL Mode

Running dev-log with no arguments starts an interactive session where you can run multiple commands without re-launching the tool. Type exit to quit or --help to list available commands.

log> add MyProject -f ./devlogs
log> view -f ./devlogs
log> list -f ./devlogs
log> exit

Readable Markdown Output

Every log is saved as clean, readable markdown. You can open the files in any editor, drop them into documentation, or check them into a repo. The format is consistent and human-friendly — no proprietary formats or locked-in data.

## Week of January 5, 2025

### MyProject
- Implemented the OAuth integration with full test coverage
- Resolved the cache invalidation bug, unblocking the v2.1 release
- Refactored the service layer to improve readability and reduce duplication

### AnotherProject
- Reviewed and merged six pull requests
- Upgraded dependencies to the latest stable versions
- Wrote design doc for the upcoming data migration feature

Commands

USAGE:
    dev-log [COMMAND] [OPTIONS]

OPTIONS:
    -h, --help    Prints help information

COMMANDS:
    add <PROJECT>    Add a project entry to this week's dev-log     (alias: a)
    edit <PROJECT>   Edit an existing project entry in the dev-log  (alias: e)
    view             View the full dev-log for a given week         (alias: v)
    list             List all available dev-log files               (alias: ls)

add

Add accomplishments for a project to this week's log. Prompts interactively for each accomplishment. Use -d to target a prior week and -f to specify a custom folder.

# Add to this week's log
dev-log add MyProject

# Add to a specific folder for a prior week
dev-log add MyProject -f ./devlogs -d 01-08-2025

edit

Update individual accomplishment lines in an existing log entry. The tool displays current entries with numbered lines and prompts for which to change. Supports the same -d and -f options as add.

# Edit this week's entry for MyProject
dev-log edit MyProject

# Edit a prior week's entry
dev-log edit MyProject -d 01-08-2025 -f ./devlogs

view

Display the full dev-log for the current or a specified week. Useful for reviewing what you've recorded before wrapping up or sharing a status update.

# View this week's log
dev-log view

# View a specific week stored in a custom folder
dev-log view -d 01-08-2025 -f ./devlogs

list

List all available dev-log files, showing each file name alongside its corresponding week date. Great for quickly finding a past week's log.

# List logs in the current directory
dev-log list

# List logs in a specific folder
dev-log list -f ./devlogs

Example output:

 dev-log-20250112.md  (Week of January 12, 2025)
 dev-log-20250105.md  (Week of January 5, 2025)
 dev-log-20241229.md  (Week of December 29, 2024)

Getting Started

Install the tool, navigate to your working directory, and run your first add command. dev-log will create the weekly log file automatically if it doesn't exist yet.

dotnet tool install --global dev-log
dev-log add MyProject

From there, add entries throughout the week as you complete work. At the end of the week, run dev-log view to see a full summary of everything you accomplished.

If you have feedback, bugs, or feature suggestions, please file them in the Issues section of the repository.

Ready to start logging your development work?

An unhandled error has occurred. Reload 🗙