outline
v2.0.1Generate document outlines with TOC, chapter planning, and hierarchy management. Use when structuring documents, planning chapters, creating outlines.
Installation
Outline
A productivity toolkit for capturing, planning, tracking, and reviewing tasks and ideas. Each command category maintains its own timestamped log file, so you can organize entries by purpose — plans, reviews, reminders, tags, timelines, and more. Includes built-in statistics, multi-format export, full-text search, and weekly review support.
All operations are logged with timestamps and stored locally in flat files for easy inspection and portability.
Commands
| Command | Description |
|---|---|
outline add <text> |
Add a general entry (or show recent entries with no args) |
outline plan <text> |
Record a plan or goal |
outline track <text> |
Track progress on an item |
outline review <text> |
Log a review or reflection |
outline streak <text> |
Record a streak or habit check-in |
outline remind <text> |
Set a reminder note |
outline prioritize <text> |
Log a priority decision |
outline archive <text> |
Archive an item for later reference |
outline tag <text> |
Tag or categorize an entry |
outline timeline <text> |
Record a timeline event or milestone |
outline report <text> |
Log a report or summary |
outline weekly-review <text> |
Perform or record a weekly review |
outline stats |
Show summary statistics across all categories |
outline export <fmt> |
Export all data in json, csv, or txt format |
outline search <term> |
Full-text search across all log files |
outline recent |
Show the 20 most recent activity entries |
outline status |
Health check — version, data dir, entry counts, disk usage |
outline help |
Show the built-in help message |
outline version |
Print the current version |
How Entry Commands Work
Every entry command (add, plan, track, review, streak, remind, prioritize, archive, tag, timeline, report, weekly-review) follows the same pattern:
- With arguments: Appends a timestamped entry (
YYYY-MM-DD HH:MM|<text>) to the corresponding.logfile and shows the new total count - Without arguments: Shows the 20 most recent entries from that category's log file
Data Storage
All data is stored in ~/.local/share/outline/ by default.
Files created in the data directory:
add.log,plan.log,track.log, etc. — One log file per command category, each containing timestamped entries inYYYY-MM-DD HH:MM|<text>formathistory.log— Audit trail of every command executed with timestampsexport.json/export.csv/export.txt— Generated by theexportcommand
Export Formats
- json — Array of objects with
type,time, andvaluefields - csv — Header row (
type,time,value) followed by data rows - txt — Human-readable sections grouped by category
Requirements
- bash 4.0 or later (uses
set -euo pipefail,localvariables) - grep — used by the
searchcommand for case-insensitive matching - Standard POSIX utilities —
date,cat,echo,mkdir,wc,du,head,tail,basename - No external API keys or network access required
- No Python or Node.js dependencies
When to Use
- Daily task capture — Quickly jot down tasks, ideas, or observations throughout the day using
addorplan, then review withrecent - Habit tracking and streaks — Use
streakto check in on daily habits andstatsto see your consistency over time - Weekly reviews and retrospectives — Use
weekly-reviewto log reflections at the end of each week, thensearchto find patterns - Project timeline management — Use
timelineto record milestones andreportto log progress summaries for stakeholders - Exporting data for analysis — Use
export jsonto pipe structured data intojq, dashboards, or spreadsheets for deeper analysis
Examples
# Add a task and a plan
outline add "Set up CI pipeline for new repo"
#=> [Outline] add: Set up CI pipeline for new repo
#=> Saved. Total add entries: 1
outline plan "Q2 roadmap: launch v2.0 by June"
#=> [Outline] plan: Q2 roadmap: launch v2.0 by June
#=> Saved. Total plan entries: 1
# Track progress and tag it
outline track "CI pipeline: tests passing, deploy step WIP"
outline tag "ci-pipeline: infrastructure"
# Set a reminder
outline remind "Team standup at 10am tomorrow"
#=> [Outline] remind: Team standup at 10am tomorrow
#=> Saved. Total remind entries: 1
# View statistics across all categories
outline stats
#=> === Outline Stats ===
#=> add: 1 entries
#=> plan: 1 entries
#=> ...
#=> Total: 5 entries
#=> Data size: 4.0K
# Export everything as JSON
outline export json
#=> Exported to /home/user/.local/share/outline/export.json (245 bytes)
# Search across all logs
outline search "pipeline"
#=> Searching for: pipeline
#=> --- add ---
#=> 2025-03-18 14:30|Set up CI pipeline for new repo
Configuration
The data directory is hardcoded to ~/.local/share/outline/. To use a custom location, modify the DATA_DIR variable in the script.
How It Works
- On every invocation, the tool ensures the data directory exists (
mkdir -p) - The first argument selects the command via a
casedispatch - Entry commands append a pipe-delimited line (
timestamp|text) to their category-specific log file - Every command also appends to
history.logfor auditing statsiterates over all.logfiles to produce aggregate countsexportreads all.logfiles and writes a combined output in the chosen format- All output goes to stdout for easy piping and redirection
Powered by BytesAgain | bytesagain.com | [email protected]