Skip to content

Add vim-like buffer tabs to right panel for Memories, Reminders, and Agenda#553

Open
tombedor wants to merge 5 commits intomainfrom
claude/vim-buffer-interface-X0Fs5
Open

Add vim-like buffer tabs to right panel for Memories, Reminders, and Agenda#553
tombedor wants to merge 5 commits intomainfrom
claude/vim-buffer-interface-X0Fs5

Conversation

@tombedor
Copy link
Copy Markdown
Collaborator

Replaces the static "In-Context Memories" header with a Textual Tabs widget
that lets users switch between three buffer views:

  • Memories (F3): all active memories, with ● marking in-context ones
  • Reminders (F4): active reminders with trigger time or [ctx] indicator
  • Agenda (F5): today's agenda items with checklist progress

F2 still toggles panel visibility. Selecting any item opens the existing
detail modal; reminders support deletion from the modal, agenda shows
the raw markdown content.

https://claude.ai/code/session_01NNTCtZGVd8ET1WU27n3nrA

claude added 4 commits March 27, 2026 02:22
…Agenda

Replaces the static "In-Context Memories" header with a Textual Tabs widget
that lets users switch between three buffer views:
- Memories (F3): all active memories, with ● marking in-context ones
- Reminders (F4): active reminders with trigger time or [ctx] indicator
- Agenda (F5): today's agenda items with checklist progress

F2 still toggles panel visibility. Selecting any item opens the existing
detail modal; reminders support deletion from the modal, agenda shows
the raw markdown content.

https://claude.ai/code/session_01NNTCtZGVd8ET1WU27n3nrA
- Wrap all list-item labels in rich Text() to prevent MarkupError when
  memory/item names contain Rich markup characters like [ and ]
- Replace F3/F4/F5 bindings with Escape-to-browse-mode:
    Escape (from chat input) → show panel, focus list (browse mode)
    Escape / i / a (from list)  → return to chat input
    j / k                       → cursor down/up in list
    Tab / Shift+Tab             → cycle Memories → Reminders → Agenda

https://claude.ai/code/session_01NNTCtZGVd8ET1WU27n3nrA
A second footer line (#hints-bar) shows keybinding hints that update
based on the current view:

  Chat input focused:
    Esc: browse panel  ·  F2: toggle panel  ·  Ctrl+D: exit

  Browse mode (list focused):
    [Memories]  ↑↓/jk: move  ·  Tab/Shift+Tab: cycle buffers  ·
    Enter: open  ·  i/a: back to chat  ·  Esc: back

The buffer name (Memories / Reminders / Agenda) is shown in brackets
so it updates when the user cycles buffers.

https://claude.ai/code/session_01NNTCtZGVd8ET1WU27n3nrA
_update_hints() was called synchronously right after input_widget.focus(),
before Textual had settled the focus change, so list_view.has_focus still
returned True. Defer all _update_hints() calls via call_later() so the
check runs after focus propagation completes.

https://claude.ai/code/session_01NNTCtZGVd8ET1WU27n3nrA
@tombedor tombedor force-pushed the claude/vim-buffer-interface-X0Fs5 branch from 68277d6 to 3204aae Compare March 29, 2026 22:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants