Revw
A vim-like TUI for managing notes and resources.

Features
- Vim-like terminal user interface
- Clipboard integration
- Clean card-based interface
- Toggle between View mode and raw JSON mode
Relf Format
Outside
External resources and references:
- Name: Title or identifier of the resource
- Context: Description or notes about the resource
- URL: Web address or link
- Percentage: Score or progress indicator, sortable for ordering
Inside
Internal notes or thoughts with timestamps:
- Date: Timestamp of the entry, sortable for ordering
- Context: notes or thoughts
This format is also available in relf
Install
Or install from source:
Or download from Releases
Use Cases
Notes and resources Management
Track learning resources, books, articles, and tools you're exploring.
Learning diary
Document your daily learning progress with timestamped notes.
LLM-Assisted Workflows
Revw integrates seamlessly with AI assistants:
Workflow 1: LLM generates → You review
- Ask an LLM to generate a reading list or resource collection
- Paste the JSON into Revw (
:vkey) - Browse and organize visually
Workflow 2: You create → LLM assists
- Maintain your notes in Revw's clean interface
- Copy sections to clipboard (
:c,:ci,:co) - Share with LLM for analysis, summarization, or questions
Command Line Options
# View help
# Show version
# Start without file
# View mode
# Edit mode
# Output to stdout
# Output to file
# Output only INSIDE section
# Output only OUTSIDE section
Controls
View Mode
Navigation:
j/kor↑/↓select card (or mouse wheel)ggselect first cardGselect last card:gijump to first INSIDE entry:gojump to first OUTSIDE entry/search forwardn/Nnext/prev match (jumps to card):nohclear search highlighting
Editing:
Enteropen edit overlay for selected card:aiadd new INSIDE entry (jumps to it):aoadd new OUTSIDE entry (jumps to it):dddelete selected entry (entire object):yyduplicate selected entry (entire object):oorder entries and auto-save:f patternfilter entries by pattern
Visual Mode (multi-card selection):
venter Visual modej/kextend selection:cccopy selected cards (rendered format):ccjcopy selected cards (JSON format):dcdelete selected cardsEscorCtrl+[exit Visual mode
Copy/Paste:
:ccopy all rendered content (with OUTSIDE/INSIDE headers):cicopy INSIDE section only:cocopy OUTSIDE section only:cucopy URL from selected card:vpaste file path or JSON content:vupaste URL from clipboard to selected card:vipaste INSIDE from clipboard (overwrite):vopaste OUTSIDE from clipboard (overwrite):vapaste both INSIDE and OUTSIDE from clipboard (append):vaipaste INSIDE from clipboard (append):vaopaste OUTSIDE from clipboard (append):xiclear INSIDE section:xoclear OUTSIDE section
Filter:
:f patternfilter entries by pattern:nofclear filter
Settings:
:set numberor:set nuenable line numbers (Edit mode):set nonumberor:set nonudisable line numbers:set card=Nset max visible cards (1-10, default: 5)
Other:
rtoggle View/Edit mode:Lexploreor:Lexor:lxtoggle file explorer:xclear content:hor?toggle help modeqorEscquit
File Explorer:
j/kor↑/↓navigate files/directoriesEnteropen file (JSON only) or enter directory:Lexploreor:Lexor:lxclose explorerCtrl+w wcycle between explorer and file windowCtrl+w hmove to explorer window (left)Ctrl+w lmove to file window (right)
Explorer File Operations (when explorer has focus):
Enteroroopen file or navigate into directory:acreate new JSON file in current directory:dcreate new directory:mrename/move selected file/directory (supports relative paths like./folder/file.json, or justnewname.json):dddelete selected file (confirms with y/n):yycopy selected file (prompts for new filename)
Edit Overlay
Field Selection Mode (default):
j/kor↑/↓navigate between fieldsEnterenter field editing mode (shows cursor)ienter insert mode directlyventer View Edit mode (renders\nas newlines)wsave changesEscorqcancel
Field Editing Mode:
h/lor←/→move cursor left/right0move to start of field$move to end of fieldwnext wordbprevious wordeend of wordgorggjump to startGjump to endienter insert modexdelete character at cursorXdelete character before cursorEscorCtrl+[exit to field selection mode
Insert Mode:
- Type to edit text
←/→move cursorBackspacedelete characterEscorCtrl+[exit to field editing mode
View Edit Mode (from Field Selection):
venter View Edit mode (renders\nas newlines, yellow text)- Type to edit text (h/j/k/l are text input, not navigation)
↑/↓move between lines←/→move cursorEnterinsert\n(literal newline)Backspacedelete character (or\ntogether)EscorCtrl+[exit to field selection mode
Edit Mode
Navigation:
h/j/k/lor arrow keys - move cursorwnext word startenext word endbprevious word start0move to start of line$move to end of lineggjump to topGjump to bottom:gijump to first INSIDE entry:gojump to first OUTSIDE entry- Mouse wheel - scroll (drag disabled)
Editing:
ienter insert modexdelete character at cursorXdelete character before cursorEscorCtrl+[exit insert mode:dddelete current entry (entire object):yyduplicate current entry (entire object)uundoCtrl+rredog-undog+redo
Search:
/search forwardn/Nnext/prev match:nohclear search highlighting
Commands:
:aiadd INSIDE entry:aoadd OUTSIDE entry:oorder entries:dddelete current entry (entire object):yyduplicate current entry (entire object):ccopy all content:cicopy INSIDE section (JSON format):cocopy OUTSIDE section (JSON format):vpaste from clipboard:vipaste INSIDE from clipboard (overwrite):vopaste OUTSIDE from clipboard (overwrite):vapaste both INSIDE and OUTSIDE from clipboard (append):vaipaste INSIDE from clipboard (append):vaopaste OUTSIDE from clipboard (append):xclear all content:xiclear INSIDE section:xoclear OUTSIDE section:nofclear filter:wsave:wqsave and quit:qquit:ereload file:artoggle auto-reload (default: on):Lexploreor:Lexor:lxtoggle file explorerCtrl+w wcycle between explorer and file windowCtrl+w hmove to explorer window (left)Ctrl+w lmove to file window (right):hor?help
Settings:
:set numberor:set nuenable line numbers:set nonumberor:set nonudisable line numbers:set card=Nset max visible cards (1-10, default: 5)
Substitute:
:s/pattern/replacement/substitute first occurrence in current line:s/pattern/replacement/gsubstitute all occurrences in current line:%s/pattern/replacement/substitute first occurrence in all lines:%s/pattern/replacement/gsubstitute all occurrences in all lines
Configuration
Revw can be configured using a .revwrc file in your home directory (~/.revwrc).
Configuration Options
Line Numbers:
set number # Enable line numbers (Edit mode)
set nonumber # Disable line numbers (default)
Max Visible Cards:
set card=5 # Set max visible cards (1-10, default: 5)
Color Schemes:
colorscheme Default # Default color scheme
You can also change the color scheme at runtime using :colorscheme <name>.
Available themes: Default, Morning, Evening, Pablo, Ron, Blue
Example .revwrc
# Example configuration
colorscheme Default
set number
set card=5
Changelog
See CHANGELOG for version history and changes.
License
MIT