Terminal-first Confluence reader

Read Confluence locally, including image-heavy docs, without leaving the terminal.

Sync the spaces you care about, search them with focused keyboard workflows, preview cached PNG, JPEG, GIF first-frame, and SVG attachments, and keep readable fallbacks everywhere else.

$ npm install -g @bojackduy/lazyconfluence
lazyconfluence terminal UI with Confluence page tree, document reader, and image previews
Demo mode uses synthetic pages, spaces, links, owners, and image previews for safe recordings. Watch animated demo.

Why it exists

A focused reader, not another browser tab.

Confluence is useful, but jumping between browser tabs breaks terminal flow. lazyconfluence keeps the read path local-first after sync, so browsing a page tree, scanning content, and searching docs feels fast and keyboard-native.

Features

A document reader that stays fast, local, and keyboard-native.

Local-first after sync

Remote Confluence requests happen only when you explicitly sync or reload a page. Normal reading uses your local SQLite index.

Focused navigation

Move through an ordered page tree, outlines, related links, and browser-like local history. Switch spaces without losing keyboard flow.

PNG, JPEG, GIF, and SVG previews

Cached PNG and JPEG attachments render locally; animated GIFs show a static first frame. SVGs are safely rasterized during sync or reload, with Chromium preferred for browser-compatible diagrams and resvg as a fallback.

Search with intent

Search the active space, all synced spaces, or text in the current document. Inspect child pages, outgoing links, backlinks, and page outlines from the same interface.

Stage changes safely

Edit locally, create child or root pages, stage deletes, review the current-space diff, and make remote write-back an explicit approval step.

Terminal-aware images

Use native viewers in Kitty, Ghostty, WezTerm, iTerm2, and Sixel-capable terminals, or fall back to readable color-cell previews and labeled placeholders.

Quick start

Install, configure, sync, read locally.

  1. Install Bun. curl -fsSL https://bun.sh/install | bash
  2. Install lazyconfluence. npm install -g @bojackduy/lazyconfluence
  3. Configure Atlassian credentials. lazyconfluence init
  4. Sync configured spaces. lazyconfluence sync
  5. Open the terminal reader. lazyconfluence

Privacy model

No surprise remote reads while browsing.

Your Atlassian token is stored in your local user config directory. Synced content stays in your local index, and the TUI reads that index instead of calling Confluence while you browse.