Skip to content

Repository files navigation

Pipe

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.


Czym rozni sie od Claude Code, Codex czy Hermes Agent

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.

Szybki start

1. Postaw backend na serwerze

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.

2. Podlacz CLI ze swojego laptopa

# Windows
.\install.ps1
# Linux / macOS
bash install.sh

Od teraz w kazdym terminalu wpisujesz pipe. CLI zestawia tunel SSH i laczy sie z agentem.

3. Telegram (opcjonalnie, polecane -- tu przychodza alerty)

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

Co mozesz napisac

  • "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.


Architektura

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.


Narzedzia agenta

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

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; /vibe pokazuje, /vibe reset czysci.
  • Cele, rutyny (targets.json, routines.json) i audit log.

Bezpieczenstwo

  • Klasyfikator fail-closed -- safe tylko dla rozpoznanych odczytow (tokenowo: ss to nie ssh), przekierowania, $(...), flagi typu find -delete czy curl -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_TOKEN chroni socket i port.

Szczegoly i ograniczenia (np. docker.sock = uprawnienia roota): docs/security.md.


Dokumentacja

About

Terminal and Telegram pipe to communicate with your VPS

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages