Sign inSign up

k33g/ori-kit:latest

Manifest digest

sha256:23b85d64975784824c106a86dab056f604a9e869812ee80c155f10c08308376b

Last pushed

5 days by k33g

Type

Sandbox Kit

Manifest digest

sha256:23b85d64975784824c106a86dab056f604a9e869812ee80c155f10c08308376b

yaml
schemaVersion: "2"
kind: mixin
name: ori
displayName: Ori — ACP web client for Claude Code
description: |
    Starts the ori web server inside the sandbox. Ori is a browser client for ACP (Agent Client Protocol) code agents: a Go backend serves a React SPA (Zed-style agent panel: streamed answers, thoughts, tool calls, plans, permission prompts) plus a workspace panel (file tree with Material icons, Monaco preview/editor with rendered Markdown and AsciiDoc, interactive terminal). This kit only launches and describes the server; the binaries ship in the k33g/ori template image (template/Dockerfile in the ori repository), so use it together with `--template k33g/ori:0.0.2`.
requires:
    agent: claude
licenses:
    - MIT
args:
    port:
        default: "8888"
        description: TCP port the ori server listens on inside the sandbox
        pattern: ^[0-9]{2,5}$
agentInstructions:
    content: |
        ## Ori web server (kit `ori`)

        This sandbox runs **ori**, a web client for Claude Code over ACP. It was
        started automatically and serves on **port ${{ kit.args.port }}** (all
        interfaces).

        - Binaries: `/usr/local/bin/ori` (server) and `/usr/local/bin/ori-mock-agent`
          (a deterministic demo ACP agent that needs no credentials).
        - Log file: `/home/agent/.ori.log`.
        - The server drives its own Claude Code session through the
          `claude-agent-acp` adapter (preinstalled, ships Claude Code 2.1.274); credentials are injected by the
          sandbox proxy, so no login is needed inside the container.
        - Restart it with:
          `pkill -x ori; nohup ori --addr ":${{ kit.args.port }}" --agent-cmd claude-agent-acp --cwd "$PWD" >> /home/agent/.ori.log 2>&1 &`
        - To demo without consuming Claude usage, restart it with
          `--agent-cmd ori-mock-agent` instead.

        A localhost port for the UI was published on the host at create time (see
        the create output); the human can pin a different one with
        `sbx ports <sandbox-name> --publish <host-port>:${{ kit.args.port }}/tcp`.
ports:
    - container: 8888
      protocol: tcp
      name: web
setup:
    startup:
        - command:
            - sh
            - -c
            - |
              export PATH="/usr/local/share/npm-global/bin:/home/agent/.local/bin:$PATH"
              pgrep -x ori >/dev/null 2>&1 && exit 0
              nohup /usr/local/bin/ori \
                --addr ":${{ kit.args.port }}" \
                --agent-cmd claude-agent-acp \
                --cwd "${WORKSPACE_DIR:-/home/agent/workspace}" \
                >> /home/agent/.ori.log 2>&1 &
          description: Start the ori web server (idempotent)