aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: 96a06d4075274e2c722be80fc3699db5b6a67a62 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 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](https://github.com/zellij-org/zellij),
  renamed so it installs and runs alongside an unmodified zellij.
- **pi-ext** — extensions for the [pi](https://www.npmjs.com/package/@earendil-works/pi-coding-agent)
  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

```bash
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.

```bash
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

```bash
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](docs/HANDOVER.md).

See [docs/roadmap.md](docs/roadmap.md), [docs/architecture.md](docs/architecture.md),
[docs/cli-design.md](docs/cli-design.md) and [FORKS.md](FORKS.md).