Daily Notes CLI

Daily Notes CLI

Minimalist shell script for managing daily markdown notes with git integration. Simple, fast, and bloat-free note-taking workflow.

Shell, Git, Markdown
Started: 6/16/2024
Updated: 6/15/2024
cli,productivity,tools

Overview

A lightweight command-line tool for quickly creating and managing daily markdown notes. Built as a simple shell script, it provides a no-frills note-taking workflow with git integration for synchronization and backup.

Philosophy

"I wanted a simple way to keep track of notes without all the bloat. I use this on a daily basis."

This tool embraces simplicity over features. No databases, no complex configuration, no heavy dependencies - just markdown files, git, and a shell script.

Features

  • Quick Note Creation - Single command to create or open today's note
  • Git Integration - Automatic version control and remote synchronization
  • Markdown Format - Plain text notes that work with any editor
  • Date Organization - Automatic date-based file naming
  • Zero Dependencies - Just shell, git, and your preferred text editor
  • Configurable - Custom notes location and git branch settings

Installation

git clone https://github.com/DeaSTL/daily-notes-cli
cd daily-notes-cli
cp ./notes ~/.local/bin/notes

Make sure ~/.local/bin is in your $PATH.

Setup

Initialize Notes Directory

# Create notes directory (default: ~/.notes)
mkdir ~/.notes
cd ~/.notes

# Initialize git repository
git init
git remote add origin <your-github-repo>

# Pull existing notes (if any)
git pull origin main

Configuration

Default settings:

  • Notes Location: ~/.notes
  • Git Branch: main

These can be customized by editing the notes script.

Usage

# Create or open today's note
notes

# The script will:
# 1. Create a new note if one doesn't exist for today
# 2. Open it in your default $EDITOR
# 3. Commit and push changes when you're done

Workflow Integration

Perfect for:

  • Daily Standup Notes - Track what you're working on
  • Learning Journal - Document what you learned today
  • Todo Lists - Quick task tracking
  • Meeting Notes - Fast note-taking during calls
  • Code Snippets - Save useful commands and code

Why Shell Script?

  • Portable - Works on any Unix-like system
  • Transparent - Easy to read and modify the source
  • Fast - No startup time or resource overhead
  • Reliable - No dependencies to break
  • Educational - Simple enough to understand and customize

Technical Details

The script handles:

  • Date-based filename generation
  • Git commit automation
  • Remote synchronization
  • Editor integration via $EDITOR environment variable
  • Directory creation and validation

Customization

Since it's just a shell script, you can easily modify it to:

  • Change the date format in filenames
  • Add custom templates for new notes
  • Integrate with different version control systems
  • Add pre/post-processing hooks
  • Support different note organization schemes

Use Cases

Personal:

  • Daily journaling
  • Learning logs
  • Idea capture

Professional:

  • Sprint notes
  • Standup tracking
  • Project documentation
  • Meeting minutes

Development:

  • Command reference
  • Debugging notes
  • Architecture decisions