{"id":51191456,"url":"https://github.com/rin2yh/pumlv","last_synced_at":"2026-06-27T15:31:26.982Z","repository":{"id":357519689,"uuid":"1237299197","full_name":"rin2yh/pumlv","owner":"rin2yh","description":"A Go-based local PlantUML preview server. Renders in the browser without Java/Docker, with auto-reload on file save.","archived":false,"fork":false,"pushed_at":"2026-06-24T13:47:58.000Z","size":695,"stargazers_count":14,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-24T15:21:43.490Z","etag":null,"topics":["go","plantuml","plantuml-preview","react"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rin2yh.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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-05-13T03:56:18.000Z","updated_at":"2026-06-24T13:48:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rin2yh/pumlv","commit_stats":null,"previous_names":["rin2yh/pumlv"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/rin2yh/pumlv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rin2yh%2Fpumlv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rin2yh%2Fpumlv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rin2yh%2Fpumlv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rin2yh%2Fpumlv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rin2yh","download_url":"https://codeload.github.com/rin2yh/pumlv/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rin2yh%2Fpumlv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34859072,"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-27T02:00:06.362Z","response_time":126,"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":["go","plantuml","plantuml-preview","react"],"created_at":"2026-06-27T15:31:25.941Z","updated_at":"2026-06-27T15:31:26.977Z","avatar_url":"https://github.com/rin2yh.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pumlv\n\nA Go-based local preview server for PlantUML. Just run `pumlv \u003cpath\u003e` and the diagram opens in your browser, re-rendering automatically whenever you save the file. No Java, no Docker, no external server required.\n\n- Renders entirely in the browser via PlantUML's TeaVM build — your source never leaves your machine\n- Live re-render over SSE the moment you save\n- Standalone process — works regardless of which editor you use\n\n## Installation\n\nDownload a pre-built binary from the [releases page](https://github.com/rin2yh/pumlv/releases).\n\nOr with [mise](https://mise.jdx.dev/) ([GitHub backend](https://mise.jdx.dev/dev-tools/backends/github.html)):\n\n```sh\nmise use -g github:rin2yh/pumlv\n```\n\n\n## Usage\n\n```sh\npumlv ./docs                      # watch a directory recursively\npumlv ./design/seq.puml           # a single file\npumlv ./docs ./design/seq.puml    # multiple arguments are allowed\n```\n\n### Flags\n\n| Flag | Default | Description |\n|------|---------|-------------|\n| `--port` | `0` (pick a free port) | TCP port |\n| `--host` | `127.0.0.1` | Bind host |\n| `--no-open` | `false` | Do not launch the browser automatically |\n| `--ext` | `.puml,.plantuml,.iuml,.wsd` | File extensions to watch |\n\nOn startup pumlv prints `pumlv listening on http://127.0.0.1:\u003cport\u003e` and opens the URL in your default browser. Press `Ctrl+C` for a graceful shutdown.\n\n## Background\n\nExisting PlantUML preview options have a few rough edges:\n\n- Most tools are editor plugins (VSCode / IntelliJ / Vim, etc.) that stop working the moment you switch editors. pumlv runs as a standalone process, independent of any editor.\n- Local rendering typically requires installing Java and Graphviz, or running Docker as separate infrastructure. pumlv has no runtime dependencies beyond the binary itself.\n- Web-based tools (e.g. plantuml.com) send your diagram source to an external server. pumlv renders entirely in the browser via PlantUML's TeaVM build; your source never leaves your machine.\n- Editor plugins can only preview the file currently open in that editor. pumlv accepts any file or directory path on the command line, regardless of what you have open.\n\npumlv aims to remove all of these pain points.\n\n\u003e This repository is inspired by [k1LoW/mo](https://github.com/k1LoW/mo) (a local preview server for Markdown).\n\n## About PlantUML rendering\n\nTo keep everything in the browser, this project bundles PlantUML's official TeaVM build (`plantuml.js` ~7 MB + `viz-global.js` ~1.4 MB). `internal/frontend/scripts/fetch-plantuml-core.mjs` downloads `js-plantuml-SNAPSHOT.zip` from the [plantuml/plantuml releases](https://github.com/plantuml/plantuml/releases/tag/snapshot), extracts the two files, Vite copies them into `internal/static/dist/`, and `go:embed` then bundles them into the final binary. PlantUML source is never sent to any external service.\n\n## License\n\nMIT. See [LICENSE](./LICENSE).\n\nThird-party license texts are bundled in [`CREDITS`](./CREDITS); run `pumlv credits` to print them.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frin2yh%2Fpumlv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frin2yh%2Fpumlv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frin2yh%2Fpumlv/lists"}