{"id":13811450,"url":"https://github.com/andrewchambers/hermes","last_synced_at":"2025-04-09T19:20:15.212Z","repository":{"id":147602264,"uuid":"246753273","full_name":"andrewchambers/hermes","owner":"andrewchambers","description":"Hermes software environment manager","archived":false,"fork":false,"pushed_at":"2020-06-06T01:41:03.000Z","size":406,"stargazers_count":315,"open_issues_count":41,"forks_count":8,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-09T19:19:59.484Z","etag":null,"topics":["deployment-automation","package-manager"],"latest_commit_sha":null,"homepage":"","language":"C","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/andrewchambers.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":"support/dev-env.hpkg","governance":null,"roadmap":null,"authors":null}},"created_at":"2020-03-12T05:42:30.000Z","updated_at":"2025-04-05T21:25:31.000Z","dependencies_parsed_at":"2023-06-17T14:30:19.838Z","dependency_job_id":null,"html_url":"https://github.com/andrewchambers/hermes","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewchambers%2Fhermes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewchambers%2Fhermes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewchambers%2Fhermes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewchambers%2Fhermes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andrewchambers","download_url":"https://codeload.github.com/andrewchambers/hermes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248094991,"owners_count":21046770,"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":["deployment-automation","package-manager"],"created_at":"2024-08-04T04:00:21.366Z","updated_at":"2025-04-09T19:20:15.178Z","avatar_url":"https://github.com/andrewchambers.png","language":"C","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=JX43FQRV6H7XW\u0026source=url"],"categories":["package-manager","Package Management"],"sub_categories":["Graphics"],"readme":"# Hermes\n\nHermes is a software environment manager used for installing and uninstalling\ncollections of software. Hermes may be considered similar to a package manager, but certainly\nworks quite differently from traditional tools in this space.\n\nHermes helps with tasks similar to other tools like [homebrew](https://brew.sh/)\nor perhaps [docker](https://www.docker.com/), but in a totally different way. For those who know\n[Nix](https://nixos.org/) and [Guix](https://guix.gnu.org/), things will be familiar, but\nthere are also some [key differences](./doc/compared-to-nix-and-guix.md).\n\n## So what does it do?\n\nWhen using Hermes your *entire* software stack is defined and saved in a set of\npackage definitions along side the rest of your source code. This means Hermes\ngives you strict reproducible control over your entire software stack. With\na single command you can reliably (and quickly) rebuild a development environment,\ndeployment, docker image or vm image *entirely* from source.\n\nWith Hermes you can also share, review, clone, fork, patch and pin your whole software stack\nthe same way you do with your existing source code.\n\nHermes also provides some nifty features:\n\n* A decentralized packaging model.\n* Easy installation of software over URLS.\n* Easy transfer of software environments between computers.\n* Avoidance of version conflicts with already installed software.\n* Installing software from source code.\n* Strong support for software auditability.\n* Transparent build caching.\n* Remote package builds.\n* Remote deployments.\n* Atomic upgrades and rollback.\n* and more...\n\n## What does using Hermes look like?\n\n- See my annoucement [blog post](https://acha.ninja/blog/introducing_hermes/).\n- See the [quickstart guide](./doc/quick-start/quick-start.md).\n- Browse some package definitions [here](https://github.com/andrewchambers/hpkgs).\n\n\n## Does Hermes replace my language package manager like npm,jpm,cargo,pip... ?\n\nNo.\n\nHermes can be used to manage the system level dependencies during software\ndevelopment while still using these tools normally. For example you could install\na specific C compiler and libcurl with hermes, but just invoke npm as normal for your\njavascript project.\n\nDuring deployment of your software you can invoke these tools from within\npackage definitions to build your software in a well defined sandbox.\nThese packages can then be deployed to remote machines using 'hermes cp'.\n\n## Does Hermes replace my system package manager?\n\nMaybe.\n\nHermes packages are totally separate from your system packages. When you enter\na hermes environment, your PATH and other environment variables are set to paths\nwithin the hermes package store.\n\nHermes does not care what other package managers you use, and does not install\npackages in the traditional ```/bin``` path so will not conflict with them.\n\n## How can you help?\n\n- Give hermes and hpkgs a star on github.\n- [Donate](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=JX43FQRV6H7XW\u0026source=url) to\n  the project to keep it sustainable and show interest.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewchambers%2Fhermes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrewchambers%2Fhermes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewchambers%2Fhermes/lists"}