bujo

command module
v0.0.0-...-c088d8e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 6, 2025 License: Apache-2.0 Imports: 2 Imported by: 0

README

bujo

bujo - Bullet journaling on the command line.

GoDoc Go Report Card

Bullet journaling is a fast way to capture daily tasks, notes, and events. bujo lets you bring that workflow to the terminal with both a classic CLI and a rich TUI experience.

Installation

bujo can be installed via:

go install tableflip.dev/bujo@latest

Make sure to update the completion script if you are using the auto-completion:

. <(bujo completion)

Usage

The CLI is a thin layer over your bullet journal. A few common commands:

# Show the collections in your journal
bujo list

# Add a task into today's daily log
bujo add "Finish README refresh"

# Review recently completed work (defaults to 1 week)
bujo report --last 1w

# Set or create a collection type (monthly/daily/generic/tracking)
bujo collections type "Future" monthly

# Jump into the fullscreen TUI
bujo ui

Most users keep the TUI running in a terminal pane (bujo ui) and use the CLI commands from another window to add or migrate tasks. The TUI supports calendar browsing, bullet/signifier editing, command-mode shortcuts (:), and a scrollable :report view to review completed entries within a window. Use :type [collection] <type> to update metadata in place, and launch :new-collection for a wizard that guides you through choosing the parent, name, and type. New collections created through moves, :mkdir, or the wizard surface the inferred type in their prompts.

TUI / CLI Delta

As of the latest TUI overhaul there are still some capabilities that exist only in the CLI or only in the TUI. This checklist will guide future parity work.

CLI-only today

  • bujo log renders day/month/future summaries for piping or quick export; the TUI has no single-shot log output (pkg/commands/log.go).
  • bujo track <collection> appends an occurrence bullet and prints the counter. The TUI bullet picker doesn’t expose the tracking glyph (pkg/commands/track.go, pkg/runner/tea/ui.go:249).
  • bujo key emits the bullet/signifier legend; the TUI relies on contextual help and can’t print the cheat sheet (pkg/commands/key.go).
  • bujo get … offers cross-collection filters and --show-id output suitable for scripting. The TUI can’t slice entries that way (pkg/commands/get.go).
  • bujo report --last prints reports to stdout for tee/redirect; the TUI :report overlay is view-only (pkg/commands/report.go, pkg/runner/tea/ui.go:4141).

TUI-only today

  • Inline edit/move/future actions via i, >, < and escape hovers have no CLI equivalents (pkg/runner/tea/ui.go:2520, pkg/runner/tea/ui.go:2550).
  • Indent/outdent, parent selection, and hierarchical editing live only behind tab, shift+tab, and the parent picker (pkg/runner/tea/ui.go:2695, pkg/runner/tea/ui.go:2746).
  • The move selector (tab completion + create-on-enter) and type-aware validation are TUI-only (pkg/runner/tea/ui.go:1878).
  • Bullet/signifier menus let you change glyphs or defaults after creation; CLI can only set signifiers at add-time (pkg/runner/tea/ui.go:3226).
  • Overlay workflows—collection wizard, delete confirmation, lock/unlock commands, task metadata panel, and the scrollable report viewport—have no CLI analogs (pkg/runner/tea/ui.go:2186, pkg/runner/tea/ui.go:2963, pkg/runner/tea/ui.go:2275, pkg/runner/tea/ui.go:4381).

Bash Completion

(For Mac)

Make sure you have bash-completion installed:

brew install bash-completion

And make sure the following two lines are in your .bashrc or .profile:

. /usr/local/etc/profile.d/bash_completion.sh
. <(bujo completion)

Now tab completion should work!

Documentation

Overview

bujo is the CLI entrypoint for the bullet journal application.

Directories

Path Synopsis
pkg
app
Package app exposes shared services for manipulating bujo entries and collections.
Package app exposes shared services for manipulating bujo entries and collections.
collection
Package collection defines metadata helpers for bujo collections.
Package collection defines metadata helpers for bujo collections.
commands
Package commands wires up the CLI command tree.
Package commands wires up the CLI command tree.
commands/options
Package options defines shared flag helpers for CLI commands.
Package options defines shared flag helpers for CLI commands.
entry
Package entry defines the core bullet journal entry model.
Package entry defines the core bullet journal entry model.
glyph
Package glyph defines bullet and signifier metadata used throughout bujo.
Package glyph defines bullet and signifier metadata used throughout bujo.
printers
Package printers contains helpers for formatted terminal output.
Package printers contains helpers for formatted terminal output.
runner/add
Package add provides the runner implementation for the `bujo add` command.
Package add provides the runner implementation for the `bujo add` command.
runner/collections
Package collections contains runners for collection management commands.
Package collections contains runners for collection management commands.
runner/complete
Package complete provides the runner logic for marking entries complete.
Package complete provides the runner logic for marking entries complete.
runner/get
Package get provides runners that render collections, calendars, and trackers.
Package get provides runners that render collections, calendars, and trackers.
runner/info
Package info implements the runner for displaying collection metadata.
Package info implements the runner for displaying collection metadata.
runner/key
Package key provides CLI helpers to display the journaling legend.
Package key provides CLI helpers to display the journaling legend.
runner/log
Package log provides runners that render day, month, and future logs.
Package log provides runners that render day, month, and future logs.
runner/strike
Package strike provides the runner logic for striking entries.
Package strike provides the runner logic for striking entries.
runner/track
Package track provides runners that summarize entry tracking data.
Package track provides runners that summarize entry tracking data.
store
Package store exposes configuration loading and persistence interfaces.
Package store exposes configuration loading and persistence interfaces.
tui/components/bottombar
Package bottombar renders and manages the TUI footer component.
Package bottombar renders and manages the TUI footer component.
tui/components/calendar
Package calendar provides helpers for rendering calendar views.
Package calendar provides helpers for rendering calendar views.
tui/components/detail
Package detail manages the per-panel entry state for the TUI detail pane.
Package detail manages the per-panel entry state for the TUI detail pane.
tui/components/index
Package index builds the collection tree and calendar rows for the TUI index pane.
Package index builds the collection tree and calendar rows for the TUI index pane.
tui/components/panel
Package panel defines reusable overlay panel models for the TUI.
Package panel defines reusable overlay panel models for the TUI.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL