nandi/oripublic Fork 0
35061753be581c0ba47a3189520d64e7788c183d
Commits
Clone
git clone https://git.rickub.com/nandi/ori.git
git clone ssh://git@rickub.com/nandi/ori.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

forked from bots-garden/ori

✨ Switch the ACP adapter to @agentclientprotocol/claude-agent-acp (template 0.0.2) 5d476ff · on 35061753be581c0ba47a3189520d64e7788c183d · k33g · yesterday
README.md · 57 lines · 2.8 KBmarkdown
Blame HistoryOpen raw

ori kit

A Docker Sandboxes mixin kit that starts the ori web server — a browser client for Claude Code over ACP — inside a sandbox built from the k33g/ori template image.

1. Get the template image

It is published on Docker Hub as k33g/ori:0.0.2. To (re)build and push it yourself from the ori repository root:

./template/build.sh          # multi-arch build, pushes k33g/ori:0.0.2 and :latest
# local-only alternative: make template  (= docker build -t k33g/ori .)

The image stacks ori (server, SPA and demo agent) and the claude-agent-acp adapter on top of the official docker/sandbox-templates:claude-code template, so everything the claude sandbox normally provides is still there.

If the image only exists on your host engine (never pushed to Docker Hub), hand it to the sandbox runtime's own image store:

docker save k33g/ori -o /tmp/ori.tar
sbx template load /tmp/ori.tar
sbx template ls

2. Create a sandbox with it

sbx run -d claude ~/path/to/your/project \
  --template k33g/ori:0.0.2 \
  --kit /path/to/ori/kits/ori

Use sbx run -d (--detached), not sbx create: sbx auto-stops a sandbox 30 s after its last CLI session closes, and a web server has no CLI session to hold it up. A detached sandbox is exempt from that auto-stop for its whole life; the mode is fixed at creation, so a sandbox made with sbx create has to be sbx rm'd and recreated.

--template swaps the sandbox image for k33g/ori:0.0.2; --kit applies this mixin, whose startup command launches the ori server at every container start. The claude agent kit still handles Anthropic credentials, so the server's agent works without any login inside the sandbox.

The listen port defaults to 8888 and is a kit argument: add --kit-arg ori.port=9000 (or --kit-arg port=9000) to change it. The port the kit declares for auto-publishing stays 8888 (an sbx packaging limitation, see the comment in spec.yaml), so with a custom port publish it yourself: -p 9000:9000.

3. Open the UI

The kit declares port 8888, so the creation auto-publishes an ephemeral localhost port and prints it:

  Published web: localhost:54321 -> 8888/tcp

Browse to that address, or pin a fixed host port instead:

sbx run -d claude … -p 8888:8888/tcp          # at creation
sbx ports <sandbox-name> --publish 8888:8888/tcp   # afterwards

Notes

  • Server log inside the sandbox: /home/agent/.ori.log.
  • To try the UI without consuming Claude usage, restart the server with the bundled demo agent: pkill -x ori; nohup ori --addr :8888 --agent-cmd ori-mock-agent --cwd "$PWD" >> /home/agent/.ori.log 2>&1 &.
  • The image also runs standalone, outside sbx: docker run --rm -p 8888:8888/tcp k33g/ori (bring your own ANTHROPIC_API_KEY, or switch to ori-mock-agent).
 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
# ori kit

A Docker Sandboxes **mixin kit** that starts the [ori](../../README.md) web server — a browser client for Claude Code over ACP — inside a sandbox built from the `k33g/ori` template image.

## 1. Get the template image

It is published on Docker Hub as `k33g/ori:0.0.2`. To (re)build and push it yourself from the ori repository root:

```bash
./template/build.sh          # multi-arch build, pushes k33g/ori:0.0.2 and :latest
# local-only alternative: make template  (= docker build -t k33g/ori .)
```

The image stacks ori (server, SPA and demo agent) and the `claude-agent-acp` adapter on top of the official `docker/sandbox-templates:claude-code` template, so everything the claude sandbox normally provides is still there.

If the image only exists on your host engine (never pushed to Docker Hub), hand it to the sandbox runtime's own image store:

```bash
docker save k33g/ori -o /tmp/ori.tar
sbx template load /tmp/ori.tar
sbx template ls
```

## 2. Create a sandbox with it

```bash
sbx run -d claude ~/path/to/your/project \
  --template k33g/ori:0.0.2 \
  --kit /path/to/ori/kits/ori
```

Use `sbx run -d` (`--detached`), **not** `sbx create`: sbx auto-stops a sandbox 30 s after its last CLI session closes, and a web server has no CLI session to hold it up. A detached sandbox is exempt from that auto-stop for its whole life; the mode is fixed at creation, so a sandbox made with `sbx create` has to be `sbx rm`'d and recreated.

`--template` swaps the sandbox image for `k33g/ori:0.0.2`; `--kit` applies this mixin, whose startup command launches the ori server at every container start. The claude agent kit still handles Anthropic credentials, so the server's agent works without any login inside the sandbox.

The listen port defaults to **8888** and is a kit argument: add `--kit-arg ori.port=9000` (or `--kit-arg port=9000`) to change it. The port the kit *declares* for auto-publishing stays 8888 (an sbx packaging limitation, see the comment in `spec.yaml`), so with a custom port publish it yourself: `-p 9000:9000`.

## 3. Open the UI

The kit declares port 8888, so the creation auto-publishes an ephemeral localhost port and prints it:

```
  Published web: localhost:54321 -> 8888/tcp
```

Browse to that address, or pin a fixed host port instead:

```bash
sbx run -d claude … -p 8888:8888/tcp          # at creation
sbx ports <sandbox-name> --publish 8888:8888/tcp   # afterwards
```

## Notes

- Server log inside the sandbox: `/home/agent/.ori.log`.
- To try the UI without consuming Claude usage, restart the server with the bundled demo agent: `pkill -x ori; nohup ori --addr :8888 --agent-cmd ori-mock-agent --cwd "$PWD" >> /home/agent/.ori.log 2>&1 &`.
- The image also runs standalone, outside sbx: `docker run --rm -p 8888:8888/tcp k33g/ori` (bring your own `ANTHROPIC_API_KEY`, or switch to `ori-mock-agent`).