grip(1)
π grip(1) β the manual, but make it slay
okay bestie, welcome to grip(1) β yes, that's the manual page name, it's giving very "section 1, user commands" β¨. Sit down, grab a boba, and let me tell you about the absolute icon that is grip. π«Ά
β¨ NAME β¨
grip β preview your GitHub Markdown files locally, like your Readme but make it you. πΈ
π SYNOPSIS π
grip [options] [PATH] [ADDRESS]
π DESCRIPTION π
So. grip is a command-line server application written in Python, and what it does is it uses the GitHub markdown API to render a local readme file. The styles? Pulled directly from GitHub, babes. Which means you know exactly how it's gonna look when it goes live. No guessing, no vibes-based layout crises. π
And the best part β literal magic β changes you make to the Readme are instantly reflected in the browser without needing a page refresh. Obsessed. π₯
β οΈ Privacy notice: by default all documents will be sent to GitHub (Microsoft). Yeah. Heads up on that one, bestie. π
π§ OPTIONS π§
PATH is a file to render, or a directory containing README.md. Use - for stdin.
ADDRESS is what to listen on β of the form HOST[:PORT], or just PORT.
Then the flags, in all their glory:
--user-contentβ Render as user-content, like comments or issues would be.--context=<repo>β The repository context. Only taken into account when you're using--user-content, so don't bother otherwise, fr.--user=<username>β A GitHub username, for API authentication. If you use it without the--passoption, an upcoming password input will be necessary.--pass=<password>β A GitHub password or auth token, for API auth.--wideβ Renders wide, i.e. when the side nav is collapsed.--clearβ Clears the cached styles and assets, then exits. Spring cleaning energy. π§Ή--exportβ Exports to<path>.htmlorREADME.mdinstead of serving, optionally using[<address>]as the out file (-for stdout).--no-inlineβ Link to styles instead of inlining them, when using--export.-b,--browserβ Open a tab in the browser after the server starts. Main character move. π--api-url=<url>β Specify a different base URL for the github API, for example that of a Github Enterprise instance. Default is the public API:https://api.github.com--title=<title>β Manually sets the page's title. The default is the filename.--norefreshβ Do not automatically refresh the Readme content when the file changes.--quietβ Do not print to the terminal. π€«-V,--versionβ Version info.-h,--helpβ Show help message and exit.
πΈ ENVIRONMENT VARIABLES πΈ
GRIPHOMEβ Specify an alternativesettings.pylocation,"~/.grip"by default.GRIPURLβ The URL of the Grip server,"/__/grip"by default.
β EXAMPLES β
To render the readme of a repository:
$ grip
Now open a browser and visit http://localhost:6419. Or run with -b and Grip will open a new browser tab for you. β¨
You can also specify a port:
$ grip 80
Or an explicit file:
$ grip AUTHORS.md
Alternatively, you could just run grip and visit http://localhost:6419/AUTHORS.md since Grip supports relative URLs. Sneaky but valid. π
You can combine the previous examples:
$ grip AUTHORS.md 80
Or specify a hostname instead of a port.:
$ grip CHANGES.md 0.0.0.0
Or provide both:
$ grip . 0.0.0.0:80
You can even bypass the server and export to a single HTML file, with all the styles and assets inlined:
$ grip --export
Control the output name with the second argument:
$ grip README.md --export readme.html
If you're exporting a bunch of files, you can prevent styles from being inlined to save space with --no-inline:
$ grip README.md --export --no-inline introduction.html
Reading from stdin:
$ cat README.md | grip -
Writing to stdout:
$ grip AUTHORS.md --export - | bcat
And both is also supported, allowing you to use Grip with other programs:
$ cat README.md | grip --export - | less
Rendering as user-content like comments and issues is also supported, with an optional repository context for linking to issues:
$ grip --user-content --context=joeyespo/grip
π BUGS π
Found a bug? Bestie, don't suffer in silence. Bugs should be reported as issues at the project's GitHub page: <https://github.com/joeyespo/grip/issues> π
π«Ά AUTHOR π«Ά
Grip is developed by Joe Esposito <joe@joeyespo.com>.
This man page was written by Tiago Ilieve <tiago.myhro@gmail.com> for the Debian distribution (but it may be used by others).
okay that's the whole thing, you're basically a grip expert now, no cap. π¦ the page you just read is dated 28 October 2025, and in case you were wondering about the source β yeah, it's Debian's grip(1) manual, section 1, user commands, living its best life. go render something iconic. π β¨
π¦ where this page comes from
- ubuntu resolute: grip 4.6.1-3 Β· MIT
- ubuntu stonking: grip 4.6.1-3 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms