{"id":50572086,"url":"https://github.com/brege/ghrm","last_synced_at":"2026-06-04T19:03:24.892Z","repository":{"id":353033424,"uuid":"1215478630","full_name":"brege/ghrm","owner":"brege","description":"GitHub-like filesystem explorer and Markdown renderer","archived":false,"fork":false,"pushed_at":"2026-05-31T15:49:39.000Z","size":3206,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-31T17:20:42.400Z","etag":null,"topics":["airspeed-velocity","file-explorer","github-flavored-markdown","github-readme","lit","lua","neovim","nvim","productivity","readme","rust","theme","typescript"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brege.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-20T00:37:39.000Z","updated_at":"2026-05-31T15:48:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"3056ff6a-845a-447c-b565-c04fff4ede3c","html_url":"https://github.com/brege/ghrm","commit_stats":null,"previous_names":["brege/ghrm"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/brege/ghrm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brege%2Fghrm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brege%2Fghrm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brege%2Fghrm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brege%2Fghrm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brege","download_url":"https://codeload.github.com/brege/ghrm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brege%2Fghrm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33916321,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-04T02:00:06.755Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["airspeed-velocity","file-explorer","github-flavored-markdown","github-readme","lit","lua","neovim","nvim","productivity","readme","rust","theme","typescript"],"created_at":"2026-06-04T19:03:24.128Z","updated_at":"2026-06-04T19:03:24.886Z","avatar_url":"https://github.com/brege.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/brege/ghrm\"\u003e\u003cimg src=\"assets/img/favicon.svg\" width=\"96\" height=\"96\" alt=\"ghrm logo\"\u003e\u003c/a\u003e\n  \u003ch1 align=\"center\"\u003eghrm\u003c/h1\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/brege/ghrm/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/brege/ghrm/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-GPL--3.0-blue\" alt=\"License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nExplore your filesystem as if it were on GitHub.\n\nGhrm supports all **G**it**H**ub-flavored Markdown features, **R**ead**m**e and source code viewing, detects repositories, has instant file retrieval, and works completely offline. It makes file browsing and file reading feel more continuous and much easier to work on projects mixing images, HTML, large tables and JSON and other assets in your browser. You get both the backend performance of Rust and the multimedia performance of your browser.\n\n## Supported Features\n\n- **Works offline**\n- Live reloading\n- Preview Markdown, source code, and images\n- Light-and-dark theme\n\n### File explorer\n\n- Search instantly by path and content\n- Git history metadata\n- Filters for gitignores, excludes, custom groups\n- Sorting and breadcrumb navigation\n\n### Markdown\n\n- Syntax highlighting\n- Admonitions `[!NOTE]`\n- Mermaid diagrams\n- KaTeX math\n- GeoJSON and TopoJSON maps (exp.)\n\n### Terminal\n\n```bash\nghrm .\n```\n\n### Neovim\n\n```lua\n:Ghrm\n```\n\n## Ethos\n\nI made Ghrm because when I lose internet/power, I often turn toward documentation and repo-gardening to stay occupied while online resources are unavailable. On first run, ghrm locally downloads the browser libraries from CDNs and, outside of sources or maps you may already have in your Markdown, never touches the internet again. It renders Markdown and file trees the exact same way as GitHub does. There's zero mystery what your docs are going to look like after you push.\n\nGhrm is non-mutating. It's not meant to be a general git repo manager.\n\nYou can use `--bind 0.0.0.0` to connect to a ghrm instance from other devices in your network. It's automatically password protected, set via [`config.toml`](config.example.toml).\n\n## Install\n\n```bash\ncargo install --git https://github.com/brege/ghrm ghrm\n```\n\n## Usage\n\nOne file.\n```bash\nghrm README.md\n```\n\nMultiple files, recursively.\n```bash\nghrm ~/src\n```\n\nOpens a live-reloading preview in your browser. Edits to the file in your editor are reflected automatically on save.\n\n## Neovim\n\nAdd to your lazy.nvim config:\n\n```lua\n{ \"brege/ghrm\" end }\n```\n\nCommands: `:Ghrm` to start, `:GhrmStop` to stop, or just exit nvim.\n\n### Examples\n\n- [Basics](smoke/basics.md)\n- [Diagrams](smoke/diagrams.md)\n- [Languages](smoke/languages.md)\n\n```bash\nghrm smoke/basics.md\nghrm smoke/diagrams.md\nghrm smoke/languages.md\n```\n\n## Uninstall\n\n```bash\nghrm --clean\ncargo uninstall ghrm\n```\n\n## Inspiration\n\n- [fd](https://github.com/sharkdp/fd)\n- [ripgrep](https://github.com/BurntSushi/ripgrep)\n- [tokei](https://github.com/XAMPPRocky/tokei)\n- [onefetch](https://github.com/o2sh/onefetch)\n\n## Reference\n\n- [Server](src/README.md)\n- [UI](ui/README.md)\n- [Benchmarks](bench/README.md)\n\n## License\n\n[GPL-3.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrege%2Fghrm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrege%2Fghrm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrege%2Fghrm/lists"}