Installation et utilisation
Fonctionnalités
Contrôle à distance
- Reprenez n'importe quelle session depuis le navigateur avec des pièces jointes texte ou image
- Lancez une toute nouvelle session sur n'importe quel chemin de projet, directement depuis l'interface web
- Sélecteur de modèle et de niveau de réflexion dans le navigateur, par session
- Statut du worker par session (inactif / en cours / erreur) avec récupération automatique en cas de plantage
- Plusieurs sessions s'exécutent en parallèle — lancez du travail dans l'une, regardez une autre diffuser
PI_WEB_TOKENpour une exposition sécurisée sur le LAN — requis par défaut pour toute liaison explicite hors loopback
Lecture des sessions
- Parcourez les sessions de tous vos projets avec filtres, recherche et navigation complète entre les branches
- Mises à jour incrémentielles en direct pendant que pi tourne encore (via fsnotify ; latence ~ms)
- Mode suivi pour suivre les sessions actives
- Liens profonds vers des messages individuels
- Téléchargez une session au format JSONL
- Partagez des instantanés statiques sous forme de Gists GitHub secrets
- Extensions pi
/web,/remote,/refresh,/pi-web tokenet/pi-web set-tokenpour ouvrir des sessions, QR distant, synchronisation de session et gestion du token
Prérequis
- Go 1.25+
pidans votrePATHpour le chat et le changement de modèle dans le navigateur- Optionnel :
ghpour le partage
Installation
Paquet Pi (recommandé)
pi install npm:@ygncode/pi-web@betaCette seule commande :
- Installe le paquet npm pi dans le répertoire des paquets de pi
- Exécute le script
postinstalldu paquet (bash install.sh) - Télécharge le binaire pi-web correspondant à votre version de paquet et à votre plateforme depuis GitHub Releases
- L'installe dans
~/.pi/agent/bin/pi-web - Configure le démarrage automatique à la connexion (launchd sur macOS, systemd sur Linux)
- Enregistre les commandes pi
/web,/remote,/refresh,/pi-web tokenet/pi-web set-token
Le titrage automatique des sessions est intégré à pi-web (pas à l'extension) et se configure sur la page /settings. Il est activé par défaut : pi-web nomme automatiquement les sessions à l'aide d'une heuristique de mots intégrée gratuite (sans IA), en re-titrant à chaque nouveau message. Vous pouvez passer à un titrage unique par session, et/ou choisir un modèle pour écrire des titres plus intelligents au lieu de l'heuristique.
Sur Linux, le démarrage automatique est configuré comme un service systemd utilisateur dans ~/.config/systemd/user/pi-web.service. L'installateur réécrit son ExecStart vers le chemin réel du binaire installé. Si Tailscale est disponible à l'exécution, pi-web publie le serveur localhost avec Tailscale Serve HTTPS. Si systemd utilisateur n'est pas disponible, exécutez-le manuellement avec ~/.pi/agent/bin/pi-web -o.
Pour installer uniquement pour un projet spécifique (partagé avec votre équipe via .pi/settings.json) :
pi install -l npm:@ygncode/pi-web@betaRedémarrez ensuite pi (ou exécutez /reload), et utilisez /web, /pi-web, /remote, /refresh. Gérez votre token d'accès avec /pi-web token et /pi-web set-token.
Si npm échoue avec ENOTEMPTY lors du renommage de @ygncode/pi-web, supprimez les répertoires de sauvegarde cachés obsolètes de npm et réinstallez le canal beta :
rm -rf ~/.pi/agent/npm/node_modules/@ygncode/.pi-web-*
pi install npm:@ygncode/pi-web@betaInstallation rapide (aucun outil de build requis)
curl -fsSL https://raw.githubusercontent.com/ygncode/pi-web/main/install.sh | bashCeci télécharge le dernier binaire pi-web, l'installe dans /usr/local/bin, et configure le démarrage automatique à la connexion. Aucun Go, Node, ni pi requis.
Téléchargement du binaire
Des binaires pré-compilés sont joints à chaque GitHub Release.
# macOS (Apple Silicon)
curl -L -o pi-web https://github.com/ygncode/pi-web/releases/latest/download/pi-web-darwin-arm64
chmod +x pi-web
# macOS (Intel)
curl -L -o pi-web https://github.com/ygncode/pi-web/releases/latest/download/pi-web-darwin-amd64
chmod +x pi-web
# Linux (amd64)
curl -L -o pi-web https://github.com/ygncode/pi-web/releases/latest/download/pi-web-linux-amd64
chmod +x pi-web
# Linux (arm64)
curl -L -o pi-web https://github.com/ygncode/pi-web/releases/latest/download/pi-web-linux-arm64
chmod +x pi-webDéplacez-le ensuite dans votre PATH :
cp pi-web ~/.pi/agent/bin/
# ou à l'échelle du système :
sudo cp pi-web /usr/local/bin/Compilation depuis les sources
git clone https://github.com/ygncode/pi-web.git
cd pi-web
make build # compile le bundle Vite, puis l'intègre dans le binaire Go
# optionnel : placez-le dans le PATH
cp pi-web ~/.pi/agent/bin/Le bundle frontend est intégré par web/assets_embed.go, donc go build nécessite que web/dist existe d'abord. make build effectue les deux étapes dans l'ordre ; si vous compilez manuellement, exécutez npm --prefix web install && npm --prefix web run build avant go build ./cmd/pi-web.
Désinstallation
pi remove npm:@ygncode/pi-web@betaCeci exécute le script preuninstall du paquet (bash uninstall.sh), qui arrête l'instance en cours et supprime :
- le binaire pi-web (
~/.pi/agent/bin/pi-web, ou/usr/local/bin/pi-webpour les installations autonomes) - le fichier de version (
~/.pi/agent/pi-web-version) - le fichier d'état d'exécution (
~/.pi/agent/pi-web/pi-web-state.json) - la configuration de démarrage automatique (plist launchd sur macOS, service systemd utilisateur sur Linux)
Vos données sont préservées afin qu'une réinstallation ultérieure reprenne là où vous en étiez : ~/.pi/agent/pi-web.sqlite, ~/.pi/agent/pi-web-memory.sqlite, vos fichiers de session sous ~/.pi/agent/sessions/, et ~/.config/pi-web/env (incluant PI_WEB_TOKEN). Supprimez-les manuellement si vous voulez repartir de zéro.
Utilisation
# Démarrer sur le port par défaut (31415)
pi-web
# Démarrer et ouvrir un navigateur
pi-web -o
# Port personnalisé
pi-web -p 8080
# Remplacer l'hôte de liaison (loopback n'est pas authentifié par défaut)
pi-web --host 127.0.0.1
# Une liaison hors loopback nécessite un token — pi-web refuse de démarrer sinon
PI_WEB_TOKEN=$(openssl rand -hex 16) pi-web --host 192.168.1.50Par défaut, pi-web se lie à 127.0.0.1. Si Tailscale est en cours d'exécution avec MagicDNS, pi-web exécute également tailscale serve --bg --https=<port> http://127.0.0.1:<port> et affiche l'URL HTTPS tailnet. Toute liaison explicite hors loopback nécessite que PI_WEB_TOKEN soit défini ; passez --insecure pour contourner cette protection lors de tests locaux.
Accès à distance
Laissez pi-web écouter localement, puis utilisez l'URL HTTPS Tailscale affichée depuis votre téléphone ou ordinateur portable sur le tailnet.
Sous macOS, installez et ouvrez Tailscale de manière interactive, approuvez la demande d’autorisation administrateur, puis connectez-vous. Exécutez ensuite /pi-web restart, puis /remote.
Sur Linux, autorisez votre utilisateur à gérer Tailscale avant d'installer/exécuter pi-web, sinon tailscale serve peut nécessiter sudo et le démarrage automatique peut échouer :
sudo tailscale set --operator=$USER# 1. Démarrez pi-web
pi-web
# 2. Depuis n'importe quel autre appareil connecté à Tailscale, ouvrez l'URL
# "Tailscale HTTPS" affichée.Par défaut, pi-web refuse de se lier à une adresse hors loopback sauf si
PI_WEB_TOKENest défini — quiconque peut atteindre l'adresse liée pourrait autrement voir les sessions et envoyer des instructions à pi. Pour désactiver cette protection lors de tests sur le réseau local, passez--insecure. N'utilisez pas--insecuresur Tailscale ni sur une adresse accessible depuis l'extérieur de votre machine.Les clients peuvent transmettre le token via l'en-tête
Authorization: Bearer <token>, l'en-têteX-Pi-Token, ou une fois via?token=<token>(ce qui définit un cookiepi_tokenpour les requêtes suivantes). Les tokens transmis via?token=se retrouvent dans l'historique du navigateur, les journaux d'accès du serveur et les en-têtesRefererde tous les liens de la page — préférez la forme par en-tête pour tout ce qui dépasse le signet initial.
Chat dans le navigateur
Ouvrez une page de session et utilisez le composeur en bas pour continuer cette session exacte.
Entréeenvoie,Shift+Entréeinsère un saut de ligne- Glissez-déposez ou collez des images directement dans le composeur
- Le sélecteur de modèle et le sélecteur de niveau de réflexion se trouvent dans l'en-tête — les modifications s'appliquent immédiatement au worker pi sous-jacent
- Chaque session active obtient son propre worker
pi --mode rpcdédié, afin que différentes sessions ne se bloquent pas mutuellement
Partage de sessions
Cliquez sur Partager sur une page de session pour créer un Gist GitHub secret.
Prérequis :
ghinstallégh auth logineffectué
Le partage renvoie :
- l'URL du gist secret
- une URL d'aperçu sur
https://pi.dev/session/#<gistId>
Les gists partagés sont des instantanés et ne se mettent pas à jour en direct.
Démarrage automatique à la connexion
macOS
cp init/com.pi-web.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.pi-web.plistLinux (systemd)
# Installer le service systemd utilisateur
mkdir -p ~/.config/systemd/user
cp init/pi-web.service ~/.config/systemd/user/
# Optionnel : définissez votre PI_WEB_TOKEN pour les liaisons hors loopback
# (ou utilisez /pi-web set-token <token> depuis pi)
mkdir -p ~/.config/pi-web
echo 'PI_WEB_TOKEN=votre-token-ici' > ~/.config/pi-web/env
# Activer et démarrer
systemctl --user daemon-reload
systemctl --user enable --now pi-web.service
# Vérifier le statut
systemctl --user status pi-web.service
# Voir les journaux
journalctl --user -u pi-web.service -fPour que le service démarre au boot (avant la connexion), utilisez plutôt un service système : copiez
init/pi-web.servicedans/etc/systemd/system/et utilisezsudo systemctl.