Experimental Praxis integration¶
The shared bootc base starts Praxis and OpenShell. This does not establish that every harness can complete a task through Praxis.
Management requires the service operator's TLS client identity. Ordinary SSH accounts are not enrolled; #12 tracks individual access and workspace authorization. Use direct harnesses until that is available; do not copy the operator's keys to user accounts.
| Combination | Status |
|---|---|
| OpenClaw + Praxis | Experimental dev profile; bounded read/write workflow; historical 0.1.3 fixture qualification |
| Claude Code + Praxis | Sandbox image and recipe are missing |
| OpenCode + Praxis dev | Experimental; historical 0.1.3 model, write and bash fixture qualification; qualify each real host/provider/model task on the current pins |
| OpenCode + Praxis pr-queue | Experimental PR-candidate example; static, schema, and policy-boundary contracts only |
| OpenCode review | CLI data-directory permission limitation; outside supported recipes |
For OpenClaw, use the dedicated model and tool walkthrough.
For OpenCode experiments, run as the OpenShell service account using the os_run helper from the
OpenShell single-server guide:
os_run env OPENSHELL_MODEL_ID=administrator-approved-model \
"$repo/openshell/harnesses/opencode/create.sh" \
--profile dev --config "$repo/configs/openshell-praxis"
For mutable RHEL Qwen, export OPENSHELL_MODEL_ID=qwen3-8b and
PRAXIS_API_PREFIX=/vllm in that service-account environment before creation.
Leave the prefix empty for the OpenAI cloud route or bootc local inference.
PRAXIS_PORT defaults to 8080 and must be an integer from 1 through 65535.
The script renders the numeric policy port and JSON model safely, selects the
Praxis model, and uploads config to ~/.config/opencode/opencode.json. The actual
binary paths, alias route, tools and streaming must pass native qualification
before use with real credentials. A successful config upload is not inference.
Integrated mode rejects --provider and SSH helpers never forward provider keys.
The policies limit Praxis traffic to GET /v1/models,
POST /v1/chat/completions, and POST /v1/responses on
host.openshell.internal, with the configured route prefix such as /vllm
prepended to all three paths. With /vllm, for example, the effective paths
are /vllm/v1/models, /vllm/v1/chat/completions, and
/vllm/v1/responses. The OpenCode pr-queue profile permits the third path
so it can use OpenCode's built-in provider without npm access. Dev, automation,
and interactive also permit development endpoints. GitHub API access is read-only,
and Git Smart HTTP permits clone/fetch but not push. Filesystem permissions do
not establish workspace mounts, retention after deletion, or disconnected task
persistence.
The pr-queue profile is intentionally narrower: it permits only Praxis,
read-only GitHub API, and Git clone/fetch traffic. Start with the
PR-candidate example, which also
maps the profile to its runner, collector, agent instructions, and tests. That
workflow has not yet received a real-provider runtime qualification.
A timeout, SSH failure, or HTTP 401 does not prove a policy denial.
Delete test sandboxes with openshell sandbox delete NAME; do not source libraries
into your terminal. See the OpenShell Overview.