Aller au contenu
ColliePWA

Approuvez les actions de votre propre agent depuis votre téléphone.

ColliePWA affiche les questions d'un agent que vous avez créé sur votre téléphone, aux côtés de vos agents de terminal. Vous répondez d'un simple geste, et l'agent reçoit votre réponse.

01/Agents durables

Votre propre agent, sur votre téléphone.

Un agent durable est un agent que vous créez et exécutez vous-même, par exemple avec Pi Durable. Il communique avec votre Collie via un protocole léger, le wire, et un SDK pour Node et Bun le gère pour vous. ColliePWA affiche ensuite les questions de l'agent, ses conversations et sa discussion, ce qui vous évite d'écrire du code d'interface.

Expérimental. Le protocole wire peut changer lors de n'importe quelle version mineure, ou la fonctionnalité peut être supprimée. Aujourd'hui, seuls les exemples du dépôt Collie l'utilisent.

02/ColliePWA

Ce que vous obtenez

Approbations, avec le temps restant
Une question de l'agent devient une carte sur votre téléphone : oui ou non, un choix, une ligne de texte ou un court formulaire. Vous répondez d'un simple geste, et la carte indique combien de temps la question reste ouverte.
Un chat, avec historique
Chaque conversation de l'agent s'ouvre sous la forme d'une discussion. L'agent conserve l'historique, vous pouvez donc aussi lire ses conversations terminées.
Sa propre section, et des notifications push
L'agent obtient sa propre section Agents durables sur le téléphone, et cette section se place au-dessus de vos espaces lorsqu'une question est en attente. Si les notifications push sont activées, une question envoie également une notification.
À côté de vos sessions de terminal
Vos sessions Herdr, tmux et zellij conservent la même apparence et le même fonctionnement. Un agent durable est simplement une source de session supplémentaire.

03/hello.mjs

Dix lignes jusqu'à la première question

Installez le SDK dans le dossier de votre agent :

$ npm install @colliepwa/durable-sdk@experimental

Enregistrez cet agent sous le nom hello.mjs, puis lancez-le avec node hello.mjs ou bun hello.mjs. Il affiche le chemin de son socket et attend.

import { openCollie } from "@colliepwa/durable-sdk";

const socket = process.env.COLLIE_DURABLE_SOCKET ?? `${process.env.XDG_RUNTIME_DIR}/hello/app.sock`;
const collie = await openCollie({ socket, hostName: "hello", caps: { asks: true } });
const pane = collie.workspace("hello", { title: "Hello" }).tab("main", { title: "Questions" }).pane("deploy", { title: "Deploy", harness: "hello" });
collie.ready();
console.log(`listening ${collie.address}`);
const options = [{ id: "yes", label: "Yes" }, { id: "no", label: "No" }];
const answer = await pane.ask({ kind: "choice", toolCallId: "deploy-1", itemId: "deploy-1", title: "Deploy to staging?", options });
console.log(`answer: ${answer.optionIds[0]}`);
await collie.close();

Dans un second terminal, associez l'agent à votre Collie en utilisant le chemin affiché. --restart redémarre le pont Collie : votre téléphone se reconnecte en quelques secondes, et vos sessions de terminal continuent de s'exécuter.

$ collie durable attach hello --socket /run/user/1000/hello/app.sock --restart

Ouvrez ColliePWA sur votre téléphone. Une ligne hello apparaît dans la section Agents durables. Ouvrez-la, et son unique conversation contient la question « Deploy to staging? ». Appuyez sur Oui ou Non, puis l'agent affiche votre réponse et se ferme.

04/Socket · HTTPS

Où il s'exécute

Sur la même machine
Collie joint l'agent via un socket privé, un fichier que seul votre utilisateur peut ouvrir.
Partout ailleurs
Collie joint l'agent via HTTPS avec un jeton d'au moins 32 octets aléatoires, et toute personne disposant du jeton peut répondre à votre place.
Node ou Bun
Le SDK fonctionne sur Node 22.18 ou une version ultérieure, et sur Bun 1.4 ou une version ultérieure.

05/Docs

Lire la documentation

La page Agents durables de la documentation détaille la configuration, les deux méthodes de connexion, le dépannage et ce qu'un agent durable peut afficher sur le téléphone.