Files
omarchy-pkgs/pkgbuilds/hermes-agent/PKGBUILD
T
Omabot ee051b4f8e Refresh the checksums for the wrapper and desktop entry
Both files changed after the sums were generated -- the wrapper learned to
fall back to hermes when invoked under an unknown name, and the desktop entry
dropped its second main category -- so makepkg rejected them.
2026-08-19 02:05:28 -07:00

74 lines
2.5 KiB
Bash

# Maintainer: David Heinemeier Hansson <david@hey.com>
# Hermes pins every one of its ~120 dependencies with == and declares
# Requires-Python >=3.11,<3.14, so it can neither be built against Arch's
# Python nor share the python-* packages, and Arch's next Python bump would
# break any venv this package built. So the package ships a wrapper rather than
# the application: mise gives Hermes a private, supported environment on first
# run and keeps it current, the arrangement omarchy-mise-install already makes
# for the other coding agents. pkgver therefore tracks the wrapper, not Hermes.
pkgname=hermes-agent
pkgver=1.0.0
pkgrel=1
pkgdesc='The self-improving AI agent that grows with you'
arch=('any')
url='https://github.com/NousResearch/hermes-agent'
license=('MIT')
depends=(
'hicolor-icon-theme'
'mise'
'uv' # mise's pipx backend refuses to run without uv or pipx
'xdg-terminal-exec'
)
optdepends=(
'chromium: browser automation tools'
'ffmpeg: text-to-speech voice messages'
'git: version control integration'
'nodejs: browser-use CLI and MCP servers'
'ripgrep: faster file search'
)
makedepends=('imagemagick')
options=('!debug')
source=('hermes.sh'
'hermes.desktop'
'hermes.png')
sha256sums=('39a13f25b2a1616b55da19400045630e6b0900140444a4457d7e0ff58208badb'
'0fee8e42dce35e7eee0e6b0ee296cc90ddf192f0f9b8297b7e5ea66800d94159'
'd60d164e24fdcf6532133b8ea43c77a201e4b9e9dbc396187b58d51d8590ef52')
build() {
# Upstream ships one 1024x1024 master. Menus and the dock ask for the small
# sizes, and letting them downscale a 1024px portrait themselves is what
# makes it a smudge at 48px.
local size
for size in 512 256 128 64 48; do
magick "$srcdir/hermes.png" -resize "${size}x${size}" "$srcdir/hermes-${size}.png"
done
}
package() {
install -Dm755 "$srcdir/hermes.sh" "$pkgdir/usr/bin/hermes"
# Hermes' other two entry points. The wrapper dispatches on the name it was
# invoked under, so these are symlinks rather than copies.
ln -s hermes "$pkgdir/usr/bin/hermes-agent"
ln -s hermes "$pkgdir/usr/bin/hermes-acp"
install -Dm644 "$srcdir/hermes.desktop" \
"$pkgdir/usr/share/applications/hermes.desktop"
install -Dm644 "$srcdir/hermes.png" \
"$pkgdir/usr/share/icons/hicolor/1024x1024/apps/hermes.png"
local size
for size in 512 256 128 64 48; do
install -Dm644 "$srcdir/hermes-${size}.png" \
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/hermes.png"
done
}