Перейти к содержимому
ColliePWA

Подтверждайте действия вашего агента с телефона.

ColliePWA показывает вопросы твоего агента на телефоне рядом с терминальными агентами. Ты отвечаешь в одно касание, и агент получает ответ.

01/Durable agents

Ваш собственный агент на вашем телефоне.

Durable agent представляет собой агента, которого ты создаешь и запускаешь сам, например на Pi Durable. Он общается с твоим Collie по небольшому протоколу, wire, а SDK для Node и Bun берет протокол на себя. ColliePWA отрисовывает вопросы агента, его диалоги и чат, поэтому писать код для UI не нужно.

Экспериментально. Протокол wire может измениться в любом минорном релизе, либо функция может быть удалена. Сейчас его поддерживают только примеры в репозитории Collie.

02/ColliePWA

Что вы получаете

Подтверждения с таймером оставшегося времени
Вопрос от агента превращается в карточку на телефоне: да или нет, выбор, строка текста или короткая форма. Ты отвечаешь в одно касание, а карточка показывает, сколько еще открыт вопрос.
Чат с историей
Каждый диалог агента открывается как чат. Агент сохраняет историю, поэтому ты можешь читать и закрытые диалоги.
Отдельный раздел и push-уведомления
Агент получает свой раздел Durable agents на телефоне, и этот раздел поднимается выше твоих пространств, когда ждет вопрос. С включенным push вопрос также присылает уведомление.
Рядом с сессиями вашего терминала
Твои сессии Herdr, tmux и zellij выглядят и работают как раньше. Durable agent представляет собой еще один источник сессий.

03/hello.mjs

Десять строк до первого вопроса

Установи SDK в папку агента:

$ npm install @colliepwa/durable-sdk@experimental

Сохрани этого агента как hello.mjs, затем запусти его через node hello.mjs или bun hello.mjs. Он выведет путь к своему сокету и будет ждать.

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();

Во втором терминале подключи агента к Collie, используя путь из вывода. Флаг --restart перезапускает мост Collie: телефон переподключится через несколько секунд, а сессии в терминале продолжат работать.

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

Открой ColliePWA на телефоне. В разделе Durable agents появится строка hello. Открой ее, и в ее единственном диалоге будет вопрос "Deploy to staging?". Нажми Yes или No, и агент выведет твой ответ и завершит работу.

04/Socket · HTTPS

Где она работает

На той же машине
Collie связывается с агентом через приватный сокет, файл, который может открыть только твой пользователь.
В любом другом месте
Collie связывается с агентом по HTTPS с токеном длиной от 32 случайных байт, и любой владелец токена может ответить за тебя.
Node или Bun
SDK работает на Node 22.18 или более поздней версии и на Bun 1.4 или более поздней версии.

05/Документация

Читать документацию

Страница Durable agents в документации описывает настройку, два способа подключения, решение проблем и то, что durable agent может показывать на телефоне.