DEV Community

Cover image for ๐Ÿ“ Copilot DevLog CLI: Track Developer Decisions & Generate Clean Markdown Logs
Riya Dhami
Riya Dhami

Posted on

๐Ÿ“ Copilot DevLog CLI: Track Developer Decisions & Generate Clean Markdown Logs

This is a submission for the MLH x DEV Writing Challenge

What I Built

During fast-paced hackathons and daily coding sessions, it is easy to lose track of smaller bugfixes, architectural choices, and technical breakthroughs.

To solve this, I built copilot-devlog-cliโ€”a lightweight, local-first Python command-line tool designed to record dev notes in real-time and export them into structured Markdown post-mortems (DEVLOG_SUMMARY.md).

Inspired by a challenge to use AI coding assistants to construct practical applications, I wanted to build something I could actually use while building future projects. It allows developers to quickly log entries directly from the terminal and export clean summaries without interrupting their flow.

Key Learnings & Features:

  1. Subcommand CLI Interface: Implemented add, view, and export subcommands using Python's argparse.

  2. Robust Storage Handling: Safely stores entries in devlog_entries.json, gracefully reporting unreadable or malformed files rather than failing silently.

  3. Custom Exporting: Supports custom log file targeting (--log-file) and flexible export destinations (--output).

Demo

GitHub logo RiyaDhami13 / copilot-devlog-cli

A lightweight terminal activity logger and Markdown exporter built in Python with GitHub Copilot.

copilot-devlog-cli

A lightweight Python CLI to record daily development logs and export them to Markdown.

Requirements

  • Python 3.8+

Usage

From the repository root, run:

python devlog.py <command> [options]
Enter fullscreen mode Exit fullscreen mode

Use --log-file before the subcommand to store entries in a different JSON file. Missing log files start empty; malformed or unreadable files are reported as CLI errors instead of being silently replaced.

Add a log entry

python devlog.py add --title "Fix auth bug" --category "Bugfix" --notes "Resolved token refresh issue"
Enter fullscreen mode Exit fullscreen mode

View all entries

python devlog.py view
Enter fullscreen mode Exit fullscreen mode

Export Markdown summary

python devlog.py export
Enter fullscreen mode Exit fullscreen mode

To write the Markdown summary somewhere else, use --output:

python devlog.py export --output reports/devlog.md
Enter fullscreen mode Exit fullscreen mode

Output files

  • devlog_entries.json: local JSON storage for all entries
  • DEVLOG_SUMMARY.md: generated Markdown summary document



Here is copilot-devlog-cli in action inside the terminal:

1. Add a log entry

python devlog.py add --title "Fix auth token refresh" --category "Bugfix" --notes "Resolved silent 401 response on expired JWT"
Enter fullscreen mode Exit fullscreen mode

2. Viewing Recent Dev Notes

python devlog.py view
Enter fullscreen mode Exit fullscreen mode

3. Exporting Markdown Summary

python devlog.py export --output reports/devlog.md
Enter fullscreen mode Exit fullscreen mode

๐Ÿ› ๏ธ Development Log Summary

[Bugfix] Fix auth token refresh

  • Notes: Resolved silent 401 response on expired JWT
  • Timestamp: 2026-10-22 14:30

Partner Technologies

GitHub Copilot
I leveraged GitHub Copilot as my primary pair programmer throughout the development process.

How it was implemented:

  1. CLI Scaffolding: Copilot helped generate the boilerplate for complex argparse subcommand structures and optional flag parser rules (--log-file, --output).

  2. Error & Edge-Case Handling: Guided the implementation of safe JSON parsing logicโ€”ensuring missing files start gracefully as empty datasets while corrupted files trigger informative CLI error messages.

  3. Markdown Formatter: Assisted in writing string serialization routines to convert raw JSON logs into clean, readable Markdown documents.

Working with Copilot significantly accelerated the build phase, allowing me to focus on UX and error handling rather than syntax lookup.

Hackathon Experience

Building this tool during the MLH challenge window was an incredible learning curve!

The experience highlighted how AI assistants can transform simple prompt challenges into functional developer utilities. Interacting with the global hacker community and seeing the creative ways developers solve everyday friction points inspired me to focus on local-first, developer-centric tooling. What I'll remember most is the satisfaction of using the tool I built to log the process of building it!

Thanks for reading!

Top comments (0)