Your Terminal Prints a Newspaper Now
Every morning starts with the same cold case: what was I doing yesterday? The tabs are gone. The terminal scrolled away. The plan I was so sure about at 11:48 p.m. lives in a session file nobody reads.
Here's the thing though — somebody could read it. If you work with coding agents, your day is already recorded. Claude Code writes every session to JSONL under ~/.claude/projects/. Codex keeps rollouts under ~/.codex/sessions/. Git remembers everything else. The most complete journal of your working life already exists on your disk, in a format nobody looks at.
So I built the thing that looks at it. It's called paper, and it prints me a newspaper.

One command, the whole morning
Run paper and you get a broadsheet in your terminal: a headline about your own work, a lead paragraph that knows where you left off, your calendar and unread mail above the fold, the threads you left dangling, Hacker News ranked by relevance to what you're building, the sports page, and three suggestions for the day — terse and slightly bossy, the way a good editor should be.
The pitch in one line: the twenty minutes you spend reconstructing yesterday, the paper spends for you.
The architecture is a newsroom
Everything is a connector. Work connectors produce evidence of what you did; section connectors fetch the world.
work connectors section connectors
claude-code · codex · git news · github · sports · gmail · calendar · weather
│ │
▼ │
INGEST — one LLM call per day │
distills evidence into a journal │
~/.paper/ledger/YYYY-MM-DD.json │
│ │
└──────────────┬─────────────────┘
▼
COMPOSE — the editorial desk
▼
RENDER — terminal broadsheet · PDF
The ingest layer is the part I care about most. Each day gets distilled exactly once into a permanent, first-person journal entry — summaries, where-I-left-off, open threads, next steps — built from raw session transcripts, not from me remembering to write anything down. Skip a weekend and Monday's paper covers everything since Friday. It's a diary with perfect attendance, kept by someone else.
The compose layer is one more LLM call: ledger + open-loops scan + fetched sections in, structured edition out. A deterministic renderer does the typesetting — letterspaced masthead, column rules, a fleuron or two — because real newspapers are monochrome ink and so is this one.
And it's extensible by design: drop a Python file into ~/.paper/connectors/ and any source you want — a markets desk, Strava, arXiv, your home server — becomes a section in tomorrow's edition.
The newspaper is open source: github.com/sayantan94/newspaper. Subscribe with one command.