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@experimentalEnregistrez 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.