Skip to main content
Version: 0.0.13

histui set

Modify notification state (dismiss, undismiss, seen, delete).

Synopsis

histui set [id...] [flags]

Description

The set command modifies the state of notifications in history. You can dismiss, undismiss, mark as seen, or permanently delete notifications.

IDs can be provided as positional arguments or piped via stdin. When reading from stdin, the command scans each line for a ULID pattern, making it compatible with various output formats.

Options

Input Options

FlagTypeDefaultDescription
--stdinboolfalseRead IDs from stdin (scans for ULID pattern)
--stdin-jsonboolfalseRead JSON from stdin and extract histui_id field

Action Options (mutually exclusive)

FlagTypeDefaultDescription
--dismissboolfalseMark notification(s) as dismissed
--undismissboolfalseClear dismissed state from notification(s)
--seenboolfalseMark notification(s) as seen
--deleteboolfalsePermanently delete notification(s) from history

Exactly one action must be specified.

Examples

Dismiss a specific notification

histui set 01HZ3X2J5YFMK2V3P4Q6R7S8T9 --dismiss

Dismiss multiple notifications

histui set ID1 ID2 ID3 --dismiss

Pipeline: Dismiss all from an app

histui get --filter "app=discord" --format ids | histui set --stdin --dismiss

Pipeline: Dismiss from JSON output

histui get --format json | histui set --stdin-json --dismiss

Mark all from an app as seen

histui get --filter "app=slack" --format ids | histui set --stdin --seen

Delete old notifications

histui get --filter "timestamp<7d" --format ids | histui set --stdin --delete

Dismiss all critical notifications

histui get --filter "urgency=critical,dismissed=false" --format ids | histui set --stdin --dismiss

Pipeline Workflows

Interactive dismiss with fuzzel

# Select notifications to dismiss
histui get | fuzzel -d | histui set --stdin --dismiss

Batch operations with fzf multi-select

# Multi-select with fzf, then dismiss
histui get --format json | jq -r '.[].histui_id' | fzf --multi | histui set --stdin --dismiss

Delete and prune workflow

# Delete specific notifications, then prune to keep 500
histui get --filter "app=spam-app" --format ids | histui set --stdin --delete
histui prune --keep 500

ULID Extraction

When using --stdin, the command scans each line for a ULID pattern (26 alphanumeric characters). This means it works with:

  • Bare ULIDs: 01HZ3X2J5YFMK2V3P4Q6R7S8T9
  • IDs format: 01HZ3X2J5YFMK2V3P4Q6R7S8T9
  • Any line containing a ULID

For dmenu-style output, use --format ids with histui get to get clean IDs.

See Also