| Crates.io | revw |
| lib.rs | revw |
| version | 0.2.5 |
| created_at | 2025-10-06 08:56:45.441301+00 |
| updated_at | 2025-11-02 10:58:17.454064+00 |
| description | A vim-like TUI for managing notes and resources |
| homepage | |
| repository | https://github.com/rlelf/revw |
| max_upload_size | |
| id | 1869954 |
| size | 497,019 |
A vim-like TUI for managing notes and resources.

External resources and references:
Internal notes or thoughts with timestamps:
{
"outside": [
{
"name": "Rust Programming Language",
"context": "A systems programming language focused on safety, speed, and concurrency.",
"url": "https://www.rust-lang.org/",
"percentage": 100
}
],
"inside": [
{
"date": "2025-01-01 00:00:00",
"context": "Finally learned how to use cargo! Running 'cargo new my_project' creates such a clean project structure."
}
]
}
This format is also available in relf
cargo install revw
Or install from source:
cargo install --git https://github.com/rlelf/revw.git --locked
Or download from Releases
Track learning resources, books, articles, and tools you're exploring.
Document your daily learning progress with timestamped notes.
Revw integrates seamlessly with AI assistants:
Workflow 1: LLM generates → You review
:v key)Workflow 2: You create → LLM assists
:c, :ci, :co)# View help
revw --help
# Show version
revw --version
# Start without file
revw
# View mode
revw file.json
# Edit mode
revw --json file.json
# Output to stdout
revw --stdout file.json
# Output to file
revw --output output.txt file.json
# Output only INSIDE section
revw --stdout --inside file.json
# Output only OUTSIDE section
revw --stdout --outside file.json
Navigation:
j/k or ↑/↓ select card (or mouse wheel)gg select first cardG select last card:gi jump to first INSIDE entry:go jump to first OUTSIDE entry/ search forwardn/N next/prev match (jumps to card):noh clear search highlightingEditing:
Enter open edit overlay for selected card:ai add new INSIDE entry (jumps to it):ao add new OUTSIDE entry (jumps to it):dd delete selected entry (entire object):yy duplicate selected entry (entire object):o order entries (by percentage then name) and auto-save:op order by percentage only and auto-save:on order by name only and auto-save:f pattern filter entries by patternVisual Mode (multi-card selection):
v enter Visual modej/k extend selection:cc copy selected cards (rendered format):ccj copy selected cards (JSON format):dc delete selected cardsEsc or Ctrl+[ exit Visual modeCopy/Paste:
:c copy all rendered content (with OUTSIDE/INSIDE headers):ci copy INSIDE section only:co copy OUTSIDE section only:cu copy URL from selected card:v paste file path or JSON content:vu paste URL from clipboard to selected card:vi paste INSIDE from clipboard (overwrite):vo paste OUTSIDE from clipboard (overwrite):va paste both INSIDE and OUTSIDE from clipboard (append):vai paste INSIDE from clipboard (append):vao paste OUTSIDE from clipboard (append):xi clear INSIDE section:xo clear OUTSIDE sectionFilter:
:f pattern filter entries by pattern:nof clear filterSettings:
:set number or :set nu enable line numbers (Edit mode):set nonumber or :set nonu disable line numbers:set card=N set max visible cards (1-10, default: 5)Other:
r toggle View/Edit mode:Lexplore or :Lex or :lx toggle file explorer:x clear content:h or ? toggle help modeq or Esc quitFile Explorer:
j/k or ↑/↓ navigate files/directoriesEnter open file (JSON only) or enter directory:Lexplore or :Lex or :lx close explorerCtrl+w w cycle between explorer and file windowCtrl+w h move to explorer window (left)Ctrl+w l move to file window (right)Explorer File Operations (when explorer has focus):
Enter or o open file or navigate into directory:a create new JSON file in current directory:d create new directory:m rename/move selected file/directory (supports relative paths like ./folder/file.json, or just newname.json):dd delete selected file (confirms with yes/no):yy copy selected file (prompts for new filename)Field Selection Mode (default):
j/k or ↑/↓ navigate between fieldsEnter enter field editing mode (shows cursor)i enter insert mode directlyv enter View Edit mode (renders \n as newlines)w save changesEsc or q cancelField Editing Mode:
h/l or ←/→ move cursor left/right0 move to start of field$ move to end of fieldw next wordb previous worde end of wordg or gg jump to startG jump to endi enter insert modex delete character at cursorX delete character before cursorEsc or Ctrl+[ exit to field selection modeInsert Mode:
←/→ move cursorBackspace delete characterEsc or Ctrl+[ exit to field editing modeView Edit Mode (from Field Selection):
v enter View Edit mode (renders \n as newlines, yellow text)↑/↓ move between lines←/→ move cursorEnter insert \n (literal newline)Backspace delete character (or \n together)Esc or Ctrl+[ exit to field selection modeNavigation:
h/j/k/l or arrow keys - move cursorw next word starte next word endb previous word start0 move to start of line$ move to end of linegg jump to topG jump to bottom:gi jump to first INSIDE entry:go jump to first OUTSIDE entryEditing:
i enter insert modex delete character at cursorX delete character before cursorEsc or Ctrl+[ exit insert mode:dd delete current entry (entire object):yy duplicate current entry (entire object)u undoCtrl+r redog- undog+ redoSearch:
/ search forwardn/N next/prev match:noh clear search highlightingCommands:
:ai add INSIDE entry:ao add OUTSIDE entry:o order entries (by percentage then name):op order by percentage only:on order by name only:dd delete current entry (entire object):yy duplicate current entry (entire object):c copy all content:ci copy INSIDE section (JSON format):co copy OUTSIDE section (JSON format):v paste from clipboard:vi paste INSIDE from clipboard (overwrite):vo paste OUTSIDE from clipboard (overwrite):va paste both INSIDE and OUTSIDE from clipboard (append):vai paste INSIDE from clipboard (append):vao paste OUTSIDE from clipboard (append):x clear all content:xi clear INSIDE section:xo clear OUTSIDE section:nof clear filter:w save:wq save and quit:q quit:e reload file:ar toggle auto-reload (default: on):Lexplore or :Lex or :lx toggle file explorerCtrl+w w cycle between explorer and file windowCtrl+w h move to explorer window (left)Ctrl+w l move to file window (right):h or ? helpSettings:
:set number or :set nu enable line numbers:set nonumber or :set nonu disable line numbers:set card=N set max visible cards (1-10, default: 5)Substitute:
:s/foo/bar/ substitute first occurrence in current line:s/foo/bar/g substitute all occurrences in current line:%s/foo/bar/ substitute first occurrence in all lines:%s/foo/bar/g substitute all occurrences in all linesRevw can be configured using a .revwrc file in your home directory (~/.revwrc).
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
.revwrc# Example configuration
colorscheme Default
set number
set card=5
See CHANGELOG for version history and changes.
MIT