Table Enhancer for GitHub is a small, unofficial Chrome extension for making wide tables easier to read in GitHub Markdown file previews. It adds controls directly above each eligible table, so you can focus on the information rather than constantly scrolling sideways.
Install from the Chrome Web Store
The extension runs only on GitHub Markdown blob pages, for example:
https://github.com/owner/repository/blob/main/docs/guide.md
It does not run on issues, pull requests, discussions, repository home pages, or Markdown rendered outside a GitHub blob view.
Open a Markdown file containing a table. Table Enhancer places a compact toolbar immediately above each table. The table stays inside its own horizontal scroll area, preserving the surrounding GitHub page layout.

The toolbar provides Freeze, Filter, Copy as, Fit, Wrap, Reset, and Focus mode. When rows or columns are hidden, it also shows Show hidden.
The extension UI follows Chrome’s display language. English is the default, and Japanese is also supported. If a translated message is unavailable, the English message is shown.
Select Freeze to keep the first displayed rows and leftmost columns in view as you scroll. Enter the number of rows and columns to freeze; use Reset in the panel to clear only the freeze settings.

If a table has a preceding heading, choose Save default to remember those freeze values for tables under the same heading in the same GitHub repository. Defaults are stored locally in your browser and can be changed at any time; they do not apply to other repositories, even when the heading text matches.
Freeze defaults saved by older versions were keyed only by heading text. They are not migrated because their repository cannot be determined safely. Save the default again after updating to use the new repository-specific rule.
Choose the filter icon and type a word or phrase. Matching is case-insensitive and happens immediately. Select the Use regular expression (.*) button to interpret the input as a regular expression; invalid expressions leave all rows visible and show an error. The header remains visible, and Clear filter restores all rows that were not manually hidden.

Filtering is temporary and is not saved as a default.
Hover a column header to reveal its unsorted sort button, then select it to sort the table body by that column. Once selected, the ascending or descending direction remains visible. Repeated selections cycle through ascending, descending, and original Markdown order. Numeric and date-like values are compared by value; other text uses case-insensitive natural ordering.
Sorting is temporary. It preserves the identity of manually hidden and filtered rows as their positions change.
Hover a header cell to reveal its column hide button, or hover the first cell of a row to reveal its row hide button. Hidden items are removed only from your current table view.

Select Show hidden to restore every hidden row and column in that table. Select Reset table view to clear hidden items along with the other temporary table changes.
Use Fit to apply readable widths to the displayed columns and wrap long content. Use Wrap to turn wrapping on or off without recalculating widths. You can also drag a column edge in the header row to choose a width yourself.

These changes affect only the current view in your browser; they never modify the GitHub file.
Select Copy as and choose Markdown, CSV, or TSV. The copied content reflects the table as currently shown: manually hidden rows and columns, as well as rows hidden by filtering, are omitted.
This makes it easy to paste a focused subset into a comment, spreadsheet, or another Markdown document.
Select the expand icon to open one table in a full-window workspace. Focus mode keeps your current filter, hidden items, wrapping, widths, and freeze settings. A persistent Focus mode indicator reminds you that you can select Close or press Escape to return to the GitHub file.

The reset icon returns the table to its initial display state. It clears temporary filters, sorting, hidden rows and columns, wrapping, fitted or resized widths, and freeze settings. Saved heading defaults are not deleted.
The screenshots on this page are generated by Playwright with the built extension loaded, using a deterministic GitHub-style fixture. Maintainers can refresh them after a UI change with:
pnpm guide:screenshots
The command writes changed images to docs/store-assets/screenshots/, ready for GitHub Pages deployment. Existing images whose rendered pixels are unchanged are left untouched, so they do not become Git changes because of PNG encoding differences.