Skip to content

lyc-aon/pomp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pomp

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.

Pomp running in a terminal with braille splash art and a casual greeting response

Source image for the terminal splash art:

Shirtless muscular man on a beach flexing one arm and holding a glass of red wine, with large text at the bottom reading FOCK EET

What changes

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 omp to pomp.
  • Moves the default config root from ~/.omp to ~/.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.

Side-by-side with OMP

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.yml

Authentication 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.

Install

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 --version

Local build/install from source:

git clone https://github.com/lyc-aon/pomp.git
cd pomp
bun run install:local
pomp --version

install:local installs to $HOME/bin/pomp unless POMP_INSTALL_DIR is set.

Update

Use Pomp's own updater:

pomp update

omp 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.

How the upstream sync works

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:

  1. Read upstream.lock.
  2. Clone the pinned Oh My Pi ref into .work/build/oh-my-pi.
  3. Apply every patch in patches/ with git apply --3way.
  4. Build upstream normally, producing dist/pomp instead of dist/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.

Release checklist

For a local confidence check before cutting a release:

bun run patch:check
bun run install:local
pomp --smoke-test

The release workflow builds the same patched binary and uploads pomp-linux-x64 to the GitHub release.

License

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.

About

Patch-based Oh My Pi fork: side-by-side pomp binary, separate ~/.pomp profile, upstream auto-sync, and a braille gym-terminal splash.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors