# Outline

> Generate document outlines with TOC, chapter planning, and hierarchy management. Use when structuring documents, planning chapters, creating outlines.

- Skill: `bytesagain/outline` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add bytesagain/outline`
- Raw SKILL.md: https://api.skillmd.com/api/skills/bytesagain/outline/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT-0
- Author: bytesagain (https://skillmd.com/u/bytesagain)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/bytesagain/outline

---


# 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 `.log` file 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 in `YYYY-MM-DD HH:MM|<text>` format
- **`history.log`** — Audit trail of every command executed with timestamps
- **`export.json`** / **`export.csv`** / **`export.txt`** — Generated by the `export` command

### Export Formats

- **json** — Array of objects with `type`, `time`, and `value` fields
- **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`, `local` variables)
- **grep** — used by the `search` command 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

1. **Daily task capture** — Quickly jot down tasks, ideas, or observations throughout the day using `add` or `plan`, then review with `recent`
2. **Habit tracking and streaks** — Use `streak` to check in on daily habits and `stats` to see your consistency over time
3. **Weekly reviews and retrospectives** — Use `weekly-review` to log reflections at the end of each week, then `search` to find patterns
4. **Project timeline management** — Use `timeline` to record milestones and `report` to log progress summaries for stakeholders
5. **Exporting data for analysis** — Use `export json` to pipe structured data into `jq`, dashboards, or spreadsheets for deeper analysis

## Examples

```bash
# 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

1. On every invocation, the tool ensures the data directory exists (`mkdir -p`)
2. The first argument selects the command via a `case` dispatch
3. Entry commands append a pipe-delimited line (`timestamp|text`) to their category-specific log file
4. Every command also appends to `history.log` for auditing
5. `stats` iterates over all `.log` files to produce aggregate counts
6. `export` reads all `.log` files and writes a combined output in the chosen format
7. All output goes to stdout for easy piping and redirection

---

Powered by BytesAgain | bytesagain.com | hello@bytesagain.com

