Oh My Pi with a pump cover on.
Pomp is a downstream build of Oh My Pi that installs as pomp, keeps its own ~/.pomp profile, and carries only a small cosmetic patch stack on top of upstream. The goal is simple: use OMP normally, run Pomp when you want the same harness with a louder intro screen and a little gym-action energy in the system prompt.
Source image for the terminal splash art:
Pomp keeps the upstream OMP codebase intact and applies a patch during build. The patch currently does four visible things:
- Renames the installed command from
omptopomp. - Moves the default config root from
~/.ompto~/.pomp. - Replaces the first-run/welcome layout with a large braille-art splash.
- Adds a light Pomp persona layer to the system prompt without changing the engineering rules underneath it.
Everything else should behave like the pinned upstream release.
Pomp is meant to live next to a normal OMP install.
| OMP | Pomp |
|---|---|
omp command |
pomp command |
~/.omp config/profile |
~/.pomp config/profile |
| OMP update path | Pomp release/build path |
| Upstream prompt and welcome screen | Patched prompt and welcome screen |
By default Pomp does not overwrite omp, does not replace ~/.omp, and does not need OMP to be removed. If you want to copy an existing model config, copy the config file intentionally:
mkdir -p ~/.pomp/agent
cp ~/.omp/agent/config.yml ~/.pomp/agent/config.ymlAuthentication is still whatever the underlying OMP agent supports. Pomp can use its own credential store under ~/.pomp, or you can wire it to the same broker/config you already use.
Download the Linux x64 binary from the latest GitHub release and put it somewhere on your PATH:
mkdir -p ~/.local/bin
curl -L https://github.com/lyc-aon/pomp/releases/latest/download/pomp-linux-x64 -o ~/.local/bin/pomp
chmod +x ~/.local/bin/pomp
pomp --versionLocal build/install from source:
git clone https://github.com/lyc-aon/pomp.git
cd pomp
bun run install:local
pomp --versioninstall:local installs to $HOME/bin/pomp unless POMP_INSTALL_DIR is set.
Use Pomp's own updater:
pomp updateomp update only updates the upstream omp binary. Pomp is a separate side-by-side binary, so its update path downloads the latest lyc-aon/pomp release, which is built from the latest pinned OMP release after the patch stack passes.
This repo is not a long-lived fork full of direct edits. It is a patch package:
upstream.lock # pinned upstream OMP release
patches/0001-pomp-side-by-side.patch
scripts/build-pomp.sh # clone upstream, apply patches, build dist/pomp
scripts/sync-upstream.sh # verify the patch stack against upstream
.github/workflows/upstream-sync.yml
The build path is:
- Read
upstream.lock. - Clone the pinned Oh My Pi ref into
.work/build/oh-my-pi. - Apply every patch in
patches/withgit apply --3way. - Build upstream normally, producing
dist/pompinstead ofdist/omp.
The scheduled GitHub workflow checks for new upstream OMP releases. If the patch stack still applies and the build passes, it updates upstream.lock, opens the sync PR, auto-merges it, and publishes a fresh Pomp release asset. If the patch stack stops applying or the build fails, the workflow opens or updates a GitHub issue labeled upstream-sync so a human can fix the patch.
That keeps the fork boring: upstream owns the harness, Pomp owns the small cosmetic diff.
For a local confidence check before cutting a release:
bun run patch:check
bun run install:local
pomp --smoke-testThe release workflow builds the same patched binary and uploads pomp-linux-x64 to the GitHub release.
Pomp is distributed as a downstream patch/build of Oh My Pi. Upstream code remains governed by the Oh My Pi license. Pomp-specific patch files and packaging live in this repository.

