ov is a feature-rich terminal pager written in Go, designed as a modern replacement for less/more. It provides interactive viewing of files, logs, and piped input with support for follow mode (tail -f), column-aligned tabular data, search/filter (regex, incremental), marks, sections, sidebars, mouse interaction, and compressed file handling (gzip, bzip2, zstd, lz4, xz). The application can be used as a standalone CLI tool or embedded as a library in other Go programs via the oviewer package. Architecturally, ov is an event-driven terminal UI application built on the tcell library for screen management. The core is organized around a Root struct that manages multiple Document instances, each representing a file or stream. Documents use a chunked reader and LRU-cached store for memory-efficient handling of large files. Content is processed through a pluggable Converter interface (escape sequence, raw, align, wordwrap) and rendered via a draw pipeline. Input modes (search, goto, filter, etc.) are implemented as event-driven state machines with history and candidate support. The system supports extensive customization through YAML configuration for key bindings, styles, and view modes. Key entry points include the CLI main.go (using cobra for argument parsing) and the library API in oviewer.go (NewOviewer, Open, Run, Close). External dependencies include tcell (terminal UI), viper (configuration), cobra (CLI), pflag (flags), fsnotify (file watching), and several smaller packages for compression, Unicode segmentation, and data structures. The codebase demonstrates strong engineering practices with good test coverage, reusable patterns, and cross-platform support (Linux, macOS, Windows, FreeBSD).