Peek into your Logseq graph from the terminal — no edits, just reading.
Find a file
fiatcode cd918b8204
All checks were successful
CI / vet-and-test (push) Successful in 32s
ci: run on prebuilt go image, drop per-run toolchain setup
2026-06-10 14:32:57 +07:00
.forgejo/workflows ci: run on prebuilt go image, drop per-run toolchain setup 2026-06-10 14:32:57 +07:00
cmd/peekseq fix(cli): preflight-check that graph path is a directory 2026-05-26 16:27:07 +07:00
docs/superpowers docs: move today-journal create from boot to e (lazy, no empty stubs) 2026-06-06 08:52:37 +07:00
internal style(views): gofmt trailing newline in app_dispatch_test 2026-06-09 17:44:38 +07:00
testdata test: add fake-editor fixture for editor hand-off tests 2026-06-05 17:52:17 +07:00
.gitignore chore: untrack the committed peekseq binary; ship docs/ 2026-06-03 10:49:42 +07:00
AGENTS.md docs: move today-journal create from boot to e (lazy, no empty stubs) 2026-06-06 08:52:37 +07:00
CHANGELOG.md release: v1.1.1 — PR-review fixes (todo deep-link by ordinal, unicode input, +4) 2026-06-09 17:54:20 +07:00
CLAUDE.md docs: add AGENTS.md with project context; drop stale NEXT-SESSION.md 2026-05-25 16:38:32 +07:00
go.mod chore: switch module path to git.fiatcode.dev/fiatcode/peekseq 2026-05-25 15:27:53 +07:00
go.sum test(views): teatest snapshots for page, palette, todos 2026-05-25 11:15:13 +07:00
LICENSE chore: add MIT LICENSE 2026-06-03 10:38:57 +07:00
README.md docs: move today-journal create from boot to e (lazy, no empty stubs) 2026-06-06 08:52:37 +07:00

peekseq — a Logseq TUI

A terminal browser for a local Logseq graph. Recency-sorted page picker, ripgrep-backed full-text search, backlinks, and a TODO dashboard. Renders pages with hanging-indent bullets, coloured workflow markers (TODO/DOING/LATER/WAITING/DONE/CANCELED/NOW), and highlighted wiki-links you can step through. Press e to edit the current page in your $EDITOR; e on a missing today's-journal file creates it on demand. Press . to jump to today's journal.

Install

Requires Go 1.26+ and ripgrep 14+ on PATH (the --json output format that the search view consumes was added in rg 14).

go install git.fiatcode.dev/fiatcode/peekseq/cmd/peekseq@latest

Or from source:

git clone https://git.fiatcode.dev/fiatcode/peekseq
cd peekseq
go build ./cmd/peekseq

Usage

peekseq --graph /path/to/graph       # explicit path
PEEKSEQ_GRAPH=/path/to/graph peekseq # via env var
peekseq -version                     # print version and exit

A graph path is required — either pass --graph or set $PEEKSEQ_GRAPH. The flag wins when both are set. Drop the env var into your shell config for the zero-arg invocation.

Keys

Press ? from the page view at any time to see a grouped keymap inside the app.

Key Action
Ctrl-P open picker (recent + fuzzy)
/ open full-text search (ripgrep)
T open TODO dashboard
b open backlinks for the current page
? toggle the help overlay
n / N cycle the wiki-link cursor
Enter follow link / open selection
[ / ] back / forward in page history
. jump to today's journal (creates it if missing)
< / > previous / next journal (on a journal page)
j / k scroll one line
Ctrl-d/u half-page scroll
g / G jump to top / bottom of page
R rebuild the index
e edit current page in $EDITOR
Esc close an overlay
q quit (from page view)

What gets rendered

  • [[wiki-links]] are styled inline, navigable with n/N, and follow with Enter. Aliased links ([[Target|alias]]) show the alias.
  • Workflow markers at the start of a bullet are colour-coded (TODO red, DOING yellow, LATER blue, WAITING dim, DONE green, CANCELED/CANCELLED strikethrough, NOW magenta).
  • :LOGBOOK: ... :END: blocks are hidden — they're metadata, not content.
  • Long bullets wrap with hanging indent, so continuation lines align with the text after the bullet rather than under the bullet glyph.
  • Backlinks filters self-references — viewing a page never lists that page's own mentions of itself.

Environment

Variable Effect
PEEKSEQ_GRAPH Default graph path (overridden by --graph).
PEEKSEQ_STYLE Force a Glamour markdown style (dark, light, ascii, notty). Default dark.
NO_COLOR Honoured: forces notty rendering, no ANSI styling anywhere.
PEEKSEQ_DEBUG=1 Mirror Bubble Tea events to ./peekseq.log. Useful when reporting bugs.

Scope

Read-only except for the e key, which hands the current page's file to $EDITOR, and the . key, which creates today's journal if it doesn't exist. No fold/unfold, no filesystem-watch live reload (use R).

What is not supported

A few Logseq features are intentionally out of scope for v1. None of them crash peekseq — they degrade to plain text or a silent no-op.

  • {{query …}} and {{embed …}} blocks are stripped from the rendered page (Glamour can't render them usefully).
  • Block references [[page#block]] resolve to page; the #block fragment is dropped.
  • alias:: / title:: / tags:: properties are not extracted — they appear as plain text in the page body.
  • Case-insensitive linking is not enforced. [[alpha]] on a page called Alpha resolves correctly.
  • pages/ or journals/ subdirectories are skipped with a stderr warning. Namespace pages must use the ___ filename convention.
  • The TODO dashboard shows only open markers (TODO / LATER / DOING / WAITING). DONE / CANCELED / NOW bullets are styled on the page but never appear in the dashboard.