Show HN: Doxx – Terminal .docx viewer inspired by Glow
261 points| w108bmg | 6 months ago |github.com
What it does:
* View `.docx` files directly in your terminal with (mostly) proper formatting
* Tables actually look like tables (with Unicode borders!)
* Nested lists work correctly with indentation
* Full-text search with highlighting
* Copy content straight to clipboard with `c`
* Export to markdown/CSV/JSON
Why I made this:
Working on servers over SSH, I constantly hit Word docs I needed to check quickly. The existing solutions I'm aware of either strip all formatting (docx2txt) or require GUI apps. Wanted something that felt as polished as [glow](https://github.com/charmbracelet/glow) but for Word documents.
The good stuff:
* 50ms startup vs Word's 8+ seconds
* Works over SSH (obviously)
* Preserves document structure and formatting
* Smart table alignment based on data types
* Interactive outline view for long docs
Built with Rust + ratatui and heavily inspired by Charm's [glow](https://github.com/charmbracelet/glow) package for viewing Markdown in the CLI (built in Go)!
# Install
cargo install --git https://github.com/bgreenwell/doxx
# Use
doxx quarterly-report.docx
Still early but handles most Word docs I throw at it. Always wanted a proper Word viewer in my terminal toolkit alongside `bat`, `glow`, and friends. Let me know what you think!
zvr|6 months ago
But a humble request: please make sure that the planned "AI integration" is completely optional, not compiled-in, or, even better, a sister project ("aidoxx"?).
Having the functionality of sending the contents of a Word document to any external service will be a red flag and block adoption of this tool in many environments.
stavros|6 months ago
nirava|6 months ago
`doxx document.docs | doxxAI`
Even without any of the bad vibes around AI, it is just much more aesthetic and wonderful if the core doxx util was a single purpose command.
Also, it is open source so if it's sufficiently useful, someone will spin off a AI stripped down version anyways, and that'll probably gain more users/goodwill in the kind of CLI SSH dev niche market this tool is trying to fit in.
treetalker|6 months ago
The name causes miscues and carries negative connotations, though, on account of its homonym verb (doxxing).
w108bmg|6 months ago
ThreatSystems|6 months ago
nine_k|6 months ago
Tmpod|6 months ago
ashton314|6 months ago
I did something like this with pandoc:
Keeps a lot or formatting. My favorite way to read a README file in the terminalpiker|6 months ago
- https://github.com/mikeebowen/OOXML-Validator (if you plan on making edits, you'll want to ensure they're renderable by other Word users)
- https://marketplace.visualstudio.com/items?itemName=yuenm18.... (incredible VS code extension for debugging OOXML files)
One thing that will surprise a lot of users is how common old-style Word (.doc) files are still. For that you might consider integrating Antiword (https://github.com/grobian/antiword) if you can get comfortable with the licensing.
Be aware that styles play an important role in numbering that doesn't seem to be picked up here. So you'll want to apply the styles before calculating the numbering levels.
Over all really cool. Hit me up if you ever want to swap notes on Docx and Rust. My email is in my profile.
Keep it up!
xvilka|6 months ago
shazbotter|6 months ago
Needs a new name, or a certain percentage of the audience will nope out before you even get to explain what it does.
majkinetor|6 months ago
BTW, 8 seconds to start Word? What kind of computer are you using? Word is not performance beast but its not that slow either.
jbgt|6 months ago
Of course it's a big install on the other hand.
_def|6 months ago
sjsdaiuasgdia|6 months ago
BrouteMinou|6 months ago
It's refreshing to see something that isn't another chatbot.
zipping1549|6 months ago
Not so good of a name.
goku12|6 months ago
agnishom|6 months ago
https://www.urbandictionary.com/define.php?term=doxx
politelemon|6 months ago
aeve890|6 months ago
The criticism of the project name is on point though. Horrible for searching and probably a no-no in job machine.
xvilka|6 months ago
[1] https://github.com/anvie/dotext
snthpy|6 months ago
Now can you do Excel next? I'm aware of [calamine](https://github.com/tafia/calamine) but that doesn't render as beautifully as doxx. Presumably a lot of the MS XML schema ontology is shared? Ideally you could just use some of their readers and add your UI flare.
Also really nice list of tools in your previous submissions. Awesome work!
w108bmg|6 months ago
https://github.com/bgreenwell/doxx/releases/tag/v0.1.1
i_am_proteus|6 months ago
joshka|6 months ago
porridgeraisin|6 months ago
3eb7988a1663|6 months ago
The other thing which was not obvious - can you extract document metadata and/or hidden text elements?
g0ran|6 months ago
leephillips|6 months ago
My one feature request would be to remove, or provide a version without, the “AI” stuff.
greazy|6 months ago
ivanjermakov|6 months ago
jamatui|6 months ago
[deleted]
unknown|6 months ago
[deleted]
adultSwim|6 months ago
Is .docx edit support a possibility in the future?
unknown|6 months ago
[deleted]
firesteelrain|6 months ago
pandoc can do this
w108bmg|6 months ago
bishwos|6 months ago
angrydingo|6 months ago
acedTrex|6 months ago
Very unfortunate
btbuildem|6 months ago
If you read through that claude.md, it's a well-organized summary of the project, touching on design, architecture, enumerating the functionality implemented so far, future goals, and more. It makes for a pretty great onboarding document for collaborators, tbh.
Have jetpack, will fly.
w108bmg|6 months ago
Hilift|6 months ago
What?
pylotlight|6 months ago
w108bmg|6 months ago