v5.6.2 · MIT licensed · zero dependencies

journalot

A fast, git-backed journaling CLI for developers. You're already in the terminal — just type journal and start writing.

Get started View on GitHub
GitHub stars MIT License Version 5.6.2
~/journal — journalot
journalot demo — calendar view, stats with streak tracking, quick capture
Why journalot

The best journaling tool is the one you actually use

Every journaling app has the same problem: friction. Open app → wait for sync → click new entry → choose a template. journalot removes every step between you and the page.

⌨️
You're already in the terminaljust type journal
Opens in your editoruses $EDITOR, no learning curve
Auto-commits to gitno manual syncing
Just markdown filescomplete ownership, no lock-in
Features

Everything you need, nothing you don't

Plain markdown, git version control, and a single command — now with habit tracking and multiple journals.

🔥

Streak tracking

See your current and longest consecutive-day streaks in journal --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.

🗣️

Natural language dates

journal --date "last friday" or --date "3 days ago". Backdate anytime.

📦

Backup & archive

journal --backup for timestamped backups and --archive 2024 to tuck away past years.

📤

Export & prompts

journal --export html or pdf, plus daily writing prompts with --prompt.

Usage

One command, many shortcuts

The whole interface fits in your muscle memory.

journal --help
# — 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

Work, personal, and shared — kept separate

Each journal is its own directory with its own git history and remote. Switch instantly, or share one with collaborators.

journal --switch
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
Install

Up and running in seconds

macOS and Linux. Homebrew is the quickest path.

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 journal --list.

Support journalot

journalot is free and open-source. If it helps you build the habit, consider sponsoring development. Full docs and advanced config live on GitHub.