diff --git a/200 projects/Tools Software WebUI/Paseo Pi GUI Tool.md b/200 projects/Tools Software WebUI/Paseo Pi GUI Tool.md
index c919b54..d484f00 100644
--- a/200 projects/Tools Software WebUI/Paseo Pi GUI Tool.md
+++ b/200 projects/Tools Software WebUI/Paseo Pi GUI Tool.md
@@ -1,16 +1,121 @@
---
-created: 2026-09-09 11:55
-modified: 2026-09-09 11:55
-type: note
+created: 2026-09-09
+modified: 2026-09-10
+type: project
tags:
- ai
- ai-agents
- ai-resume
+ - paseo
- pi
- tool
- tools
-aliases: []
+aliases:
+ - Paseo Pi GUI Tool
+ - Paseo
---
-# [[Paseo Pi GUI Tool]]
+# Paseo Pi GUI Tool
+**Paseo 0.7.2 — multi-agent orchestration GUI**, self-hosted in **Docker on .13**, driving real
+**pi agents (0.82.1)** through **OmniRoute**. Built 2026-09-09/10.
+
+**Interactive map:** [maps.lab → Paseo](https://maps.lab.audasmedia.com.au/paseo/docs/system-map.html) ·
+**Repo:** [sam/paseo](https://gitea.lab.audasmedia.com.au/sam/paseo) (public, README + diagram)
+
+## What it is
+
+A client-server **orchestration layer for AI coding agents**:
+- **Daemon** (Node.js) runs on .13, spawns and manages agent processes, streams output over WebSocket.
+- **Clients** — CLI (`paseo` on .27/.51), web UI (:6767), mobile — attach locally or over LAN/Tailscale.
+- **Pi is a first-class provider**: the daemon spawns `pi --mode rpc` (pi 0.82.1 baked into the image — no Nix changes to any host pi).
+- **Local-first**: agents run in our environment; no telemetry.
+
+```mermaid
+flowchart LR
+ subgraph CLIENTS["Clients"]
+ D27[".27 desktop
paseo CLI"]
+ D51[".51 laptop
paseo CLI"]
+ M["Mobile / web UI
browser"]
+ end
+ subgraph S13["Paseo daemon (.13 — Docker, always-on)"]
+ D["Paseo daemon 0.7.2
:6767 · auth"]
+ PI["pi agent 0.82.1
pi --mode rpc"]
+ CFG["pi config
/home/paseo/.pi"]
+ W["workspaces
/workspace/demo"]
+ end
+ subgraph LLM["LLM routing"]
+ OR["OmniRoute .13:20129"]
+ OP["OpenCode-Go / OpenRouter / DeepSeek / Gemini"]
+ end
+ D27 -->|"PASEO_HOST + password"| D
+ D51 -->|"PASEO_HOST + password"| D
+ M -->|"https :6767"| D
+ D -->|"spawns / manages"| PI
+ PI -->|"reads settings + models"| CFG
+ PI -->|"works in"| W
+ PI -->|"omni provider /v1"| OR
+ OR -->|"combo routing"| OP
+```
+
+## How to use it
+
+```bash
+# client (on .27/.51 once)
+npm install -g @getpaseo/cli@0.7.2
+export PASEO_HOST=192.168.20.13:6767
+export PASEO_PASSWORD=
+
+paseo status # daemon reachable
+paseo ls # running agents
+paseo run --provider pi --model omni/openrouter/qwen/qwen3.7-flash \
+ --cwd /workspace/demo "describe this workspace"
+paseo logs # full activity timeline
+paseo attach # live stream
+```
+
+Web UI: `http://192.168.20.13:6767` (password) · mobile: browser over LAN/Tailscale.
+
+## Where things live
+
+| Area | Location |
+|---|---|
+| Compose + config + secrets | `.13` `/home/sam/Docker/Containers/paseo/` (`docker-compose.yml`, `Dockerfile`, `.env` chmod 600) |
+| pi config (persisted) | `.13` `…/paseo/paseo-home/.pi/` (settings.json, models.json, auth.json) |
+| Demo workspace | `.13` `…/paseo/workspace/demo/` |
+| Docs + diagram + map | Gitea `sam/paseo` → `docs/` → maps.lab (`/paseo/docs/`) |
+| Client CLI | `.27` `~/.local/share/npm-global` (`paseo` 0.7.2) |
+
+## Config notes (no secrets)
+
+- **Image**: `ghcr.io/getpaseo/paseo:latest` base + `USER root` stage installing
+ `@earendil-works/pi-coding-agent@0.82.1` + `omniroute-pi-ext-integration`, drops to `USER paseo`.
+ Reason: base image runs as `paseo` (uid 1000); `/usr/local` is root-owned → npm -g must run at build time.
+- **LLM**: container pi → `omni` provider → `http://192.168.20.13:20129/v1` (OmniRoute, LAN IP reachable
+ from the bridge net; `host.docker.internal` also mapped). Default model set to a working leg:
+ `openrouter/qwen/qwen3.7-flash`.
+- **Secrets** live only in `.env` (600) — `PASEO_PASSWORD`, `OMNIROUTE_API_KEY`; never in docs/repos.
+- **Access** is LAN/Tailscale-only; password auth enforced. No public Caddy subdomain yet.
+- **Restart/rebuild**: `cd /home/sam/Docker/Containers/paseo && docker compose up -d --build`.
+
+## Verified end-to-end (2026-09-09)
+
+`paseo run --provider pi --model omni/openrouter/qwen/qwen3.7-flash --cwd /workspace/demo --title paseo-demo`
+→ agent `560ffca0` ran (`pi/omni/openrouter/qwen/qwen3.7-flash`), read `HELLO.txt`, **wrote
+`DEMO_SUMMARY.md`** into the workspace; `paseo logs` shows the full timeline; web UI → HTTP 200. ✅
+
+## Findings / decisions
+
+- **OmniRoute combo regression (server-side, affects host pi too):** `default-opencode-go-ds-flash`
+ → `400 missing x-opencode-session` (OpenCode-Go leg). Working legs verified 200:
+ `openrouter/qwen/qwen3.7-flash` · `openrouter/openai/gpt-5.6-sol` · `aug/claude-haiku-4.5`.
+ **Fix OmniRoute combo/credentials to restore the default path.**
+- Install security: `vet` clean · `npq` author verified (boudra = maintainer) · `socket` accepted
+ 3 low/med CVEs in transitive deps (`qs`, `uuid`, `@ai-sdk/provider-utils`).
+- Paseo is pre-1.0 (0.7.2) — pinned; expect breaking changes between releases.
+- Original AGENT.md noted **Pi Web UI** as an alternative — not needed now; Paseo covers the console use-case.
+
+## Related
+- [[Tools Software WebUI]] · [[Pi Dashboard]]
+- `300 areas/350 AI/Pi Agent Extensions & Skills.md`
+- Gitea `sam/paseo` · maps.lab `/paseo/docs/` · Outline project **Paseo** · Vikunja project **Paseo**
\ No newline at end of file