Beautiful
.docx
viewing in your terminal — no Microsoft Word required
doxx is a lightning-fast, terminal-native document viewer for Microsoft Word files. Built with Rust for performance and reliability, it brings Word documents to your command line with beautiful rendering, smart table support, and powerful export capabilities.
- 🎨 Beautiful terminal rendering with syntax highlighting and formatting
- 📊 Professional table display with smart alignment and Unicode borders
- 📋 Nested list support with proper indentation and multi-level hierarchy
- 🔍 Full-text search with highlighting and context
- 📑 Document outline for quick navigation
- 🎯 Multiple view modes — document, outline, search, and help
- 📋 Advanced table parsing with automatic header detection
- 🎯 Intelligent alignment — numbers right-aligned, text left-aligned, booleans centered
- 💱 Data type detection for currency, percentages, dates, and more
- 🎨 Professional ASCII rendering with scalable Unicode borders
- 🔄 Search within tables across headers and cell content
- 📋 Copy to clipboard - Copy rendered content directly from the terminal UI
- 🎯 Context-aware copying - Different content based on current view:
- Document view: Copy full formatted document with headings, lists, and tables
- Outline view: Copy document structure with indented headings
- Search view: Copy search results with context
- 🖥️ Cross-platform: Works on Windows, macOS, and Linux (X11/Wayland)
- ✅ Visual feedback with status messages and error handling
- 📝 Markdown export with proper table alignment indicators
- 📊 CSV extraction for data analysis workflows
- 📄 Plain text output for piping to other tools
- 🗂️ JSON export with full document structure
- ⚡ CLI-friendly for scripts and automation
# Install from source (requires Rust)
git clone https://github.com/bgreenwell/doxx.git
cd doxx
cargo install --path .
# View a document
doxx quarterly-report.docx
# Start with outline view
doxx document.docx --outline
# Search for specific content
doxx contract.docx --search "payment terms"
# Export to different formats
doxx spreadsheet.docx --export csv > data.csv
doxx report.docx --export markdown > report.md
doxx document.docx --export json > structure.json
# Force interactive UI (useful for development/testing)
doxx document.docx --force-ui
# Get help
doxx --help
Navigate documents with intuitive keyboard shortcuts and mouse support:
Input | Action |
---|---|
↑ /k or mouse wheel up |
Scroll up |
↓ /j or mouse wheel down |
Scroll down |
Page Up /Page Down |
Page navigation |
Home /End |
Jump to start/end |
o |
Toggle outline view |
s |
Open search |
c |
Copy content to clipboard |
F2 |
Copy content (in search view) |
n /p |
Next/previous search result |
h /F1 |
Toggle help |
q |
Quit |
# Quick document overview
doxx annual-report.docx
# Find all tables and export as CSV
doxx financial-data.docx --export csv
# Search for specific terms with context
doxx legal-contract.docx --search "liability"
# Navigate large documents with outline
doxx technical-manual.docx --outline
# Interactive document review with copy
doxx quarterly-report.docx
# Navigate to important section, press 'c' to copy to clipboard
# Paste into email, Slack, or other applications
# Copy search results for sharing
doxx meeting-notes.docx --search "action items"
# Press F2 to copy all search results with context
# Copy document structure for planning
doxx technical-spec.docx --outline
# Press 'c' to copy hierarchical outline
# Extract text for further processing
doxx meeting-notes.docx --export text | grep "action items"
# Convert Word tables to CSV for analysis
doxx survey-results.docx --export csv | python analyze.py
# Get document metadata as JSON
doxx report.docx --export json | jq '.metadata'
Built with modern Rust for maximum performance:
- Document parsing:
docx-rs
for robust.docx
file handling - Terminal UI:
ratatui
for beautiful cross-platform interfaces - Text processing:
unicode-segmentation
for proper Unicode support - Search:
regex
for powerful pattern matching
doxx fills a critical gap: there's no good way to view Word documents in the terminal. Current solutions force you to choose between losing all formatting or switching to GUI applications.
Tool | Type | DOCX Support | Formatting | Tables | Interactive |
---|---|---|---|---|---|
docx2txt | Text extractor | ✅ Basic | ❌ Lost | ❌ Mangled | ❌ No |
antiword | Legacy converter | ❌ .doc only | ❌ Lost | ❌ Basic | ❌ No |
pandoc | Universal converter | ✅ Via chain | ❌ Lost | ❌ Basic | ❌ No |
glow | Markdown viewer | ❌ Wrong format | ✅ Rich | ✅ Good | ✅ Yes |
Microsoft Word | GUI application | ✅ Native | ✅ Rich | ✅ Perfect | ✅ Yes |
doxx is the first terminal-native DOCX viewer that preserves formatting and provides an interactive experience:
Feature | doxx | Best Alternative |
---|---|---|
Rich DOCX viewing | ✅ Native with formatting | ❌ Plain text only |
Smart table rendering | ✅ Aligned with borders | ❌ Unformatted text |
Interactive navigation | ✅ Full TUI interface | ❌ Pipe to less |
Terminal integration | ✅ SSH-friendly, scriptable | ❌ GUI required |
Multiple exports | ✅ Markdown, CSV, JSON | ❌ Text only |
- ⚡ Instant startup (50ms vs 8+ seconds)
- 💾 Minimal memory (15MB vs 500MB+ RAM)
- 💰 Zero licensing costs ($0 vs $149+ per license)
- 🔒 SSH-friendly for remote server access
- 🔧 Scriptable for automation workflows
- 🎨 Preserves formatting (bold, italic, structure)
- 📊 Intelligent table rendering with proper alignment
- 🖥️ Interactive interface vs. static text output
- 🔍 Built-in search with highlighting and navigation
- 📤 Smart exports with format-aware output
- 📄 Native DOCX support vs. markdown/code only
- 🏢 Business document focused vs. developer files
- 📊 Advanced table intelligence for spreadsheet-like data
- 🔄 Multiple export formats for downstream processing
# Clone the repository
git clone https://github.com/bgreenwell/doxx.git
cd doxx
# Build and run
cargo build --release
cargo run -- --help
# Run tests
cargo test
src/
├── main.rs # CLI argument parsing and entry point
├── document.rs # Document parsing and table structures
├── ui.rs # Terminal interface and rendering
├── export.rs # Export functionality for different formats
└── ai.rs # AI integration framework (coming soon)
- 🤖 AI integration for document summarization and Q&A
- 🔗 Hyperlink support for navigation within documents
- 📷 Image descriptions with AI-generated alt text
- 🎨 Themes and customization for personalized viewing
- 🌐 Web interface for browser-based viewing
- 📝 Document summarization with key points extraction
- ❓ Interactive Q&A about document content
- 📊 Smart data extraction for action items and deadlines
- 🔍 Semantic search beyond keyword matching
- 🛡️ Privacy-first with local AI model support
Contributions are welcome! Please feel free to submit a pull request or open an issue.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a pull request
This project is licensed under the MIT License — see the LICENSE file for details.
- Built with the amazing Rust programming language
- Terminal UI powered by ratatui
- Document parsing with docx-rs
- Inspired by Charm's Glow for beautiful CLI rendering
- Influenced by the terminal-first development philosophy
Made with ❤️ for developers who live in the terminal