v0.9.1 -- Agent AI, ktory pilnuje Twoich serwerow, a nie tylko odpowiada na pytania.
Pipe dziala na serwerze na stale: zna go (SERVER.md, mapa katalogow), czuwa nad nim i odzywa sie pierwszy, gdy cos sie psuje. Rozmawiasz z nim z terminala (CLI przez tunel SSH) albo z telefonu (Telegram) -- po polsku. Kazda komenda przechodzi przez klasyfikator bezpieczenstwa w kodzie, a nie w prompcie: odczyty wykonuja sie od razu, zmiany czekaja na Twoje TAK, operacje destrukcyjne sa odrzucane.
Tamte narzedzia to ogolni agenci do kodu albo "do wszystkiego". Pipe jest agentem operacyjnym:
| Pipe | |
|---|---|
| Pisze pierwszy | Czuwanie co 2 min sprawdza dyski, RAM, obciazenie, kontenery w petli restartow i nowe publiczne porty. Alert przychodzi na Telegram z przyciskiem Zbadaj. Bez LLM, bez kosztow. |
| Widzi architekture | /mapa rysuje diagram tego, co stoi na serwerze: domeny -> reverse proxy -> kontenery -> bazy, projekty compose, porty wystawione na swiat. Na Telegramie przychodzi jako obraz, w CLI jako PNG + podglad w terminalu. |
| Zarzadza flota | Zdalne serwery (SSH), kontenery i klastry Kubernetes to cele. Agent wysyla na nie workerow -- pod-agentow, ktorzy rownolegle badaja kazdy cel i raportuja mu, a nie Tobie. Nic nie instaluje sie po drugiej stronie. |
| Bezpieczenstwo w kodzie | Klasyfikator fail-closed (nieznana komenda = pytanie), potwierdzenie pokazuje dokladnie to, co sie wykona, workery wykonuja tylko odczyty. Sekrety z plikow (.env, klucze) sa redagowane, zanim trafia do providera LLM. |
| Pamieta serwer, nie repo | SERVER.md (fakty o serwerze), DIRECTORY (gdzie leza repozytoria, aplikacje, konfiguracje, backupy), skille (procedury) i VIBE -- agent z czasem uczy sie, jak lubisz rozmawiac. |
| Dziala na tanim modelu | Dowolny endpoint zgodny z OpenAI: Gemini (darmowy tier), OpenRouter, Groq, DeepSeek, lokalna Ollama... Workery moga uzywac tanszego modelu. |
| Stawiasz go wszedzie | Docker na VPS, natywnie z systemd, w Kubernetesie (kustomize), cloud-init dla kazdej chmury. Obraz amd64 i arm64. |
git clone https://github.com/user/pipe && cd pipe
sudo bash scripts/install-server.sh # Docker; kreator pyta o providera i klucz
# albo: sudo bash scripts/install-server.sh --mode native (bez Dockera, systemd)Kreator pobiera aktualna liste modeli prosto od providera i sprawdza, czy wybrany model obsluguje
tool calling. Bez pytan (automatyzacja): LLM_PROVIDER=gemini LLM_API_KEY=... bash scripts/install-server.sh -y.
Nowy serwer w chmurze: deploy/cloud-init/user-data.yaml.
Kubernetes: deploy/kubernetes. Wszystkie tryby: docs/deploy.md.
# Windows
.\install.ps1# Linux / macOS
bash install.shOd teraz w kazdym terminalu wpisujesz pipe. CLI zestawia tunel SSH i laczy sie z agentem.
cd pipe/clients/telegram
cp .env.example .env # TELEGRAM_BOT_TOKEN i TELEGRAM_ALLOWED_USER_IDS
sudo bash ../../scripts/install-server.sh # uruchomi tez bota- "pokaz mi architekture serwera" -- diagram jako obraz; "narysuj, jak zapytanie trafia do sklepu" -- wlasny diagram agenta
- "dlaczego sklep dziala wolno?" -- diagnoza: logi, zasoby, kontenery
- "dodaj serwer 10.0.0.5 jako web-2 (ssh, root)", potem "sprawdz dyski i aktualizacje na wszystkich serwerach" -- workery rownolegle
- "codziennie o 7 sprawdzaj backupy i waznosc certyfikatow, pisz tylko jak cos jest nie tak" -- rutyna
- "gdzie lezy repozytorium bloga?" -- odpowiedz z DIRECTORY
- "odpowiadaj krocej i bez wstepow" -- zapisze to w VIBE
Komendy w obu klientach: /status /mapa /server /katalogi /skille /alerty /rutyny /cele /vibe /historia /pomoc.
| Komponent | Gdzie dziala | Polaczenie z backendem |
|---|---|---|
backend/ |
Serwer (Docker / systemd / Kubernetes) | -- to jest backend |
clients/cli/ |
Twoj laptop | tunel SSH -> TCP 127.0.0.1:7379 (albo kubectl port-forward) |
clients/telegram/ |
Serwer | Unix socket |
clients/discord/, clients/webui/ |
-- | Placeholder -- PR welcome |
CLI / Telegram ──JSON lines──> server.py ──> agent (petla LLM + narzedzia)
│ ├─ handlers ─> security (safe/confirm/forbidden) ─> executor
│ ├─ workery ─> cele: ssh / docker exec / kubectl
│ └─ diagram ─> infra (odkrycie) ─> Mermaid ─> PNG
└── czuwanie + rutyny ──(subscribe)──> alerty na Telegram
Protokol: JSON lines, ramki z tekstem, zalacznikami (diagramy PNG), postepem workerow i zdarzeniami czuwania -- docs/protocol.md.
| Narzedzie | Opis |
|---|---|
execute_command |
Komenda shell na serwerze (przez klasyfikator) |
read_file / write_file |
Odczyt (sekrety redagowane) i zapis plikow (zawsze z potwierdzeniem) |
change_directory |
Katalog roboczy |
git_command |
Git: status, log, diff (od razu); pull, commit, push (z potwierdzeniem) |
system_stats |
CPU, RAM, dyski, procesy -- z /proc hosta |
docker_manage |
Kontenery, obrazy, projekty compose |
network_info |
Porty hosta (z oznaczeniem publicznych), polaczenia, ping, curl, DNS |
cron_manage |
Cron hosta |
diagram |
Mapa infrastruktury albo wlasny diagram Mermaid -> obraz dla uzytkownika |
target_manage / remote_exec |
Zdalne cele (SSH, kontenery, Kubernetes) i komendy na nich |
delegate |
Workery: rownolegli pod-agenci, tylko odczyty, raport dla agenta |
routine_manage |
Zadania wedlug harmonogramu z raportem na Telegram |
server_md / directory / skill_manage / vibe |
Pamiec agenta |
Wszystko lezy w backend/data/ na serwerze (poza gitem, mozna edytowac recznie):
- SERVER.md -- fakty o serwerze: uslugi, domeny, decyzje. W prompcie kazdej rozmowy.
- DIRECTORY (
directory.json) -- mapa miejsc: repozytoria (z remote i galezia), katalogi aplikacji, projekty compose, konfiguracje, dane, logi, backupy. Skan sam znajduje repozytoria i projekty compose. - Skille (
skills/<nazwa>/SKILL.md) -- procedury; kazdy skill ma wlasna komende/nazwa. - VIBE (
vibe/<uzytkownik>.md) -- jak z Toba rozmawiac. Aktualizuje sie w tle co kilka wiadomosci;/vibepokazuje,/vibe resetczysci. - Cele, rutyny (
targets.json,routines.json) i audit log.
- Klasyfikator fail-closed --
safetylko dla rozpoznanych odczytow (tokenowo:ssto niessh), przekierowania,$(...), flagi typufind -deleteczycurl -o-> pytanie o zgode. - Potwierdzenie pokazuje dokladnie to, co sie wykona -- takze dla komend na zdalnych celach.
- Redakcja sekretow -- klucze API, tokeny, hasla i klucze prywatne w wynikach narzedzi sa zastepowane
[ZREDAGOWANO]przed wyslaniem do LLM; agent nie moze nadpisac pliku z zredagowana trescia. - Workery i rutyny tylko czytaja -- zmiany wracaja jako propozycje do zatwierdzenia.
- Audit log kazdej operacji (bez tresci plikow).
AGENT_TOKENchroni socket i port.
Szczegoly i ograniczenia (np. docker.sock = uprawnienia roota): docs/security.md.