{"id":15544209,"url":"https://github.com/jorgenpt/hermes","last_synced_at":"2025-04-13T18:07:44.581Z","repository":{"id":136712068,"uuid":"367518392","full_name":"jorgenpt/Hermes","owner":"jorgenpt","description":"An Unreal Engine plugin that allows direct (deep) links into the Unreal editor","archived":false,"fork":false,"pushed_at":"2023-09-19T04:25:07.000Z","size":2894,"stargazers_count":146,"open_issues_count":6,"forks_count":11,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-10-03T12:34:27.905Z","etag":null,"topics":["ue4","ue4-plugin","ue5","ue5-plugin","unreal","unreal-engine"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jorgenpt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"jorgenpt","ko_fi":"jorgenpt"}},"created_at":"2021-05-15T01:51:26.000Z","updated_at":"2024-09-24T03:14:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"49e735e6-5342-465f-915d-69aae138ea9f","html_url":"https://github.com/jorgenpt/Hermes","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorgenpt%2FHermes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorgenpt%2FHermes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorgenpt%2FHermes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorgenpt%2FHermes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jorgenpt","download_url":"https://codeload.github.com/jorgenpt/Hermes/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248758435,"owners_count":21156957,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["ue4","ue4-plugin","ue5","ue5-plugin","unreal","unreal-engine"],"created_at":"2024-10-02T12:29:45.907Z","updated_at":"2025-04-13T18:07:44.544Z","avatar_url":"https://github.com/jorgenpt.png","language":"C++","funding_links":["https://github.com/sponsors/jorgenpt","https://ko-fi.com/jorgenpt"],"categories":[],"sub_categories":[],"readme":"# \u003cimg src=\"assets/hermes_icon.png?raw=true\" width=\"24\"\u003e Hermes URLs for Unreal Engine\n\nHermes URLs is a plugin for Unreal Engine that out of the box allows you to copy URLs to arbitrary assets in your project and share them with your team e.g. through Slack. Those links will then directly open the Unreal Editor to the linked asset.\n\nIn addition, Hermes provides easy-to-use APIs to register your own endpoints, so that you can create other direct deep links into the editor. E.g. you could create links that run automatic tests, link directly to a settings page, or whatever else strikes your fancy!\n\nBig thanks to Krista A. Leemhuis for the amazing icons!\n\n\n## Setup\n\nHermes officially supports UE5 and is backwards compatible with UE4 version 4.27. Pull requests to support older versions are welcome.\n\n1. Clone this repository into your project's `Plugins` folder\n1. Start your editor - the URL is automatically registered when the editor first starts\n\nBy default, Hermes will register URIs that match the project name of your project. If you need more control over the scheme used by these URIs, you can use the `HermesBranchSupport` plugin which lives next to `HermesCore`, which lets you include the branch name in the URI scheme. You'll need to enable `HermesBranchSupport` in your .uproject, and then you can go to Edit \u003e Preferences and find \"Hermes URLs - Branch Support\" under Plugins to configure it.\n\nHermes relies on [hermes_urls][hermes_urls] to register with the OS and dispatch URL requests. It's a small Rust project, and its binaries are checked in to this repository (in [HermesCore/Source/HermesURLHandler][hermesurlhandler]) for convenience's sake, but feel free to review the source and build your own if downloading EXE files from the internet puts you at (understandable) unease.\n\n\n## Using\n\nOnce you've set up Hermes, you should be able to right click any asset in the content browser and see a new \"*Copy URL that reveals asset*\" option:\n\n[\u003cimg src=\"README_contentbrowser.png?raw=true\" width=50%\u003e](README_contentbrowser.png?raw=true)\n\nSimilarly, when you've opened any asset in the asset editor, you should see a new \"*Copy URL that opens asset*\" option in the \"Asset\" option from the menu bar:\n\n[\u003cimg src=\"README_asseteditor.png?raw=true\" width=50%\u003e](README_asseteditor.png?raw=true)\n\n\n## Extending\n\nHermes is intended to be pretty customizable and extendible. Feel free to [reach out][email] if you have any questions, or send a pull request if you think your functionality should be a part of the core Hermes experience!\n\n### Creating custom URLs with your own functionality\n\nTo see how to create your own handler for custom URLs you can look at [HermesContentEndpoint.cpp][hermescontentendpoint-cpp], which is the implementation of the asset links. The editor integration that lets you copy those links to the clipboard lives in [HermesContentEndpointEditorExtension.cpp][hermescontentendpointeditorextension-cpp].\n\nYou can create a similar module in your own project and depend on `HermesServer` from your module, and you should be good to go.\n\n### Controlling what URL scheme / protocol your links have\n\nIf you want to have more control over the URL scheme / protocol than `Hermes` and `HermesBranchSupport` gives you, you can create your own `IHermesUriSchemeProvider`. It is a very small C++ interface that you register as a modular feature -- all you need to implement is a `TOptional\u003cFString\u003e GetPreferredScheme()` method. You can use [HermesBranchSupport.cpp][hermesbranchsupport-cpp] as a starting point for developing your own `IHermesUriSchemeProvider` to override the URI scheme used.\n\n\n## License\n\n[The icon](assets/hermes_icon.png) is copyright (c) 2022 [Jørgen P. Tjernø][email]. All Rights Reserved.\n\nHermes URLs is licensed under either of\n\n * Apache License, Version 2.0\n   ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)\n * MIT license\n   ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)\n\nat your option.\n\n\n## Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be\ndual licensed as above, without any additional terms or conditions.\n\n[hermes_urls]: https://github.com/jorgenpt/hermes_urls\n[hermesurlhandler]: HermesCore/Source/HermesURLHandler\n[hermescontentendpoint-cpp]: HermesCore/Source/HermesContentEndpoint/Private/HermesContentEndpoint.cpp\n[hermescontentendpointeditorextension-cpp]: HermesCore/Source/HermesContentEndpoint/Private/HermesContentEndpointEditorExtension.cpp\n[hermesbranchsupport-cpp]: HermesBranchSupport/Source/HermesBranchSupport/Private/HermesBranchSupport.cpp\n[email]: mailto:jorgen@tjer.no\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjorgenpt%2Fhermes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjorgenpt%2Fhermes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjorgenpt%2Fhermes/lists"}