Pi Coding Agentยถ

Descriptionยถ

Pi is a minimal terminal coding agent with a lazy-loading skill system. This role installs it on a workstation and registers the platformโ€™s model gateway as its provider.

Overviewยถ

Pi reads its providers from ~/.pi/agent/models.json. The role renders that file with one provider of type openai-completions pointing at the gatewayโ€™s /v1 base, the workstationโ€™s key, and the model aliases the operator listed.

As with every workstation agent here, the key is operator-supplied: the gateway mints it from the server inventory, and the workstation inventory carries it.

Architectureยถ

ARCHITECTURE.md draws Pi Coding Agent from its own metadata: the containers it runs under compose, what changes under swarm, how each volume is backed, and every role it depends on or is depended upon by.

Section

Drawn from

Compose

meta/services.yml

Swarm

meta/services.yml replicas and placement

Volumes

meta/volumes.yml against the NFS decision chain

Dependencies

meta/services.yml and meta/main.yml of every role

Featuresยถ

  • Gateway-backed: one provider entry, no vendor credentials on the machine.

  • Explicit model list: the aliases come from the inventory, so the agent offers exactly what the gateway serves.

  • No configuration without a key: the file is written only once URL, key and model list are set.

  • User-owned: the file belongs to the workstation user and is readable only by them.

Quick Setupยถ

Developmentยถ

Clone, set up the workstation, and deploy Pi Coding Agent onto the local stack:

git clone https://github.com/infinito-nexus/core.git
cd core
make onboard
make compose-deploy mode=reinstall apps=dsk-gnt-pi full_cycle=false

Productionยถ

Install Pi Coding Agent directly onto the target machine: clone the repository, install the OS prerequisites and the repository toolchain, then deploy against localhost over a local connection (no SSH, no container):

git clone https://github.com/infinito-nexus/core.git
cd core
bash scripts/install/package.sh
make install
source scripts/meta/env/load.sh

APP=dsk-gnt-pi
DOMAIN="<your-domain>"
TLS_MODE=self_signed
SSH_PUBLIC_KEY="<your-ssh-public-key>"
INVENTORY=inventories/production
infinito administration inventory provision "$INVENTORY" \
  --inventory-file "$INVENTORY/devices.yml" \
  --host localhost \
  --include "$APP" \
  --vars "{\"TLS_MODE\": \"$TLS_MODE\", \"DOMAIN_PRIMARY\": \"$DOMAIN\", \"users\": {\"administrator\": {\"authorized_keys\": [\"$SSH_PUBLIC_KEY\"]}}}"
infinito administration deploy dedicated "$INVENTORY/devices.yml" \
  --password-file "$INVENTORY/.password" \
  --diff -vv

Creditsยถ

Kevin Veen-Birkenbach

Part of the Infinito.Nexus Project and maintained by Kevin Veen-Birkenbach. Licensed under the Infinito.Nexus Community License (Non-Commercial).

That licence covers this role. The software it deploys is a separate grant: MIT, under which commercial use is allowed. You owe its authors this much: keep the copyright notice and the licence text. Permission for one of the two is not permission for the other.