File Browser Application Specification

Version: 1.0
Status: Final
Date: 2026-01-22
Author: Business Analysis Team

Executive Summary

This document specifies the requirements for a professional-grade terminal-based file browser application. The application provides efficient keyboard-driven navigation and file management capabilities optimized for terminal users who value speed, clarity, and reliability.

1. Purpose and Scope

1.1 Purpose

The File Browser enables users to navigate directory structures, view file metadata, preview file contents, and perform common file operations entirely within a terminal interface.

1.2 Target Users

1.3 Scope

In Scope: - Directory tree navigation - File and directory listing with metadata - Text file preview - File and directory operations (create, rename, delete, copy, move) - Search and filtering - Keyboard-driven interface - Error handling and user feedback

Out of Scope: - File editing (users should use their preferred editor) - Binary file manipulation - Network filesystem operations - Archive extraction/creation - File permissions modification - Symbolic link creation

2. User Interface Requirements

2.1 Layout

The application uses a three-pane layout optimized for terminal displays:

Left Pane: Directory Tree (25% width) - Hierarchical view of directory structure - Expandable/collapsible directories - Visual indicators for directory state (expanded/collapsed) - Current location indicator

Center Pane: File List (40% width) - Detailed listing of current directory contents - Sortable columns (name, size, modified date, type) - Visual distinction between files and directories - Selection indicator

Right Pane: Preview (35% width) - File content preview for text files - Metadata display for all file types - Scrollable content area

Status Bar (Bottom) - Current path - Item count (files/directories) - Selected item information - Operation status messages

Path Bar (Top) - Current path - Help hint

2.2 Visual Design

Color Scheme: - Directories: Blue (bold) - Regular files: Default terminal color - Executable files: Green - Hidden files: Dim/gray - Selected item: Inverted colors or highlighted background - Error messages: Red - Success messages: Green - Information messages: Yellow

Typography: - Monospace font (terminal default) - Box-drawing characters for tree structure - Unicode symbols for file type indicators (πŸ“ πŸ“„ πŸ”—)

Spacing: - Single-line spacing between items - Borders around content panes using box-drawing characters - Path bar and status bar are unbordered text rows - Padding: 1 space inside pane borders

2.3 Accessibility

3. Functional Requirements

3.1 Navigation

FR-NAV-001: Directory Tree Navigation - User can expand/collapse directories in tree pane - User can navigate up/down through tree items - User can jump to parent directory - User can jump to home directory - User can jump to root directory

FR-NAV-002: File List Navigation - User can navigate up/down through file list - User can page up/down through long lists - User can jump to first/last item - User can navigate to parent directory (..)

FR-NAV-003: Preview Pane Scrolling - User can scroll preview content up/down - User can page up/down in preview - User can jump to top/bottom of preview

FR-NAV-004: Focus Management - User can switch focus between panes (tree, list, preview) - Active pane is visually indicated - Keyboard shortcuts work in context of active pane

3.2 File Operations

FR-FILE-001: View File Information - Display file name, size, modification date, permissions - Display file type (regular, directory, symlink) - Display line count for text files - Display human-readable file sizes (KB, MB, GB)

FR-FILE-002: Preview Text Files - Display first N lines of text files in preview pane - Support UTF-8 encoded files - Handle large files gracefully (don’t load entire file) - Display β€œBinary file” message for non-text files

FR-FILE-003: Create Directory - User can create new directory in current location - Prompt for directory name - Validate directory name (no invalid characters) - Display success/error message - Refresh view to show new directory

FR-FILE-004: Rename File/Directory - User can rename selected file or directory - Pre-populate input with current name - Validate new name (no invalid characters, no conflicts) - Display success/error message - Update view to reflect new name

FR-FILE-005: Delete File/Directory - User can delete selected file or directory - Require confirmation before deletion - Display clear warning for directory deletion - Display success/error message - Refresh view after deletion

FR-FILE-006: Copy File/Directory - User can copy selected file or directory - Prompt for destination path - Validate destination (exists, writable) - Display progress for large operations - Display success/error message

FR-FILE-007: Move File/Directory - User can move selected file or directory - Prompt for destination path - Validate destination (exists, writable, no conflicts) - Display success/error message - Update view to reflect new location

FR-FILE-008: Open File in External Editor - User can open selected file in $EDITOR - Suspend file browser while editor is running - Resume file browser when editor closes - Refresh view to show any changes

3.3 Search and Filtering

FR-SEARCH-001: Filter by Name - User can enter filter pattern - Display only items matching pattern - Support wildcards (* and ?) - Case-insensitive matching - Clear filter to show all items

FR-SEARCH-002: Show/Hide Hidden Files - User can toggle visibility of hidden files (starting with .) - Persist preference during session - Visual indicator of current filter state

FR-SEARCH-003: Sort Options - User can sort by name (ascending/descending) - User can sort by size (ascending/descending) - User can sort by modification date (ascending/descending) - User can sort by type (directories first/last) - Visual indicator of current sort order

3.4 Error Handling

FR-ERROR-001: Permission Errors - Display clear message when directory cannot be read - Display clear message when file cannot be accessed - Suggest resolution (check permissions) - Allow user to continue browsing accessible areas

FR-ERROR-002: File System Errors - Handle missing files gracefully (deleted externally) - Handle renamed files gracefully - Handle full disk scenarios - Display specific error messages, not generic failures

FR-ERROR-003: Invalid Input - Validate user input before operations - Display specific validation errors - Highlight invalid characters in input - Provide examples of valid input

3.5 Performance

FR-PERF-001: Large Directories - Handle directories with 10,000+ items - Use pagination or virtual scrolling - Maintain responsive UI during loading - Display loading indicator for slow operations

FR-PERF-002: Large Files - Preview large files without loading entire content - Limit preview to first 1,000 lines - Display file size warning for very large files - Maintain responsive UI during preview loading

FR-PERF-003: Startup Time - Launch in under 500ms on modern hardware - Initial directory scan in under 200ms - Responsive to user input immediately

4. Event Handling

4.1 Keyboard Shortcuts

4.1.1 Navigation Shortcuts

Key Action
↑ / k Move selection up
↓ / j Move selection down
← / h Collapse directory or move to parent
β†’ / l Expand directory or enter directory
PgUp Page up
PgDn Page down
Home / g Jump to first item
End / G Jump to last item
Backspace Go to parent directory
~ Go to home directory
/ Go to root directory
Tab Switch focus between panes

4.1.2 Operation Shortcuts

Key Action
Enter Open file in editor or enter directory
Space Toggle preview pane
n Create new directory
r Rename selected item
d Delete selected item
c Copy selected item
m Move selected item
e Open in external editor
f Filter by name
. Toggle hidden files
s Cycle sort options
R Refresh current view
? Show help overlay
q / Ctrl+C Quit application

4.1.3 Preview Pane Shortcuts (when focused)

Key Action
↑ / k Scroll preview up
↓ / j Scroll preview down
PgUp Page up in preview
PgDn Page down in preview
Home / g Jump to top of preview
End / G Jump to bottom of preview

4.2 Mouse Events

The application provides optional mouse support for users whose terminals support mouse events. All functionality remains fully accessible via keyboard.

EV-MOUSE-001: Pane Focus - User can click on a pane to focus it - Visual feedback indicates which pane has focus - Click events do not interfere with terminal text selection

EV-MOUSE-002: Item Selection - User can click on an item in the file list to select it - User can click on a directory in the tree to select it - Selected item is highlighted immediately - Preview updates to show selected item

EV-MOUSE-003: Directory Expansion - User can click on expand/collapse indicator (β–Ά/β–Ό) to toggle directory - User can double-click on directory name to expand/collapse - Visual feedback shows expansion state change

EV-MOUSE-004: Scrolling - User can scroll with mouse wheel in any pane - Scroll wheel moves selection in file list and tree - Scroll wheel scrolls content in preview pane - Scroll speed is configurable (default: 3 lines per wheel event)

EV-MOUSE-005: Button Actions - User can click on buttons in dialogs (Yes/No, OK/Cancel) - Hover state provides visual feedback - Click activates button action

EV-MOUSE-006: Drag and Drop (Future Enhancement) - Explicitly deferred to future version - Would enable drag files to move/copy between directories

4.3 Responsive Design with Resize Events

The application must gracefully handle terminal resize events and adapt the layout dynamically.

EV-RESIZE-001: Minimum Size Handling - Application must function at minimum terminal size of 80x24 - If terminal is smaller, display warning message - Suggest increasing terminal size for optimal experience - Allow user to continue at their own risk

EV-RESIZE-002: Dynamic Layout Adjustment - Pane widths adjust proportionally when terminal width changes - Pane heights adjust proportionally when terminal height changes - Maintain 25% / 40% / 35% ratio for panes when possible - Status bar and path bar always visible

EV-RESIZE-003: Content Reflow - File list reflows to fit new width - Preview content reflows to fit new width - Long filenames truncate with ellipsis (…) when space limited - Column headers adjust to available space

EV-RESIZE-004: Graceful Degradation - At narrow widths (< 120 columns), hide preview pane automatically - At very narrow widths (< 80 columns), hide tree pane - Display single-pane file list as fallback - Restore panes when terminal size increases

EV-RESIZE-005: Preserve State - Current selection remains selected after resize - Scroll position maintained when possible - Expanded directories remain expanded - Active pane focus preserved

EV-RESIZE-006: Performance - Resize events processed within 50ms - No flickering or visual artifacts during resize - Smooth transition between layout states - Debounce rapid resize events (100ms window)

EV-RESIZE-007: Orientation Changes - Handle extreme aspect ratios (very wide or very tall) - Adjust pane layout for optimal readability - Maintain usability across all reasonable terminal sizes - Test with common terminal sizes: 80x24, 120x40, 200x60, 300x100

5. Data Requirements

5.1 File Metadata

For each file/directory, the application must track: - Full path - Name - Type (file, directory, symlink) - Size (bytes) - Modification timestamp - Permissions (read/write/execute) - Hidden status (name starts with .)

5.2 Application State

The application must maintain: - Current working directory - Selected item in file list - Expanded directories in tree view - Current sort order - Current filter pattern - Hidden files visibility preference - Active pane focus - Preview scroll position

5.3 Configuration

User preferences (future enhancement): - Default sort order - Default hidden files visibility - Color scheme preference - Preview pane default state (visible/hidden) - Default editor command

6. Non-Functional Requirements

6.1 Performance

6.2 Reliability

6.3 Usability

6.4 Compatibility

6.5 Maintainability

7. User Scenarios

7.1 Scenario: Quick File Lookup

Actor: Software Developer
Goal: Find and open a specific file in a project

Steps: 1. Launch file browser in project directory 2. Use filter to narrow down files by name 3. Navigate to matching file 4. Press Enter to open in editor 5. Edit file and save 6. Return to file browser (auto-refreshed)

Expected Outcome: File located and opened in under 10 seconds

7.2 Scenario: Directory Cleanup

Actor: System Administrator
Goal: Remove old log files from a directory

Steps: 1. Navigate to log directory 2. Sort by modification date (oldest first) 3. Review old files in preview pane 4. Select and delete obsolete files 5. Confirm each deletion 6. Verify cleanup in refreshed view

Expected Outcome: Safe, confirmed deletion of unwanted files

7.3 Scenario: Project Organization

Actor: Developer
Goal: Reorganize project files into new directory structure

Steps: 1. Create new directories for organization 2. Move files into appropriate directories 3. Rename files for consistency 4. Verify structure in tree view 5. Confirm all files moved correctly

Expected Outcome: Reorganized project with clear structure

7.4 Scenario: File Investigation

Actor: DevOps Engineer
Goal: Investigate which files changed recently

Steps: 1. Navigate to application directory 2. Sort by modification date (newest first) 3. Preview recently modified files 4. Identify unexpected changes 5. Open suspicious files in editor for review

Expected Outcome: Quick identification of recent file changes

8. Success Criteria

The File Browser application will be considered successful when:

  1. Adoption: Users choose it over ls, cd, and GUI file browsers for daily work

  2. Efficiency: Users navigate filesystems 2x faster than with traditional CLI commands

  3. Reliability: Zero data loss incidents in production use

  4. Satisfaction: 90% of users rate the experience as β€œgood” or β€œexcellent”

  5. Performance: Maintains responsive UI with directories containing 10,000+ files

9. Future Enhancements

The following features are explicitly deferred to future versions:

10. Appendix

10.1 Terminology

10.2 References

10.3 Revision History

Version Date Author Changes
1.0 2026-01-22 Business Analysis Team Initial specification

10.4 Screenshots

Default View - Directory Listing

~/projects/myapp                                                      ? for help
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Directory Tree       β”‚ Files                          β”‚ Preview                    β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚ πŸ“ myapp             β”‚ Name          Size    Modified β”‚ README.md                  β”‚
β”‚ β”œβ”€ πŸ“ app            β”‚ ──────────────────────────────│                            β”‚
β”‚ β”‚  β”œβ”€ πŸ“ models      β”‚ ..            -      -         β”‚ # My Application           β”‚
β”‚ β”‚  β”œβ”€ πŸ“ views       β”‚ πŸ“ app        -      2024-01-15β”‚                            β”‚
β”‚ β”‚  └─ πŸ“ controllers β”‚ πŸ“ config     -      2024-01-10β”‚ A sample application       β”‚
β”‚ β”œβ”€ πŸ“ config         β”‚ πŸ“ lib        -      2024-01-12β”‚ demonstrating the file     β”‚
β”‚ β”œβ”€ πŸ“ lib            β”‚ πŸ“ test       -      2024-01-20β”‚ browser capabilities.      β”‚
β”‚ β”œβ”€ πŸ“ test           β”‚ πŸ“„ Gemfile    1.2KB  2024-01-18β”‚                            β”‚
β”‚ β”œβ”€ πŸ“„ Gemfile        β”‚ πŸ“„ README.md  3.4KB  2024-01-22β”‚ ## Features                β”‚
β”‚ β”œβ”€ πŸ“„ README.md      β”‚ πŸ“„ Rakefile   856B   2024-01-10β”‚                            β”‚
β”‚ └─ πŸ“„ Rakefile       β”‚                                β”‚ - Fast navigation          β”‚
β”‚                      β”‚                                β”‚ - File preview             β”‚
β”‚                      β”‚                                β”‚ - Search and filter        β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
~/projects/myapp β”‚ 8 items (5 dirs, 3 files) β”‚ README.md - 3.4KB

File Preview - Source Code

~/projects/myapp/app/models                                           ? for help
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Directory Tree       β”‚ Files                          β”‚ Preview                    β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚ πŸ“ myapp             β”‚ Name          Size    Modified β”‚ user.rb                    β”‚
β”‚ β”œβ”€ πŸ“ app            β”‚ ──────────────────────────────│                            β”‚
β”‚ β”‚  β”œβ”€ πŸ“ models β–Ό    β”‚ ..            -      -         β”‚ class User                 β”‚
β”‚ β”‚  β”‚  β”œβ”€ πŸ“„ user.rb  β”‚ πŸ“„ user.rb    2.1KB  2024-01-20β”‚   include ActiveModel::... β”‚
β”‚ β”‚  β”‚  └─ πŸ“„ post.rb  β”‚ πŸ“„ post.rb    1.8KB  2024-01-19β”‚                            β”‚
β”‚ β”‚  β”œβ”€ πŸ“ views       β”‚                                β”‚   attr_accessor :name, ... β”‚
β”‚ β”‚  └─ πŸ“ controllers β”‚                                β”‚                            β”‚
β”‚ β”œβ”€ πŸ“ config         β”‚                                β”‚   validates :name,         β”‚
β”‚ β”œβ”€ πŸ“ lib            β”‚                                β”‚     presence: true         β”‚
β”‚ β”œβ”€ πŸ“ test           β”‚                                β”‚                            β”‚
β”‚ β”œβ”€ πŸ“„ Gemfile        β”‚                                β”‚   validates :email,        β”‚
β”‚ β”œβ”€ πŸ“„ README.md      β”‚                                β”‚     presence: true,        β”‚
β”‚ └─ πŸ“„ Rakefile       β”‚                                β”‚     format: { with: URI... β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚   def full_name            β”‚
β”‚                      β”‚                                β”‚     "#{first_name} #{la... β”‚
β”‚                      β”‚                                β”‚   end                      β”‚
β”‚                      β”‚                                β”‚ end                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
~/projects/myapp/app/models β”‚ 2 items β”‚ user.rb - 2.1KB - 45 lines

Filter Active - Searching for Files

~/projects/myapp                                                      ? for help
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Directory Tree       β”‚ Files (filter: *test*)         β”‚ Preview                    β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚ πŸ“ myapp             β”‚ Name              Size Modifiedβ”‚ user_test.rb               β”‚
β”‚ β”œβ”€ πŸ“ app            β”‚ ──────────────────────────────│                            β”‚
β”‚ β”œβ”€ πŸ“ config         β”‚ πŸ“ test           -    2024-..β”‚ require 'test_helper'      β”‚
β”‚ β”œβ”€ πŸ“ lib            β”‚ πŸ“„ user_test.rb   1.5KB 2024-..β”‚                            β”‚
β”‚ β”œβ”€ πŸ“ test β–Ό         β”‚ πŸ“„ post_test.rb   1.2KB 2024-..β”‚ class UserTest < Minite... β”‚
β”‚ β”‚  β”œβ”€ πŸ“„ test_help.. β”‚ πŸ“„ test_helper.rb 892B  2024-..β”‚   def test_valid_user      β”‚
β”‚ β”‚  β”œβ”€ πŸ“„ user_test.. β”‚                                β”‚     user = User.new(       β”‚
β”‚ β”‚  └─ πŸ“„ post_test.. β”‚                                β”‚       name: "John Doe",    β”‚
β”‚ β”œβ”€ πŸ“„ Gemfile        β”‚                                β”‚       email: "john@exa...  β”‚
β”‚ β”œβ”€ πŸ“„ README.md      β”‚                                β”‚     )                      β”‚
β”‚ └─ πŸ“„ Rakefile       β”‚                                β”‚     assert user.valid?     β”‚
β”‚                      β”‚                                β”‚   end                      β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚   def test_invalid_wit...  β”‚
β”‚                      β”‚                                β”‚     user = User.new        β”‚
β”‚                      β”‚                                β”‚     refute user.valid?     β”‚
β”‚                      β”‚                                β”‚   end                      β”‚
β”‚                      β”‚                                β”‚ end                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Filter: *test* β”‚ 3 matches β”‚ Press Esc to clear filter

Delete Confirmation Dialog

~/projects/myapp/test                                                 ? for help
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Directory Tree       β”‚ Files                          β”‚ Preview                    β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚ πŸ“ myapp             β”‚ Name              Size Modifiedβ”‚ old_test.rb                β”‚
β”‚ β”œβ”€ πŸ“ app            β”‚ ──────────────────────────────│                            β”‚
β”‚ β”œβ”€ πŸ“ config         β”‚ ..                -    -       β”‚ # Deprecated test file     β”‚
β”‚ β”œβ”€ πŸ“ lib            β”‚ πŸ“„ test_helper.rb 892B  2024-..β”‚ # TODO: Remove this        β”‚
β”‚ β”œβ”€ πŸ“ test β–Ό         β”‚ πŸ“„ user_test.rb   1.5KB 2024-..β”‚                            β”‚
β”‚ β”‚  β”œβ”€ πŸ“„ test_help.. β”‚ πŸ“„ post_test.rb   1.2KB 2024-..β”‚                            β”‚
β”‚ β”‚  β”œβ”€ πŸ“„ user_test.. β”‚ πŸ“„ old_test.rb    456B  2023-..β”‚                            β”‚
β”‚ β”‚  β”œβ”€ πŸ“„ post_test.. β”‚    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚                            β”‚
β”‚ β”‚  └─ πŸ“„ old_test.rb β”‚    β”‚ Delete File?           β”‚ β”‚                            β”‚
β”‚ β”œβ”€ πŸ“„ Gemfile        β”‚    β”‚                        β”‚ β”‚                            β”‚
β”‚ β”œβ”€ πŸ“„ README.md      β”‚    β”‚ old_test.rb (456B)     β”‚ β”‚                            β”‚
β”‚ └─ πŸ“„ Rakefile       β”‚    β”‚                        β”‚ β”‚                            β”‚
β”‚                      β”‚    β”‚ This cannot be undone. β”‚ β”‚                            β”‚
β”‚                      β”‚    β”‚                        β”‚ β”‚                            β”‚
β”‚                      β”‚    β”‚  [Y] Yes   [N] No      β”‚ β”‚                            β”‚
β”‚                      β”‚    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
~/projects/myapp/test β”‚ 4 items β”‚ old_test.rb - 456B

Help Overlay

~/projects/myapp                                                      ? for help
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Directory Tree       β”‚ β”Œβ”€ Keyboard Shortcuts ───────┐│ Preview                    β”‚
β”‚                      β”‚ β”‚                             β”‚β”‚                            β”‚
β”‚ πŸ“ myapp             β”‚ β”‚ Navigation:                 β”‚β”‚ README.md                  β”‚
β”‚ β”œβ”€ πŸ“ app            β”‚ β”‚  ↑/k      Move up           β”‚β”‚                            β”‚
β”‚ β”œβ”€ πŸ“ config         β”‚ β”‚  ↓/j      Move down         β”‚β”‚ # My Application           β”‚
β”‚ β”œβ”€ πŸ“ lib            β”‚ β”‚  ←/h      Collapse/parent   β”‚β”‚                            β”‚
β”‚ β”œβ”€ πŸ“ test           β”‚ β”‚  β†’/l      Expand/enter      β”‚β”‚ A sample application       β”‚
β”‚ β”œβ”€ πŸ“„ Gemfile        β”‚ β”‚  PgUp/Dn  Page up/down      β”‚β”‚ demonstrating the file     β”‚
β”‚ β”œβ”€ πŸ“„ README.md      β”‚ β”‚  Home/g   First item        β”‚β”‚ browser capabilities.      β”‚
β”‚ └─ πŸ“„ Rakefile       β”‚ β”‚  End/G    Last item         β”‚β”‚                            β”‚
β”‚                      β”‚ β”‚  Tab      Switch pane       β”‚β”‚ ## Features                β”‚
β”‚                      β”‚ β”‚                             β”‚β”‚                            β”‚
β”‚                      β”‚ β”‚ Operations:                 β”‚β”‚ - Fast navigation          β”‚
β”‚                      β”‚ β”‚  Enter    Open/enter        β”‚β”‚ - File preview             β”‚
β”‚                      β”‚ β”‚  n        New directory     β”‚β”‚ - Search and filter        β”‚
β”‚                      β”‚ β”‚  r        Rename            β”‚β”‚                            β”‚
β”‚                      β”‚ β”‚  d        Delete            β”‚β”‚                            β”‚
β”‚                      β”‚ β”‚  c        Copy              β”‚β”‚                            β”‚
β”‚                      β”‚ β”‚  m        Move              β”‚β”‚                            β”‚
β”‚                      β”‚ β”‚  e        Edit in $EDITOR   β”‚β”‚                            β”‚
β”‚                      β”‚ β”‚  f        Filter            β”‚β”‚                            β”‚
β”‚                      β”‚ β”‚  .        Toggle hidden     β”‚β”‚                            β”‚
β”‚                      β”‚ β”‚  s        Sort options      β”‚β”‚                            β”‚
β”‚                      β”‚ β”‚  R        Refresh           β”‚β”‚                            β”‚
β”‚                      β”‚ β”‚  q/Ctrl+C Quit              β”‚β”‚                            β”‚
β”‚                      β”‚ β”‚                             β”‚β”‚                            β”‚
β”‚                      β”‚ β”‚ Press any key to close...   β”‚β”‚                            β”‚
β”‚                      β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
~/projects/myapp β”‚ 8 items (5 dirs, 3 files) β”‚ README.md - 3.4KB

Error State - Permission Denied

~/restricted                                                          ? for help
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Directory Tree       β”‚ Files                          β”‚ Preview                    β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚ πŸ“ home              β”‚ Name          Size    Modified β”‚                            β”‚
β”‚ β”œβ”€ πŸ“ user           β”‚ ──────────────────────────────│                            β”‚
β”‚ β”œβ”€ πŸ“ restricted β–Ό   β”‚ ..            -      -         β”‚                            β”‚
β”‚ β”‚  └─ πŸ“ secret      β”‚ πŸ“ secret     -      -         β”‚                            β”‚
β”‚ └─ πŸ“ public         β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
⚠ Error: Permission denied - Cannot read directory /restricted/secret

Loading State - Large Directory

~/large-project/node_modules                                          ? for help
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Directory Tree       β”‚ Files                          β”‚ Preview                    β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚ πŸ“ large-project     β”‚ Name          Size    Modified β”‚                            β”‚
β”‚ β”œβ”€ πŸ“ src            β”‚ ──────────────────────────────│                            β”‚
β”‚ β”œβ”€ πŸ“ node_modules β–Ό β”‚ ..            -      -         β”‚                            β”‚
β”‚ β”‚  β”œβ”€ πŸ“ @babel      β”‚                                β”‚                            β”‚
β”‚ β”‚  β”œβ”€ πŸ“ @types      β”‚     Loading directory...       β”‚                            β”‚
β”‚ β”‚  β”œβ”€ πŸ“ eslint      β”‚                                β”‚                            β”‚
β”‚ β”‚  └─ ...            β”‚     β£Ύ 1,247 items found        β”‚                            β”‚
β”‚ β”œβ”€ πŸ“ public         β”‚                                β”‚                            β”‚
β”‚ β”œβ”€ πŸ“„ package.json   β”‚                                β”‚                            β”‚
β”‚ └─ πŸ“„ README.md      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β”‚                      β”‚                                β”‚                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
~/large-project/node_modules β”‚ Loading... β”‚ Press Esc to cancel