Architecture
┌─────────────────────────────────────────┐
│ sl0ppij │
│ (forked zellij: multiplexer + server) │
│ │
pane frames ───▶│ • per-pane status bar / buttons │
pane finder │ • workspace hints (purpose=) │
layouts │ • responsive + stacked-pane picker │
└───────▲──────────────────────┬───────────┘
│ OSC 5577 │ pane stdin
│ (pane → mux) │ (mux → pane)
┌───────┴──────────────────────▼───────────┐
│ pi │
│ (agent process running inside a pane) │
│ + pi-ext extensions (TypeScript) │
└──────────────────────────────────────────┘
The two halves
sl0ppij (sl0ppij/) is a fork of zellij. Everything it adds is in commits
prefixed sl0p:. The parts that matter for integration:
- OSC 5577 — a private escape sequence a pane can emit to draw a status bar
in its own zellij frame, including clickable buttons whose clicks are
reported back on the pane's stdin. Spec:
sl0ppij/sl0p/pane-status-bar.md. - Workspace hints — panes and tabs carry a
purpose=string so tooling can find "the agent pane" vs "the logs pane". Spec:sl0ppij/sl0p/workspace-hints-proposal.md. - zj-pane-finder — a fuzzy pane finder plugin (wasm), in-tree at
sl0ppij/sl0p/zj-pane-finder/, deliberately its own cargo workspace so its size-optimised profile applies.
sl0pstatus (sl0pstatus/) is a fork of zjstatus, the status bar the
default layout uses in place of zellij's stock tab-bar + status-bar. It is a
separate wasm plugin built against the released zellij-tile, not part of the
sl0ppij workspace.
pi-ext (pi-ext/) is the other end of that protocol: TypeScript extensions
loaded by pi. Five of them speak OSC 5577 (answer-picker, last-prompt,
sl0p-footer, slop-tool-boxes, user-prompt-frame).
Neither half is much use without the other, which is the entire argument for this monorepo: the protocol is the product, and it needs to be versioned and shipped as one thing.
What the repo holds
| path | role |
|---|---|
sl0ppij/ |
the fork. Self-contained: rebases against upstream zellij happen here. |
sl0pstatus/ |
forked zjstatus status bar (wasm plugin) the default layout depends on. |
pi-ext/ |
pi extensions + pir CLI helper. |
config/ |
the opinionated default environment (keybinds, layouts, themes). |
packaging/ |
turn the above into a tarball someone else can install. |
docs/ |
this. |
FORKS.md |
what upstream everything is based on. |
VERSION |
the single sl0ppi version. |
Deliberate non-goals (for now)
- Not shipping a forked pi. pi is pinned and redistributed unmodified.
- Not supporting anything but
x86_64-unknown-linux-gnu/musl. - No CI. Releases are cut from a dev box until the rest works.
