update.yml commits as eva. Closes #11.
grok-bot-bin
Unofficial Arch / CachyOS package of the official Grok Bot .deb. Temporary until upstream packages for Arch.
Not affiliated with Cursor / SpaceXAI. The app binary is unchanged; this only repacks it for pacman.
Install (build locally)
This tree packages 0.36.0 (pkgver / pkgrel=1 in PKGBUILD). makepkg -si from git tip builds that version even before a release tag exists.
git clone https://git.s1d3sw1ped.com/s1d3sw1ped/grok-bot-bin.git
cd grok-bot-bin
makepkg -si
With an AUR helper against this git URL:
paru -S grok-bot-bin --aururl https://git.s1d3sw1ped.com
# or:
yay -S grok-bot-bin # after cloning locally / using a custom AUR mirror
Simplest reliable path on CachyOS today:
makepkg -si
Install from a release package
pacman -U installs whatever .pkg.tar.zst is attached on Releases, which lags git tip until someone tags the bump (see Updating). After v0.36.0 is pushed, CI (build.yml) attaches grok-bot-bin-0.36.0-1-x86_64.pkg.tar.zst. Until that asset exists, use makepkg -si for 0.36.0; the newest published asset may still be v0.35.0-2.
curl -LO 'https://git.s1d3sw1ped.com/s1d3sw1ped/grok-bot-bin/releases/download/v0.36.0/grok-bot-bin-0.36.0-1-x86_64.pkg.tar.zst'
sudo pacman -U grok-bot-bin-0.36.0-1-x86_64.pkg.tar.zst
Download first, then pacman -U the local file (LocalFileSigLevel = Optional). Do not pass the remote URL straight to pacman if signatures are required.
Custom pacman repo (optional)
After CI publishes a repo database under Releases (or Packages), add to /etc/pacman.conf:
[grok-bot]
SigLevel = Optional TrustAll
Server = https://git.s1d3sw1ped.com/s1d3sw1ped/grok-bot-bin/releases/latest/download
Exact Server= URL may change once the first repo DB lands; makepkg -si works regardless.
Updating
Stay-current path when Cursor's linux-x64 Grok Bot feed moves. PKGBUILD is currently 0.36.0 (pkgrel 1). One updater: ./scripts/update.sh.
Scheduled bump (Gitea Actions)
.gitea/workflows/update.yml runs daily (cron: '17 6 * * *') and on workflow_dispatch. It:
- Runs
./scripts/update.shagainst the live Cursor linux-x64 feed. - If
pkgverchanged, commitsPKGBUILDand.SRCINFO. - Tags
v$pkgver(an upstream bump resetspkgrelto 1, so 0.36.0 → tagv0.36.0). - Pushes the branch and tag.
The tag triggers .gitea/workflows/build.yml, which builds the Arch package and attaches grok-bot-bin-$pkgver-$pkgrel-x86_64.pkg.tar.zst to the Gitea release.
Actions can push and tag on this forge. Run 1190 (schedule on master) bumped 0.30.0 → 0.35.0 and pushed master plus tag v0.35.0.
If the script cannot parse the feed, the .deb download fails, or curl / python3 / sha256sum is missing, the job fails (it is not a silent “up to date”). jq is optional; without it the script parses the feed with python3. The workflow still apt-get installs jq for the run. A no-op is only “already at this pkgver”.
Scheduled jobs run on the default branch (master). Product PRs land on develop; promote or run the manual path below if develop is ahead of master.
Manual force path
When you do not want to wait for cron, or you are landing a bump on develop:
# requires curl, python3, sha256sum; jq optional
./scripts/update.sh
If the feed is newer, that rewrites PKGBUILD and .SRCINFO. Then commit, tag, and push (or open a PR into develop):
git add PKGBUILD .SRCINFO
git commit -m "pkgbuild: Bump grok-bot-bin to <pkgver>"
git push origin HEAD:develop # or open a PR into develop
# After it should cut a release:
git tag "v<pkgver>" # e.g. v0.36.0
git push origin "v<pkgver>"
makepkg -si # install from this tree without waiting for the release asset
Install the new version with makepkg -si, or (once CI publishes the asset) pacman -U from Releases as in the example above.
Notes
/usr/bin/grok-bot(andsand) is a launch shim: unlessGROK_BOT_NO_UPDATE=1, it checks the latest Gitea release and maypacman -Ua newer.pkg.tar.zstbefore exec'ing/opt/Grok Bot/…. Network/API failures still launch the installed binary.- If the app menu still launches an old binary without updating, run
/usr/bin/grok-botonce from a terminal, orsudo pacman -Uthe newer.pkg.tar.zstfrom Releases — the menu must call the PATH shim, not/opt/Grok Bot/…. - Upstream Linux builds still have no in-app updater for the Electron app itself;
scripts/update.sh(cron or manual) is the packaging bump from Cursor's feed. chrome-sandboxis left non-setuid because the install path contains a space; user namespaces cover sandboxing on CachyOS.