Launch the TUI

Features
Catppuccin Mocha
Beautiful color palette optimized for terminal use
Vim Navigation
j/k keys, Enter to drill in, Esc to go back
FTS5 Search
Full-text search from the TUI with live results
Live Refresh
Data refreshes on back-navigation to parent screens
Screens
The TUI provides 8 different screens for browsing your memory system:Dashboard
Stats overview showing:- Total sessions tracked
- Total observations stored
- Total prompts saved
- List of projects with memories
- Navigation menu to other screens
↑/↓ or j/k, press Enter to navigate.
Search
FTS5 full-text search with text input. Navigation:- Type your query
- Press
Enterto search - Press
Escto return to dashboard
s or / from any screen to jump to search.

Search Results
Browsable list of search results with:- Observation title
- Content preview (truncated to fit)
- Type badge (decision, bugfix, etc.)
- Project name
j/kor↑/↓to navigate listEnterto view full observation detailtto view timeline for selected observationEscto return to search
Recent Observations
Browse all observations, newest first. Features:- Shows observations from ALL sessions (including active, non-completed sessions)
- Active session observations are sorted to the top with an
(active)badge - 2-line items: title + content preview
- Scroll indicators show position in long lists (e.g. “showing 1-20 of 50”)
j/kor↑/↓to navigate listEnterto view full observation detailtto view timeline for selected observationEscto return to dashboard
Observation Detail
Full content of a single observation, scrollable. Displays:- ID and title
- Type badge
- Full content (no truncation)
- Project, scope, topic key (if set)
- Tool name (if set)
- Revision count and duplicate count
- Created/updated timestamps
- Session ID
j/kor↑/↓to scroll long contenttto view timeline for this observationEscto return to previous screen (search results or recent observations)

Timeline
Chronological context around a specific observation — shows what happened before and after within the same session. Displays:- Session info (project, start time, summary if available)
- Total observations in the session
- Before section: observations before the focus (chronological)
- Focus observation (highlighted with
>>>markers) - After section: observations after the focus (chronological)
j/kor↑/↓to scrollEscto return to previous screen (observation detail or search results)
Sessions
Browse all sessions. Features:- Shows ALL sessions regardless of status (active and completed)
- Active sessions (not yet ended) are sorted to the top with an
(active)badge - Displays session ID, project, start time, summary (if available)
- Shows observation count per session
j/kor↑/↓to navigate listEnterto view observations within the selected sessionEscto return to dashboard
Session Detail
Observations within a specific session, in chronological order. Displays:- Session header (ID, project, start/end times, summary)
- List of all observations in the session
- Each observation shows title + content preview
j/kor↑/↓to navigate observationsEnterto view full observation detailEscto return to sessions list
Navigation Reference
Global Keys
| Key | Action |
|---|---|
s or / | Quick search from any screen |
Ctrl+C | Force quit from anywhere |
List Navigation
| Key | Action |
|---|---|
j or ↓ | Move down in list |
k or ↑ | Move up in list |
Enter | Select item / drill into detail |
t | View timeline for selected observation |
Esc or q | Go back to previous screen |
Detail Screen Navigation
| Key | Action |
|---|---|
j or ↓ | Scroll down |
k or ↑ | Scroll up |
t | View timeline for this observation |
Esc | Return to previous screen |
Visual Features
Color Palette (Catppuccin Mocha)
The TUI uses the Catppuccin Mocha color scheme:- Rosewater (
#f5e0dc): Headers and titles - Lavender (
#b4befe): Highlights and accents - Blue (
#89b4fa): Links and interactive elements - Mauve (
#cba6f7): Secondary highlights - Text (
#cdd6f4): Primary text - Subtext (
#a6adc8): Metadata and secondary text - Surface (
#313244): Borders and dividers - Base (
#1e1e2e): Background
Active Session Badge
Observations and sessions from active (non-completed) sessions show an(active) badge next to their title and are sorted to the top of every list.
Why? Active sessions represent ongoing work. Sorting them to the top makes it easy to see what’s currently in progress vs. what’s completed.
Scroll Indicators
Long lists show position indicators:2-Line Items
Each observation in a list shows:- Line 1: Title with type badge and project
- Line 2: Content preview (truncated to fit terminal width)
Architecture (Gentleman Bubbletea Patterns)
The TUI follows the Gentleman Bubbletea skill patterns:model.go — Screen constants, Model struct, Init()
model.go — Screen constants, Model struct, Init()
- Screen constants as
Screen intiota - Single
Modelstruct holds ALL state (no separate screen structs) Init()loads initial data (dashboard stats)- Custom messages for async data loading (e.g.
statsLoadedMsg,searchResultsMsg)
styles.go — Lipgloss styles by concern
styles.go — Lipgloss styles by concern
- Layout styles (container, header, footer)
- Dashboard styles (stat card, menu item)
- List styles (item, selected item, scroll indicator)
- Detail styles (content area, metadata)
- Timeline styles (before/after sections, focus highlight)
- Search styles (input, results)
update.go — Update() with type switch
update.go — Update() with type switch
Update()switches onmsgtypehandleKeyPress()routes to per-screen key handlers- Each handler returns
(tea.Model, tea.Cmd) - Handlers:
handleDashboardKeys(),handleSearchKeys(),handleSearchResultsKeys(), etc.
view.go — View() routes to per-screen renderers
view.go — View() routes to per-screen renderers
View()switches onm.Screen- Per-screen renderers:
renderDashboard(),renderSearch(),renderSearchResults(), etc. - Shared
renderObservationListItem()for consistent list formatting across screens
Store Methods (TUI-Specific)
The TUI uses dedicated store methods that don’t filter by session status:| Method | Description |
|---|---|
AllSessions() | All sessions regardless of status, active sorted first |
AllObservations() | All observations regardless of session status, active sorted first |
SessionObservations(sessionID) | All observations for a specific session, chronological order |
These are different from
RecentSessions() and RecentObservations(), which only show completed sessions for MCP context injection.The TUI shows everything (active + completed) because you want to see ongoing work, not just finished sessions.Related
MCP Tools
Explore all 14 MCP tools available to agents
CLI Reference
Command-line interface for Engram
Git Sync
Share memories using git-based sync
Architecture
Technical architecture of Engram