📄 Nishi Browser — Document Omnitool

Preview, interact with, and print documents inline — no external viewers, no download-only dead ends.

The browser is the workhorse of the system. It renders documents natively and sovereignly — your files never leave your hardware, and every viewer is a focused Nishi organ, not third-party code.

Live now — click to open inline

.docx

Word document

Headings, bold/italic, and tables rendered as a real page — with a Download .docx button.

Open the venue agreement →
.md

Markdown

Headings, lists, code blocks, quotes, and links — the format your READMEs and notes live in.

Open a markdown doc →
.csv

Spreadsheet (CSV)

Tabular data as a clean, sortable-looking table with a sticky header row.

Open a budget sheet →
.pdf

PDF (text-layer)

Sovereign extractor (FlateDecode + per-font ToUnicode) → filtered, readable text preview of a real 634KB research paper.

Open a Cochrane review →
.xlsx

Excel workbook

SpreadsheetML → chart + table; formulas compute (=SUM() evaluated sovereignly) and pivots group-by with SUM/COUNT/AVG.

Budget workbook →   Pivot by owner →
.pptx

Slide deck

PresentationML → 16:9 slide cards, inline. Authored, read, and rendered by nx_pptx (v1: titles + bullets).

Open the reunion deck →

On the roadmap — one registry row each

.ics / .json / img

& more

Calendars, structured data, images — each a small organ.

Also on NishiOS — the OS opens documents natively

The same capability runs on the sovereign NishiOS: boot the OS image to long mode on the sovereign emulator, and the OS app layer opens report.md through its on-OS viewer registry (renderers link as libraries — no process fork on the OS yet) into a NISHI DOCS desktop window. Boot-gated, 12/12 KATs with negative controls. See the boot-to-document proof →

Why it doesn't bloat the browser

The browser core never grows. A data-driven registry — knowledge/doc_viewers.conf — maps each file extension to a focused sovereign renderer organ. The dispatcher nx_doc_view detects the format, routes to the renderer, and hands the browser plain HTML it already knows how to paint. Supporting a new format is one registry row plus one small organ — the dispatcher and the browser never change.