Every journaling app has the same problem: friction.
Open app → wait for sync → click new entry → choose template…
journal
The best productivity tool is the one you actually use.
Everything you need, nothing you don't
Streak tracking
See your current and longest consecutive-day streaks in --stats. Build the habit.
Calendar view
journal --calendar shows an ASCII calendar with your entry days highlighted at a glance.
Quick capture
journal "thought" appends a timestamped note instantly — no editor, no friction.
Multiple journals
Keep work, personal, and family journals completely separate, each with its own git repo.
Shared journals
Collaborative journaling via a private git remote — auto-syncs, detects conflicts, resolves gracefully.
Interactive search
Full-text --search with context and highlighting. Fuzzy --list when fzf is installed.
Usage
# — Everyday —
journal # Open today's journal
journal "Had a breakthrough today" # Quick capture (no editor)
journal --yesterday # Open yesterday's entry
journal --last # Open most recent entry
journal --date "last friday" # Natural language dates
# — Browse & Search —
journal --list # List entries (fzf interactive if installed)
journal --calendar # Monthly calendar with entry indicators
journal --search "confidence" # Full-text search with context
journal --week # Open all entries from this week
journal --tag work # Filter entries by #tag
# — Stats & History —
journal --stats # Statistics + current/longest streak
journal --diff 2025-01-15 # Git history for an entry
journal --prompt # Today's writing prompt
# — Export & Backup —
journal --export html # Export to HTML
journal --backup # Create timestamped backup
journal --archive 2024 # Archive all 2024 entries
Multiple journals
Keep work, personal, and family journals in completely separate directories — each with its own git history and remote. Switch instantly.
journal --switch work # Switch to (or create) 'work' journal
journal --switch kids --shared # Shared journal — auto-syncs with collaborators
journal --switch default # Return to default journal
journal --list-journals # List all journals
Installation
brew tap jtaylortech/journalot
brew install journalot
git clone git@github.com:jtaylortech/journalot.git
cd journalot
sudo ./install.sh
Optional: install fzf for interactive fuzzy-search in --list.
journalot is free and open-source. If it helps you build the habit, consider supporting development.