{"id":30410786,"url":"https://github.com/bgreenwell/doxx","last_synced_at":"2026-05-26T17:01:35.157Z","repository":{"id":310267057,"uuid":"1039227029","full_name":"bgreenwell/doxx","owner":"bgreenwell","description":"Expose the contents of .docx files without leaving your terminal. Fast, safe, and smart — no Office required!","archived":false,"fork":false,"pushed_at":"2026-05-23T16:55:45.000Z","size":101942,"stargazers_count":3674,"open_issues_count":11,"forks_count":91,"subscribers_count":9,"default_branch":"main","last_synced_at":"2026-05-23T18:16:08.772Z","etag":null,"topics":["cli","docx","msword","render","rust","terminal","tui"],"latest_commit_sha":null,"homepage":"https://bgreenwell.github.io/doxx/","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bgreenwell.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-08-16T18:48:24.000Z","updated_at":"2026-05-23T16:55:49.000Z","dependencies_parsed_at":"2025-08-16T23:27:38.186Z","dependency_job_id":"a89b1cae-2083-410b-979a-2cb518adfbc0","html_url":"https://github.com/bgreenwell/doxx","commit_stats":null,"previous_names":["bgreenwell/doxx"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/bgreenwell/doxx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgreenwell%2Fdoxx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgreenwell%2Fdoxx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgreenwell%2Fdoxx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgreenwell%2Fdoxx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bgreenwell","download_url":"https://codeload.github.com/bgreenwell/doxx/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgreenwell%2Fdoxx/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33530343,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"ssl_error","status_checked_at":"2026-05-26T15:22:15.568Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","docx","msword","render","rust","terminal","tui"],"created_at":"2025-08-22T00:02:11.717Z","updated_at":"2026-05-26T17:01:35.149Z","avatar_url":"https://github.com/bgreenwell.png","language":"Makefile","funding_links":[],"categories":["Makefile","Rust","TUI","Rust程序设计","\u003ca name=\"file-handling\"\u003e\u003c/a\u003eFile and file system handling","Table of Contents","其他工具","💻 Apps"],"sub_categories":["资源传输下载","命令行工具","🌌 Other"],"readme":"# doxx 📄 \u003ca href=\"https://terminaltrove.com/\"\u003e\u003cimg src=\"https://cdn.terminaltrove.com/media/badges/tool_of_the_week/svg/terminal_trove_tool_of_the_week_green_on_dark_grey_bg.svg\" align=\"right\" height=\"40\" /\u003e\u003c/a\u003e\n\n\u003e `.docx` files in your terminal — no Microsoft Word required\n\n[![CI](https://img.shields.io/github/actions/workflow/status/bgreenwell/doxx/ci.yml?style=for-the-badge)](https://github.com/bgreenwell/doxx/actions/workflows/ci.yml)\n[![Crates.io](https://img.shields.io/crates/v/doxx.svg?style=for-the-badge)](https://crates.io/crates/doxx)\n[![Downloads](https://img.shields.io/crates/d/doxx?style=for-the-badge)](https://crates.io/crates/doxx)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)\n[![Rust](https://img.shields.io/badge/rust-1.70%2B-orange.svg?style=for-the-badge\u0026logo=rust)](https://www.rust-lang.org)\n[![Easy Install](https://img.shields.io/badge/Easy%20Install-Homebrew%20%7C%20Scoop-FBB040?style=for-the-badge)](#installation)\n[![Platform](https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-blue?style=for-the-badge)](https://github.com/bgreenwell/doxx/releases/latest)\n\nA fast, terminal-native document viewer for Word files. View, search, and export `.docx` documents without leaving your command line.\n\n## Screenshots\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"assets/screenshot1-images.png\" alt=\"Terminal image display\" width=\"400\"\u003e\n        \u003cbr\u003e\u003cem\u003eTerminal image display\u003c/em\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"assets/screenshot2-colors.png\" alt=\"Color support\" width=\"400\"\u003e\n        \u003cbr\u003e\u003cem\u003eColor support\u003c/em\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"assets/screenshot3-tables.png\" alt=\"Smart tables\" width=\"400\"\u003e\n        \u003cbr\u003e\u003cem\u003eSmart tables with alignment\u003c/em\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"assets/screenshot4-lists.png\" alt=\"Lists and formatting\" width=\"400\"\u003e\n        \u003cbr\u003e\u003cem\u003eLists and formatting\u003c/em\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" colspan=\"2\"\u003e\n        \u003cimg src=\"assets/screenshot5-equations.png\" alt=\"Equation support\" width=\"400\"\u003e\n        \u003cbr\u003e\u003cem\u003eInline and display equations\u003c/em\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n## 🎬 Demo\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/demo.gif\" alt=\"doxx mixed formatting demo\" width=\"600\"\u003e\n  \u003cbr\u003e\u003cem\u003eMixed formatting with colors, bold, italic, underline, strikethrough and interactive navigation\u003c/em\u003e\n\u003c/div\u003e\n\n## ✨ Features\n\n- **Beautiful terminal rendering** with formatting, tables, and lists\n- **Equation support** — LaTeX rendering for inline and display equations 📐\n- **Fast search** with highlighting 🔍\n- **Smart tables** with proper alignment and Unicode borders\n- **Copy to clipboard** — grab content directly from the terminal\n- **Export formats** — Markdown, CSV, JSON, plain text, ANSI-colored output\n- **Terminal images** for Kitty, iTerm2, WezTerm 🖼️\n- **Color support** — see Word document colors in your terminal\n\n## 🚀 Installation\n\n### Package managers\n\n#### Homebrew (macOS/Linux)\n\n```bash\nbrew install doxx\n```\n\n#### Cargo (cross-platform)\n```bash\ncargo install doxx\n```\n\n#### Debian/Ubuntu\n\n`doxx` is officially packaged for Debian as\n[`rust-doxx`](https://tracker.debian.org/pkg/rust-doxx) and is available in testing\n(forky).\n\n```bash\nsudo apt install doxx\n```\n\n#### Arch Linux\n\n```bash\npacman -S doxx\n```\n\nThe AUR package is also available for the development version:\n\n```bash\nyay -S doxx-git\n```\n*Thanks to [@mhegreberg](https://github.com/mhegreberg) for creating and maintaining the AUR package!*\n\n#### Nix (cross-platform)\n```bash\nnix profile install github:bgreenwell/doxx\n```\n*Thanks to [@bobberb](https://github.com/bobberb) for creating the Nix flake!*\n\n#### NetBSD\n```bash\npkgin install doxx\n```\n\n#### Conda-Forge (cross-platform)\n```bash\nconda install doxx\n```\nor globally using [Pixi](pixi.sh):\n```bash\npixi global install doxx\n```\n\n#### Scoop (Windows)\n```bash\n# Coming soon\nscoop bucket add doxx https://github.com/bgreenwell/doxx-scoop\nscoop install doxx\n```\n\n### Pre-built binaries\n\nDownload from [GitHub releases](https://github.com/bgreenwell/doxx/releases):\n\n```bash\n# macOS/Linux - automatic platform detection\ncurl -L https://github.com/bgreenwell/doxx/releases/latest/download/doxx-$(uname -s)-$(uname -m).tar.gz | tar xz\nsudo mv doxx /usr/local/bin/\n\n# Verify installation\ndoxx --version\n```\n\n**Available platforms:**\n- **Linux**: `x86_64-unknown-linux-musl` (statically linked)\n- **macOS**: `x86_64-apple-darwin` (Intel) and `aarch64-apple-darwin` (Apple Silicon)\n- **Windows**: `x86_64-pc-windows-msvc`\n\n### Build from source\n\n```bash\ngit clone https://github.com/bgreenwell/doxx.git\ncd doxx\ncargo install --path .\n\n# Or for development\ncargo build --release\n```\n\n**Requirements:**\n- Rust 1.70+ \n- System dependencies: `libxcb` (Linux only)\n\n## 🎯 Usage\n\n```bash\n# View a document\ndoxx report.docx\n\n# Search for content\ndoxx contract.docx --search \"payment\"\n\n# Start with outline view\ndoxx document.docx --outline\n\n# Export to different formats\ndoxx data.docx --export csv \u003e data.csv\ndoxx report.docx --export markdown \u003e report.md\n\n# View with images (supported terminals)\ndoxx presentation.docx --images --export text\n\n# Enable color rendering\ndoxx slides.docx --color\n```\n\n## 📋 Command Line Options\n\n### Basic options\n```bash\ndoxx [OPTIONS] \u003cFILE\u003e\n```\n\n| Option | Description |\n|--------|-------------|\n| `\u003cFILE\u003e` | Input document file (.docx) |\n| `-h, --help` | Show help information |\n| `-V, --version` | Show version information |\n\n### Viewing options\n| Option | Description |\n|--------|-------------|\n| `-o, --outline` | Start with outline view for quick navigation |\n| `-p, --page \u003cPAGE\u003e` | Jump to specific page number on startup |\n| `-s, --search \u003cTERM\u003e` | Search and highlight term immediately |\n| `--force-ui` | Force interactive UI mode (bypass TTY detection) |\n| `--color` | Enable color support for text rendering |\n\n### Export options\n| Option | Values | Description |\n|--------|--------|-------------|\n| `--export \u003cFORMAT\u003e` | `markdown`, `text`, `csv`, `json`, `ansi` | Export document instead of viewing |\n\n**Export examples:**\n```bash\ndoxx report.docx --export markdown  # Convert to Markdown\ndoxx data.docx --export csv         # Extract tables as CSV (tables only!)\ndoxx document.docx --export text    # Plain text output\ndoxx structure.docx --export json   # Document metadata as JSON\ndoxx document.docx --export ansi    # ANSI-colored terminal output\n```\n\n**📊 CSV export note:**\nThe CSV export extracts **only tables** from the document, ignoring all text content. Perfect for pulling structured data from business reports, research papers, or surveys for analysis in Excel, Python, or databases.\n\n### ANSI export options\n| Option | Values | Description |\n|--------|--------|-------------|\n| `-w, --terminal-width \u003cCOLS\u003e` | Number | Set terminal width for formatting (default: $COLUMNS or 80) |\n| `--color-depth \u003cDEPTH\u003e` | `auto`, `1`, `4`, `8`, `24` | Control color rendering depth |\n\n**ANSI export examples:**\n```bash\ndoxx document.docx --export ansi                     # Full color ANSI output\ndoxx document.docx --export ansi --color-depth 1     # Monochrome (no colors)\ndoxx document.docx --export ansi --color-depth 4     # 16 colors\ndoxx document.docx --export ansi --terminal-width 80 # Set terminal width\ndoxx report.docx --export ansi | less -R             # Pipe to less with color support\n```\n\n**🌈 Color depth options:**\n- `auto` - Auto-detect terminal capabilities\n- `1` - Monochrome (no colors, formatting only)\n- `4` - 16 colors (standard ANSI colors)\n- `8` - 256 colors (extended ANSI palette)\n- `24` - True color (16.7 million colors)\n\n### Image options\n| Option | Description |\n|--------|-------------|\n| `--images` | Display images inline in terminal (auto-detect capabilities) |\n| `--extract-images \u003cDIR\u003e` | Extract images to specified directory |\n| `--image-width \u003cCOLS\u003e` | Maximum image width in terminal columns (default: auto-detect) |\n| `--image-height \u003cROWS\u003e` | Maximum image height in terminal rows (default: auto-detect) |\n| `--image-scale \u003cSCALE\u003e` | Image scaling factor (0.1 to 2.0, default: 1.0) |\n\n**Image examples:**\n```bash\ndoxx presentation.docx --images                    # Show images inline\ndoxx document.docx --images --image-width 80       # Limit image width\ndoxx slides.docx --extract-images ./images/        # Save images to folder\n```\n\n**⚠️ Image display notes:**\n- `--images` currently works with `--export text` mode and shows placeholders in TUI\n- Supports iTerm2, Kitty, and WezTerm terminals\n\n\n## ⌨️ Navigation\n\n| Key | Action |\n|-----|--------|\n| `↑`/`k` | Scroll up |\n| `↓`/`j` | Scroll down |\n| `o` | Toggle outline |\n| `s` | Search |\n| `c` | Copy to clipboard |\n| `h` | Help |\n| `q` | Quit |\n\n## 🔧 Why doxx?\n\nCurrent terminal tools for Word documents:\n- **docx2txt** → Loses all formatting, mangled tables\n- **pandoc** → Complex chain, formatting lost\n- **antiword** → Only handles old `.doc` files\n\n**doxx** gives you:\n- ✅ Rich formatting preserved (bold, italic, headers)\n- ✅ Professional table rendering with alignment\n- ✅ Equation support (inline and display LaTeX)\n- ✅ Interactive navigation and search\n- ✅ Multiple export formats for workflows\n- ✅ Terminal image display for modern terminals\n- ✅ Fast startup (50ms vs Word's 8+ seconds)\n\nPerfect for developers, sysadmins, and anyone who prefers the terminal.\n\n## 📊 Examples\n\n### Quick document analysis\n```bash\n# Get overview and search\ndoxx quarterly-report.docx\ndoxx --search \"revenue\"\n\n# Extract tables for analysis\ndoxx financial-data.docx --export csv | python analyze.py\n```\n\n### Copy workflows\n```bash\n# Review and copy sections\ndoxx meeting-notes.docx\n# Press 'c' to copy current view to clipboard\n\n# Copy search results\ndoxx specs.docx --search \"requirements\"\n# Press F2 to copy results with context\n```\n\n### Pipeline integration\n```bash\n# Extract text for processing\ndoxx notes.docx --export text | grep \"action items\"\n\n# Get document structure\ndoxx report.docx --export json | jq '.metadata'\n```\n\n## 🏗️ Architecture\n\nBuilt with Rust for performance:\n- **[docx-rs](https://crates.io/crates/docx-rs)** — Document parsing\n- **[ratatui](https://crates.io/crates/ratatui)** — Terminal UI\n- **[viuer](https://crates.io/crates/viuer)** — Image rendering\n- **[unicode-segmentation](https://crates.io/crates/unicode-segmentation)** — Proper Unicode handling\n\n## 🛠️ Development\n\n```bash\n# Build and test\ncargo build --release\ncargo test\n\n# Run with sample document\ncargo run -- tests/fixtures/minimal.docx\n```\n\n## Known limitations\n\n**Equation positioning:** Display equations may not appear at exact positions due to limitations in the underlying docx-rs parsing library. We've filed an [upstream issue](https://github.com/bokuweb/docx-rs/issues) and are planning a complete fix for v0.2.0 using direct XML parsing.\n\n## Roadmap\n\n- Perfect equation positioning (v0.2.0)\n- Image support in TUI via ratatui-image crate\n- Enhanced table support (merged cells, complex layouts)\n- Performance improvements for large documents\n- Hyperlink navigation\n- Custom themes\n\n## 💡 Inspiration\n\nThis project was inspired by [Charm](https://github.com/charmbracelet)'s [Glow](https://github.com/charmbracelet/glow) package — the beautiful terminal Markdown renderer that shows how terminal document viewing can be both powerful and elegant. Just as Glow brings rich Markdown rendering to your command line, doxx aims to do the same for Microsoft Word documents.\n\nThanks to the Charm team for the inspiration! ✨\n\n## 📝 License\n\nMIT License — see [LICENSE](LICENSE) file for details.\n\n---\n\n**Made for developers who live in the terminal** 🚀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgreenwell%2Fdoxx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbgreenwell%2Fdoxx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgreenwell%2Fdoxx/lists"}