Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@ curl -fsSL https://raw.githubusercontent.com/tinyhumansai/openhuman/main/scripts
irm https://raw.githubusercontent.com/tinyhumansai/openhuman/main/scripts/install.ps1 | iex
```

Arch Linux package maintainers can use the [`openhuman-bin` AUR recipe](./packages/arch/openhuman-bin/);
once published, Arch users can install it with `yay -S openhuman-bin`.

# What is OpenHuman?

OpenHuman is an open-source agentic assistant designed to integrate with you in your daily life. Each bullet links to the deeper writeup in the [docs](https://tinyhumans.gitbook.io/openhuman/).
Expand Down
20 changes: 20 additions & 0 deletions gitbooks/developing/getting-set-up.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,26 @@ Installer behavior:
- macOS: installs `OpenHuman.app` into `~/Applications`
- Linux x64: installs AppImage as `~/.local/bin/openhuman` and writes a desktop entry

### Arch Linux package recipe

The repository includes an `openhuman-bin` AUR recipe at
[`packages/arch/openhuman-bin`](../../packages/arch/openhuman-bin/). It uses the
official x86_64 AppImage as the binary source, extracts the bundled application
tree during `makepkg`, installs a desktop entry, and exposes `/usr/bin/openhuman`.

Until the package is published on AUR, build it locally on Arch:

```bash
cd packages/arch/openhuman-bin
makepkg --syncdeps --install
```

After publication, Arch users can install it with:

```bash
yay -S openhuman-bin
```

Useful flags:

```bash
Expand Down
10 changes: 5 additions & 5 deletions gitbooks/features/platform.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ OpenHuman is a native desktop application, not a browser extension, not an Elect

## Supported platforms

| Platform | Architectures | Distribution |
| ----------- | -------------------- | -------------------------- |
| **macOS** | Intel, Apple Silicon | `.dmg` installer, Homebrew |
| **Windows** | x64, ARM64 | `.msi` installer |
| **Linux** | x64 | AppImage, `.deb` |
| Platform | Architectures | Distribution |
| ----------- | -------------------- | ---------------------------------------------- |
| **macOS** | Intel, Apple Silicon | `.dmg` installer, Homebrew |
| **Windows** | x64, ARM64 | `.msi` installer |
| **Linux** | x64 | AppImage, `.deb`, AUR recipe (`openhuman-bin`) |

***

Expand Down
23 changes: 23 additions & 0 deletions packages/arch/openhuman-bin/.SRCINFO
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
pkgbase = openhuman-bin
pkgdesc = Personal AI desktop assistant for communities
pkgver = 0.54.0
pkgrel = 1
url = https://github.com/tinyhumansai/openhuman
arch = x86_64
license = GPL-3.0-only
optdepends = xdg-utils: open browser, file, and URL handlers from the desktop app
optdepends = libsecret: Secret Service credential storage on some Linux desktops
optdepends = fuse2: run the downloaded AppImage directly outside this package
provides = openhuman
conflicts = openhuman
options = !strip
source = OpenHuman_0.54.0_amd64.AppImage::https://github.com/tinyhumansai/openhuman/releases/download/v0.54.0/OpenHuman_0.54.0_amd64.AppImage
source = openhuman
source = openhuman.desktop
source = openhuman.svg
sha256sums = 2f76bc5b6f3a0e6cf2765f414a82b26903337720d190b4f9b26a5d7e2508abab
sha256sums = dbd46b85be9d551363b44ec19613a5fb5df4a08f5b618cb38ffe8891a0f31eeb
sha256sums = e357a666334449273047c02740a3e3fa34c58ff00304af8b3ec1a080a9574e99
sha256sums = 7892979a084a5e2bbc73c32fe0f447918aa9b458c50bf0bb856469c837e6401c

pkgname = openhuman-bin
49 changes: 49 additions & 0 deletions packages/arch/openhuman-bin/PKGBUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Maintainer: OpenHuman <hello@tinyhumans.ai>

pkgname=openhuman-bin
pkgver=0.54.0
pkgrel=1
pkgdesc='Personal AI desktop assistant for communities'
arch=('x86_64')
url='https://github.com/tinyhumansai/openhuman'
license=('GPL-3.0-only')
optdepends=(
'xdg-utils: open browser, file, and URL handlers from the desktop app'
'libsecret: Secret Service credential storage on some Linux desktops'
'fuse2: run the downloaded AppImage directly outside this package'
)
provides=('openhuman')
conflicts=('openhuman')
options=('!strip')
source=(
"OpenHuman_${pkgver}_amd64.AppImage::https://github.com/tinyhumansai/openhuman/releases/download/v${pkgver}/OpenHuman_${pkgver}_amd64.AppImage"
'openhuman'
'openhuman.desktop'
'openhuman.svg'
)
sha256sums=(
'2f76bc5b6f3a0e6cf2765f414a82b26903337720d190b4f9b26a5d7e2508abab'
'dbd46b85be9d551363b44ec19613a5fb5df4a08f5b618cb38ffe8891a0f31eeb'
'e357a666334449273047c02740a3e3fa34c58ff00304af8b3ec1a080a9574e99'
'7892979a084a5e2bbc73c32fe0f447918aa9b458c50bf0bb856469c837e6401c'
)

prepare() {
cd "${srcdir}"
rm -rf squashfs-root
chmod +x "OpenHuman_${pkgver}_amd64.AppImage"
"./OpenHuman_${pkgver}_amd64.AppImage" --appimage-extract >/dev/null
test -x squashfs-root/shared/bin/OpenHuman
}

package() {
install -d "${pkgdir}/opt/openhuman"
cp -a --no-preserve=ownership "${srcdir}/squashfs-root/." \
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[minor] cp -a preserves the file modes from inside the AppImage (-a implies --preserve=mode). Some AppImages pack files with overly permissive modes (e.g. 0777). Worth normalizing after the copy:

chmod -R u=rwX,go=rX "${pkgdir}/opt/openhuman"

"${pkgdir}/opt/openhuman/"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[minor] cp -a copies the entire squashfs-root into /opt/openhuman/, including unused top-level files from the AppImage (AppRun, root .desktop, root icon, etc.). Only shared/ is actually referenced by the launcher.

Consider installing just the subtree the launcher needs:

cp -a --no-preserve=ownership "${srcdir}/squashfs-root/shared" \
  "${pkgdir}/opt/openhuman/shared"

This trims the install footprint and avoids shipping dead files.

install -Dm755 "${srcdir}/openhuman" \
"${pkgdir}/usr/bin/openhuman"
install -Dm644 "${srcdir}/openhuman.desktop" \
"${pkgdir}/usr/share/applications/openhuman.desktop"
install -Dm644 "${srcdir}/openhuman.svg" \
"${pkgdir}/usr/share/icons/hicolor/scalable/apps/openhuman.svg"
}
35 changes: 35 additions & 0 deletions packages/arch/openhuman-bin/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# openhuman-bin AUR package

This directory contains the Arch Linux `openhuman-bin` package recipe. It uses
the official x86_64 AppImage from GitHub Releases as the binary source, extracts
its bundled application tree during `makepkg`, installs a desktop entry, and
adds `/usr/bin/openhuman` as a launcher.

The package does not launch the AppImage runtime directly. Arch-family distros
have reported `Interpreter not found!` from the bundled AppImage runtime on
v0.54.0, so the launcher executes the extracted `shared/bin/OpenHuman` binary
with the bundled library path instead.

## Local package test

From this directory on an Arch Linux host:

```bash
makepkg --syncdeps --clean --cleanbuild --force
pacman -Qip openhuman-bin-*.pkg.tar.zst
```

## Release bump

1. Set `pkgver` to the new stable release version without the leading `v`.
2. Update the AppImage SHA-256 checksum from the GitHub release asset.
3. Update the launcher checksum if `openhuman` changes.
4. Regenerate `.SRCINFO` before publishing to AUR:

```bash
updpkgsums
makepkg --printsrcinfo > .SRCINFO
```

The AUR repository should contain `PKGBUILD`, `.SRCINFO`, `openhuman`,
`openhuman.desktop`, and `openhuman.svg`.
8 changes: 8 additions & 0 deletions packages/arch/openhuman-bin/openhuman
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
set -euo pipefail

appdir=/opt/openhuman
export SHARUN_LDNAME="${SHARUN_LDNAME:-ld-linux-x86-64.so.2}"
export LD_LIBRARY_PATH="${appdir}/shared/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"

exec "${appdir}/shared/bin/OpenHuman" "$@"
11 changes: 11 additions & 0 deletions packages/arch/openhuman-bin/openhuman.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[Desktop Entry]
Name=OpenHuman
Comment=Personal AI desktop assistant
Exec=/usr/bin/openhuman %U
Terminal=false
Type=Application
Icon=openhuman
Categories=Utility;Office;Network;
StartupNotify=true
StartupWMClass=OpenHuman
MimeType=x-scheme-handler/openhuman;
4 changes: 4 additions & 0 deletions packages/arch/openhuman-bin/openhuman.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading