Describe the issue
When installing the Antigravity CLI from within Jean's UI, the install fails with:
sh: 8: set: illegal option -o pipefail
Root cause: Jean shells out to the official installer at
https://antigravity.google/cli/install.sh, which declares
#!/bin/bash and uses set -euo pipefail. Jean appears to invoke
this script via sh (which is dash on Debian-based images, e.g.
the jean-server container), and dash does not support the
-o pipefail option to set, so the script aborts immediately.
Reproduced manually inside the jean-server container
(ghcr.io/coollabsio/jean-server):
$ curl -fsSL https://antigravity.google/cli/install.sh | sh
sh: 8: set: illegal option -o pipefail
$ curl -fsSL https://antigravity.google/cli/install.sh | bash
✅ Antigravity CLI binary placed successfully at /home/jean/.local/bin/agy
Environment:
- Image: ghcr.io/coollabsio/jean-server:latest
- Container OS: Debian 12 (bookworm), /bin/sh -> dash, /usr/bin/bash 5.2.15 present
- Container runs as non-root user (uid 1000, no sudo)
Additional issue found while working around this: after manually
installing the binary to $HOME/.local/bin/agy, Jean's UI still shows
"Install" instead of detecting it. The main jean-server process (PID 1)
starts with PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin,
which does not include $HOME/.local/bin — so even a successful install
to that directory won't be detected by the already-running server
process without a PATH update at the container/env level (not just
appending to ~/.bashrc / ~/.profile, which only affects new login shells).
Suggested fixes:
- Invoke the antigravity install script (and any other bash-authored
installers) explicitly via bash, not sh.
- Either add $HOME/.local/bin to the container's PATH env var (Dockerfile
ENV or entrypoint), or have Jean's install-detection logic check
$HOME/.local/bin directly rather than relying on PATH lookup in the
long-running process's inherited environment.
Replication
- Install Jean from Coolify
- Install Antigravity
How are you running Jean?
Headless
Operating system
Ubunty 24.04
Jean version
0.173
How are you interacting with Jean?
Via the web
Describe the issue
When installing the Antigravity CLI from within Jean's UI, the install fails with:
sh: 8: set: illegal option -o pipefail
Root cause: Jean shells out to the official installer at
https://antigravity.google/cli/install.sh, which declares
#!/bin/bashand usesset -euo pipefail. Jean appears to invokethis script via
sh(which isdashon Debian-based images, e.g.the
jean-servercontainer), anddashdoes not support the-o pipefailoption toset, so the script aborts immediately.Reproduced manually inside the
jean-servercontainer(ghcr.io/coollabsio/jean-server):
$ curl -fsSL https://antigravity.google/cli/install.sh | sh
sh: 8: set: illegal option -o pipefail
$ curl -fsSL https://antigravity.google/cli/install.sh | bash
✅ Antigravity CLI binary placed successfully at /home/jean/.local/bin/agy
Environment:
Additional issue found while working around this: after manually
installing the binary to $HOME/.local/bin/agy, Jean's UI still shows
"Install" instead of detecting it. The main jean-server process (PID 1)
starts with PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin,
which does not include $HOME/.local/bin — so even a successful install
to that directory won't be detected by the already-running server
process without a PATH update at the container/env level (not just
appending to ~/.bashrc / ~/.profile, which only affects new login shells).
Suggested fixes:
installers) explicitly via
bash, notsh.ENV or entrypoint), or have Jean's install-detection logic check
$HOME/.local/bin directly rather than relying on PATH lookup in the
long-running process's inherited environment.
Replication
How are you running Jean?
Headless
Operating system
Ubunty 24.04
Jean version
0.173
How are you interacting with Jean?
Via the web