Watch the full demo on YouTube.
shine is a terminal Markdown previewer and docs checker for README, changelog, and release-note workflows.
Preview Markdown without leaving the terminal, then run quick checks for common publishing issues before your docs land.
Current version: 0.1.2.
mmdc)--print, --plain, --outline, --checkgo install github.com/Nithish-Yenaganti/shine/cmd/shine@latest
npm install -g @nk02/shine
Build from source:
git clone https://github.com/Nithish-Yenaganti/shine.git
cd shine
go build -o bin/shine ./cmd/shine
bin/shine version
# Open README.md in the interactive preview
shine README.md
# Preview README.md and reload when it changes
shine --watch README.md
# Preview Markdown from stdin
cat README.md | shine
# Print the styled Markdown output once
shine --print README.md
# Print plain text output without styling
shine --plain README.md
# Show the document heading outline
shine --outline README.md
# Check README.md for common docs issues
shine --check README.md
Local images render inline in the interactive TUI on Kitty-compatible terminals, currently Kitty and Ghostty. Image paths resolve relative to the Markdown file, so  works from README.md.
JPEG and GIF previews are cached as local PNG files to keep image-heavy scrolling and theme changes responsive.
Unsupported terminals, including Apple's default macOS Terminal.app, show a text placeholder instead. --print, --plain, remote images, and missing files also use placeholders.
Mermaid code blocks can render as inline diagrams when mmdc from Mermaid CLI is installed. Without mmdc, or outside supported image terminals, Mermaid blocks stay readable as code with a short fallback note.
Use --check before publishing docs:
shine --check README.md
Checks include:
Example output:
3 markdown warning(s):
- heading "Install" jumps from H1 to H3
- block 5 link file not found: ./missing.md
- block 7 table row 2 column 3 is very long
Other commands:
shine version
shine --version
shine completions zsh > _shine
q quit
j/down scroll down
k/up scroll up
mouse scroll
d/space half-page down
u half-page up
g top
G bottom
/ search
n next search result
N previous search result
o heading outline
r reload file
t/T theme picker
h/H/F1 show help panel
? toggle help panel
Mouse wheel scrolling is tuned for terminal use. Non-wheel mouse input is filtered before redraws, and overlays such as help, outline, search, and the theme picker block document scrolling behind them.
mono is the default black-background theme. Press t or T in the TUI to switch themes.
tomorrow-nightgithubmonocatppuccin-lattecatppuccin-mochaclaudeeverforestjellybeansgothamAliases: daylight, latte, cappuccino, mocha, midnight.
Tagged releases are built by GitHub Actions through GoReleaser.
goreleaser check
goreleaser release --snapshot --clean
Publish:
git tag v0.1.2
git push origin v0.1.2
# Wait for the GitHub release workflow and all release assets
npm run publish:npm -- --access public
The npm publish command checks that 0.1.2 is still available and that the published GitHub release contains every required asset.
Checklist:
go test ./...go vet ./...go build -o bin/shine ./cmd/shinenpm run test:npmnpm run test:publishbin/shine --check README.mdgoreleaser checkgo test ./...
go vet ./...
go build -o bin/shine ./cmd/shine
npm run test:npm
npm run test:publish
MIT. See LICENSE.
35 commits
1 commits
Go
84.8%
JavaScript
15.2%
Watch the full demo on YouTube.
shine is a terminal Markdown previewer and docs checker for README, changelog, and release-note workflows.
Preview Markdown without leaving the terminal, then run quick checks for common publishing issues before your docs land.
Current version: 0.1.2.
mmdc)--print, --plain, --outline, --checkgo install github.com/Nithish-Yenaganti/shine/cmd/shine@latest
npm install -g @nk02/shine
Build from source:
git clone https://github.com/Nithish-Yenaganti/shine.git
cd shine
go build -o bin/shine ./cmd/shine
bin/shine version
# Open README.md in the interactive preview
shine README.md
# Preview README.md and reload when it changes
shine --watch README.md
# Preview Markdown from stdin
cat README.md | shine
# Print the styled Markdown output once
shine --print README.md
# Print plain text output without styling
shine --plain README.md
# Show the document heading outline
shine --outline README.md
# Check README.md for common docs issues
shine --check README.md
Local images render inline in the interactive TUI on Kitty-compatible terminals, currently Kitty and Ghostty. Image paths resolve relative to the Markdown file, so  works from README.md.
JPEG and GIF previews are cached as local PNG files to keep image-heavy scrolling and theme changes responsive.
Unsupported terminals, including Apple's default macOS Terminal.app, show a text placeholder instead. --print, --plain, remote images, and missing files also use placeholders.
Mermaid code blocks can render as inline diagrams when mmdc from Mermaid CLI is installed. Without mmdc, or outside supported image terminals, Mermaid blocks stay readable as code with a short fallback note.
Use --check before publishing docs:
shine --check README.md
Checks include:
Example output:
3 markdown warning(s):
- heading "Install" jumps from H1 to H3
- block 5 link file not found: ./missing.md
- block 7 table row 2 column 3 is very long
Other commands:
shine version
shine --version
shine completions zsh > _shine
q quit
j/down scroll down
k/up scroll up
mouse scroll
d/space half-page down
u half-page up
g top
G bottom
/ search
n next search result
N previous search result
o heading outline
r reload file
t/T theme picker
h/H/F1 show help panel
? toggle help panel
Mouse wheel scrolling is tuned for terminal use. Non-wheel mouse input is filtered before redraws, and overlays such as help, outline, search, and the theme picker block document scrolling behind them.
mono is the default black-background theme. Press t or T in the TUI to switch themes.
tomorrow-nightgithubmonocatppuccin-lattecatppuccin-mochaclaudeeverforestjellybeansgothamAliases: daylight, latte, cappuccino, mocha, midnight.
Tagged releases are built by GitHub Actions through GoReleaser.
goreleaser check
goreleaser release --snapshot --clean
Publish:
git tag v0.1.2
git push origin v0.1.2
# Wait for the GitHub release workflow and all release assets
npm run publish:npm -- --access public
The npm publish command checks that 0.1.2 is still available and that the published GitHub release contains every required asset.
Checklist:
go test ./...go vet ./...go build -o bin/shine ./cmd/shinenpm run test:npmnpm run test:publishbin/shine --check README.mdgoreleaser checkgo test ./...
go vet ./...
go build -o bin/shine ./cmd/shine
npm run test:npm
npm run test:publish
MIT. See LICENSE.
35 commits
1 commits
Go
84.8%
JavaScript
15.2%