OVARI TERMINALv0.2.0

/ Dokumentáció

Dokumentáció

Telepítéstől a bizalmi határig. Ugyanaz a tartalom, mint amit a repó README-je és a CLAUDE.md dokumentál, csak végigolvasható sorrendben.

Telepítés

A legegyszerűbb út a kész telepítő a Letöltés oldalról. Windows alatt NSIS telepítő (.exe), macOS-en .dmg, Linuxon .AppImage.

Aláírás: a kiadások jelenleg nincsenek kódaláírva, ezért a Windows SmartScreen és a macOS Gatekeeper figyelmeztethet. A telepítő SHA-256 lenyomata a letöltési oldalon szerepel — érdemes összevetni.

Forrásból

git clone <repó> ovari-terminal
cd ovari-terminal
npm install        # a postinstall lefordítja a node-pty-t
npm run dev

Az npm install a postinstall lépésben lefuttatja az electron-builder install-app-deps parancsot, mert a node-pty natív modul. Node 25 vagy újabb kell — a tesztek a Node saját TypeScript-feldolgozására támaszkodnak.

Első indítás

Üres állapotban egyetlen dolgod van: nyiss egy terminált. A New terminal párbeszéd három dolgot kér — munkakönyvtárat, indítóparancsot és környezeti változókat —, és a mappán kívül mindkettő opcionális.

  • Quick shell — párbeszéd nélkül nyit shellt a home könyvtárban.
  • Claude / Codex — agentet indít a fókuszált panel mappájában, előre beállított modellel.
  • Update CLIs — új terminálban futtatja a claude update; codex update parancsot, hogy a kimenet olvasható maradjon.

A második indításnál felajánlja az előző munkamenet visszaállítását. A jelölőnégyzet bekapcsolva a claude kezdetű parancsokhoz hozzáteszi a --continue-t, tehát a beszélgetések ott folytatódnak, ahol abbahagytad.

A visszaállítás nem hozza vissza a környezeti változók értékét, mert azok soha nem kerülnek lemezre. Ahol egy munkamenetnek kellenek, ott újra meg kell adni őket.

Munkamenetek és presetek

Egy panel egy folyamat. A munkakönyvtár azt mondja meg, mit lát az agent; az indítóparancs azt, mi induljon el a shellben; a környezeti változók pedig csak abban a PTY-ban léteznek.

Presetek

A párbeszéd tetején lévő chipek mentett munkamenetek: parancs @ mappa formában jelennek meg. A „Save as preset” az aktuális űrlapot menti, a chip pedig visszatölti. Legfeljebb 32 preset tárolható.

Kilépett folyamat

Ha egy folyamat kilép, a panel fejléce alatt megjelenik a kilépési kód és egy Restart gomb. Az újraindítás helyben történik: a panel nem mozdul el, az azonosítója marad, a visszatekintés viszont elveszik.

Panelek, fülek, elrendezések

A Split right és Split down ugyanazt a párbeszédet nyitja meg, és a fókuszált panelt osztja. A panelek közti elválasztót húzva állítod az arányt.

  • NagyításCtrl + Shift + F vagy a fejléc ⤢ ikonja. A split alatta életben marad, csak eltakarja.
  • FülekCtrl + Shift + N új munkaterületet nyit, Ctrl + PageUp és Ctrl + PageDown léptet. A rejtett fülek terminálja fut tovább.
  • Mentett elrendezések — a Layouts menüben az aktuális fül elmenthető sablonként, és új fülön nyitható. A sablon mindig frissen indul.
  • BetűméretCtrl + görgő vagy Ctrl + + / -.
Az elrendezés, a fülnevek, a panelnevek, a presetek, a betűméret és az értesítés-kapcsoló a workspace.json-ben tárolódik: Windowson %APPDATA%/ovari-terminal.

Fogd és vidd

Egy dobás egyszerre mappákat és fájlokat is tartalmazhat: a mappákból terminál lesz, a fájlokból beírt elérési út.

  • Mappa az ablakra — terminál nyílik benne. Ha épp nyitva van a párbeszéd, akkor annak a munkakönyvtár mezőjét tölti ki.
  • Fájl egy panelre — az elérési út beíródik a promptba, újsor nélkül (a szóközös utak idézőjelbe kerülnek). Semmi nem hajtódik végre.
  • Kép a böngészőből — az ilyen húzás bájtokat hoz, elérési utat nem. Az app kiírja egy ideiglenes fájlba, és annak az útját írja be — ez az egyetlen forma, amit egy AI CLI meg tud nyitni.
  • Beillesztett képernyőképCtrl + V vagy Ctrl + Shift + V ugyanígy: ideiglenes fájl, majd az elérési út.
  • Panel fejléce másik panelre — középre dobva helyet cserélnek, a szél külső negyedére dobva oda osztódik.
  • Panel fejléce egy fülre — a panel átkerül abba a munkaterületbe, futás közben.
  • Fül egy másik fülre — átrendezi a fülsávot.

A fejlécben lévő 📎 ugyanez húzás nélkül: megnyit egy fájlválasztót, és a kiválasztott utak ugyanúgy beíródnak.

A dobott és beillesztett képek a %TEMP%/ovari-terminal-media mappába kerülnek, időbélyeggel a nevük előtt. Egy nap után a következő induláskor törlődnek — a kép átadás, nem tárolás.
Ctrl + Shift + Z visszavonja az utolsó áthelyezést, húsz szintig. Az undo szándékosan csak átrendezést von vissza: ha közben terminál nyílt vagy záródott, a visszavonási előzmény eldobódik — egy visszavonás nem hozhat vissza megölt shellt.

AI CLI-k

A Claude és a Codex gomb a fókuszált panel mappájában indít agentet, előre beírt paraméterekkel. A modellek az App.tsx-ben, két konstansban vannak kikötve — ott kell átírni, ha erősebb modell jelenik meg.

CLAUDE_COMMAND = "claude --model 'opus[1m]' --effort ultracode"
CODEX_COMMAND  = "codex -m gpt-5.6-sol -c model_reasoning_effort='high'"

Remote control

A gomb minden Claude Code-ot futtató panelbe beírja a /remote-control parancsot. Hogy melyik panel az, két jelből derül ki: az indítóparancs claude-dal kezdődik, vagy a mérő hozzárendelt egy Claude-naplót. A parancs és az Enter két külön írás, mintegy 120 ms szünettel — egyben megérkezve a CLI beviteli sávja a kocsivisszát a beillesztés részének olvashatja.

Broadcast

Bekapcsolva minden leütés az aktív fül összes paneljébe megy. A munkaterület kap egy keretet, amit nem lehet nem észrevenni — hat agentnek véletlenül üzenni drága. A kimaradás egyszerű: tedd a munkamenetet másik fülre.

Token- és költségmérők

A mérő nem becsül: a CLI-k saját, csak hozzáfűzhető naplóit olvassa — ~/.claude/projects/**/*.jsonl és ~/.codex/sessions/**/*.jsonl —, egyetlen könyvtárbejárással, 15 másodpercenként az összes panelre.

  • Egy panel akkor kap egy naplót, ha a munkakönyvtár egyezik és a fájl a panel megnyitása után íródott.
  • Fájlonként bájt-eltolást tart nyilván, tehát minden körben csak az újonnan hozzáírt sorokat dolgozza fel.
  • A Claude költsége árlistából jön; amelyik modellhez nincs bejegyzés, ott token látszik, nem kitalált összeg.

A panelfejlécben rövid összeg ($0.42 vagy 128k), a felső sávban forrásonkénti bontás, több panel esetén pedig egy Σ összesítés, amelyben minden munkamenet csak egyszer számol.

Az üveg felület

Az elmosást az operációs rendszer végzi, nem a böngészőmotor. Windows 11 22H2-től az ablak acrylic rendszerhátteret kér, macOS-en under-window vibrancy-t, és a stíluslap :root-tól lefelé átlátszó, hogy a hatás átjöhessen.

Miért nincs elmosás a szöveg alatt

A backdrop-filter a felülete alatti tartalmat mossa el, és minden képkockán újra kell számolni, amikor a felület újrarajzolódik. Egy folyamatosan kimenetet szóró terminálnál ez hat panelen valódi képkockákba kerülne — ezért a lapon belüli elmosás csak arra a díszletre kerül, ami interakcióra rajzolódik újra: a felső sáv, a fülsáv, a panelfejléc, a párbeszédek és a menük. A panel törzse egyszerű áttetsző réteg a rendszer elmosása fölött.

Ha kevesebb átlátszóságot szeretnél

  • A rendszer „csökkentett átlátszóság” beállítása (prefers-reduced-transparency) tömör, sötét felületre vált — ugyanarra, ami Windows 10-en és backdrop-filter nélkül is látszik.
  • Kézzel: a src/renderer/styles.css tetején a --fill-* változók alfa-értéke szabályozza az egészet. A --fill-pane a terminál törzse — ennek emelése hozza vissza a kontrasztot világos háttérképnél.
A terminál maga is átlátszó: az xterm témájának háttere #0b0b0b00. Az alfa csak #rrggbbaa vagy rgba() formában érvényes — más szintaxist az xterm csendben tömör feketére cserél.

Gyorsbillentyűk

BillentyűMűvelet
Ctrl + TÚj terminál (a fókuszált panelt osztja)
Ctrl + Shift + EOsztás jobbra
Ctrl + Shift + OOsztás lefelé
Ctrl + WFókuszált panel bezárása
Ctrl + Shift + FPanel nagyítása / visszaállítása
Ctrl + FKeresés a visszatekintésben (a panelé)
Ctrl + Shift + CKijelölés másolása (Ctrl + Insert is)
Ctrl + Shift + VBeillesztés (Shift + Insert is)
Jobb klikk a panelenMásolás, beillesztés, kijelölés, visszatekintés törlése
Ctrl + Shift + NÚj fül (munkaterület)
Ctrl + PageUp / PageDownFülváltás
Alt + nyilakFókusz a szomszédos panelre
Ctrl + + / - vagy Ctrl + görgőBetűméret
Ctrl + Shift + ZÁthelyezés visszavonása
EscPárbeszéd bezárása
Dupla kattintás a panel nevénÁtnevezés
A Ctrl + Z szándékosan a shellé marad (feladatkezelés), ezért lett a visszavonás Ctrl + Shift + Z. Ugyanígy a Ctrl + F a panel keresője, a nagyítás pedig Ctrl + Shift + F.

Adatok és bizalmi határ

Egy terminál shell-parancsokat futtat, tehát a bizalmi határnak nem szabad díszítésnek lennie. A renderelő nem megbízható bemenetként van kezelve.

  • Homokozósandbox: true, contextIsolation: true, nodeIntegration: false. A renderelőnek nincs Node hozzáférése, a teljes felület egy befagyasztott window.terminalApi.
  • Csatornák — minden kezelő ellenőrzi, hogy a küldő ennek az ablaknak a fő kerete-e, validálja a nyers adatot, majd az azonosító tulajdonosát. Legfeljebb 32 munkamenet.
  • Külső linkek — csak HTTPS, jelszó nélküli URL-lel. Új ablak és navigáció letiltva, csomagolt buildben CSP.
  • Ami lemezre kerül — elrendezés, fül- és panelnevek, presetek (csak a változónevek), betűméret, kapcsolók. A workspace.json írása ideiglenes fájlba, majd átnevezéssel történik, és a beolvasás ugyanazokon a korlátokon megy át, mint a rendererből érkező adat.
  • Ami nem kerül lemezre — a környezeti változók értéke, a visszatekintés és a futó folyamatok.

Verziózás és kiadás

A verzió egyetlen helyen születik: a CHANGELOG.md Unreleased szakaszában leírod, mi változott, aztán egy paranccsal kiadod.

npm run release patch      # 0.2.0 -> 0.2.1
npm run release minor      # 0.2.0 -> 0.3.0
npm run release 1.0.0-rc.1 # kézi verzió
npm run release minor -- --no-git
  • Átírja a package.json verzióját, és dátumozott szakaszba mozgatja az Unreleased jegyzeteket.
  • Ha van git repó, commitol és annotált taget készít (v0.3.0); ha nincs, szól és továbbmegy.
  • Az app a verziót fordításkor kapja meg (__APP_VERSION__), és a logó mellett mutatja.
  • Ez a weboldal ugyanezt a két fájlt olvassa, tehát a letöltési és verziótörténet-oldal magától követi.

Telepítők a weboldalra

npm run dist       # electron-builder -> release/
npm run downloads  # release/ -> site/public/downloads/ + manifest.json

A downloads szkript átnevezi a fájlokat URL-barát alakra, kiszámolja a méretet és a SHA-256 lenyomatot, és a manifestbe írja. Ha egy platformhoz nincs helyi fájl, a letöltési oldal a GitHub kiadási linkre esik vissza; ha az sincs beállítva, a forrásból fordítást ajánlja.

Hibaelhárítás

Nem látszik az üveghatás

A rendszerháttér a Windows 11 22H2 (22621-es build) előtti verziókban nem létezik, ott az ablak tömör marad — ez nem hiba. Ha a Windows „Átlátszósági effektusok” beállítása ki van kapcsolva, vagy a rendszer csökkentett átlátszóságot kér, a felület szándékosan tömörre vált.

Az agent nem folytatja a beszélgetést

A visszaállításkor hozzáadott --continue csak akkor működik, ha az adott mappában van előző beszélgetés. Ha nincs, a panel kiírja a CLI hibáját, és a Restart gomb ott van mellette.

Nem indul el a terminál

A munkakönyvtárnak létező mappának kell lennie — a főfolyamat ezt újra ellenőrzi. Windowson powershell.exe -NoLogo indul, máshol $SHELL -l, hogy a bejelentkezési shell PATH-ja elérhető legyen a CLI-knek.

Elveszett a visszatekintés

A visszatekintés és a futó folyamatok csak a memóriában élnek. Panel újraindítása, alkalmazás bezárása vagy a gép újraindítása után az elrendezés visszajön, a kimenet nem.