aboutsummaryrefslogtreecommitdiffstats
BranchCommit messageAuthorAge
mainrelease: 0.1.9, with a bun that runs without AVX2user3 months
 
 
AgeCommit messageAuthor
2026-08-13release: 0.1.9, with a bun that runs without AVX2HEADmainuser
2026-08-13checks: kill sessions with the form that actually kills themuser
2026-08-13sl0p: keep a templated tab's purpose, so runtime tabs get a status baruser
2026-08-13checks: ignore __pycache__ (the up check imports a sibling check)user
2026-08-13cli: carry pane templates into the generated layoutuser
2026-08-13sl0p(bar): draw the bar as a framed box, and a single line when collapseduser
2026-08-13test: run the status bar's tests in `make test`user
2026-08-13sl0p(bar): a new-tab button, and margins that match the pane gapuser
2026-08-13sl0p: the plugins we ship do not ask for permissionuser
2026-08-13check: stop the live check leaking a server per runuser
2026-08-13sl0p: make the split button work on stacked panes toouser
2026-08-13build: cut the edit loop from 52s to 5s with more codegen unitsuser
2026-08-13sl0p: make the split button visible, and clickable where it is drawnuser
2026-08-13docs: handoveruser
2026-08-13sl0p: account for the split button in the title-alignment testuser
[...]
 
Clone
https://git.sl0p.foo/sl0ppi.git
ssh://git@git.sl0p.foo:39327/srv/git/sl0ppi.git

sl0ppi

A batteries-included terminal environment for driving LLM agent sessions.

sl0ppi is the packaging and integration layer around two halves that only make sense together:

  • sl0ppij — an opinionated fork of zellij, renamed so it installs and runs alongside an unmodified zellij.
  • pi-ext — extensions for the pi coding agent that talk to sl0ppij over a private OSC protocol.

The point of this repo is that make package produces a tarball that installs a working environment on a machine that is not this one.

Install

curl -fsSL https://sl0ppi.sl0p.foo/install.sh | sh

Verifies the release checksum before unpacking, installs under ~/.local, and needs no node, npm, rust or python on the target: the multiplexer is a static musl binary and the agent runs on a bundled bun.

cd ~/dev/myproject && sl0ppi init   # make it a project
cd ~/dev && sl0ppi up               # a session, one tab per project
sl0ppi ls                           # what is open, which agents are live
sl0ppi doctor                       # check the installation

Layout

path role
sl0ppij/ the zellij fork (renamed; coexists with a stock zellij)
sl0pstatus/ the zjstatus fork the default layout builds its status bar from
cli/ the sl0ppi orchestrator (TypeScript, runs on the bundled bun)
pi-ext/ pi extensions + pir
config/ the opinionated default environment
packaging/ vendor, stage, package, publish
site/ what sl0ppi.sl0p.foo serves

Build

make            # documented targets
make test       # CLI + Rust suites
make release    # tests, then a static musl tarball
make publish    # upload it to sl0ppi.sl0p.foo

Picking up where the last session stopped: docs/HANDOVER.md.

See docs/roadmap.md, docs/architecture.md, docs/cli-design.md and FORKS.md.