Katalog demonstruje imgl w różnych systemach, konfiguracjach i zastosowaniach: od zrzutu ekranu (vdisplay) → semantyczny layout → VQL → katalog akcji → URI → NL → opcjonalnie klik na pulpicie.
Dokumentacja rdzeniowa: docs/README.md · docs/vql-export.md · docs/capture.md
cd ~/github/semcod/imgl
python -m venv .venv && source .venv/bin/activate
pip install -e ".[llm,capture]" # OCR + interakcja + capture + opcjonalny LLM
# Tesseract (OCR)
sudo apt install tesseract-ocr tesseract-ocr-pol # Debian/UbuntuCapture z vdisplay (Wayland mirror, bez dialogu GNOME):
make install-dev # imgl[capture] + editable vdisplay
# lub: imgl install vdisplayOpcjonalnie (integracje lokalne, nie na PyPI):
pip install -e ~/github/wronai/vdisplay[pillow]
pip install -e ~/github/oqlos/vql/packages/uri2vql
pip install -e ~/github/oqlos/vql
pip install -e ~/github/oqlos/vql/packages/img2vql
pip install -e ~/github/wronai/img2nl[analyze]| Katalog | Co pokazuje |
|---|---|
| platforms/gnome-wayland | GNOME + Wayland, vdisplay mirror + portal fallback |
| platforms/x11 | X11, xdotool, szybszy capture |
| platforms/macos | macOS, Tesseract, ograniczenia automatyzacji |
| workflows/capture-to-action | Pełna ścieżka: capture → VQL → klik |
| workflows/window-picker | Wybór regionu okna, wycinki PNG |
| workflows/multi-step-agent | Pętla agenta: capture → act → capture |
| workflows/web-ui | Web UI na :8008 — manual + autonomiczny agent |
| applications/github-browser | Sterowanie GitHub w przeglądarce |
| applications/ide-editor | IDE (Windsurf/VS Code) — terminal, pliki |
| applications/dialog-form | Formularze, pola input, Save/Cancel |
| configurations/ocr-filtered | Domyślny filtr szumu OCR |
| configurations/llm-vision | Katalog z vision LLM (OpenRouter) |
| configurations/per-window-llm | LLM tylko na wycinku wybranego okna |
| configurations/execute-desktop | --execute, xdotool, guard DISPLAY |
| integrations/uri2vql | vql://window/imgl przez uri2vql |
| integrations/nlp2uri | NL → URI → akcja |
| integrations/python-api | API Python: analyze, VQL, actions, catalog |
| scripts | Gotowe skrypty demonstracyjne |
# 1. Zrzut + analiza + VQL (jeden krok)
make install-dev
make capture-analyze
# lub: imgl capture -o screen.png --verify --analyze --lang eng+pol
# 2. Wykryte okna + wycinki
imgl windows screen.png --export-crops --annotate
# 3. Interakcja z LLM na regionie GitHub
export OPENROUTER_API_KEY=sk-or-... # lub .env w katalogu imgl
imgl interact screen.png --llm --window region-top --executevdisplay.capture_host_to_file
│
▼
screen.png + screen.capture.json (provenance: method, display, monitor)
│
▼
imgl analyze / load_or_analyze (+ window_os z vdisplay, gdy dostępny)
│
├─► screen.vql.json (VQLProgram: warstwy, relations, metadata)
├─► screen.vql.imgl.json (cache Scene — szybsze list/click)
└─► Scene: windows, elements, ocr_boxes
│
├─► window_scope.discover_windows() → region-top, region-bottom, …
├─► build_interactive_catalog() → numerowana lista akcji
│ └─► refine_catalog_with_llm() (opcjonalnie, per-window crop)
├─► nlp2uri / numer / URI → vql://window/imgl?action=click
└─► execute_action() → xdotool (+ guard DISPLAY)
Dla screen.png:
| Plik | Opis |
|---|---|
screen.capture.json |
Provenance capture (vdisplay method, DISPLAY, monitor) |
screen.captured_at |
Timestamp świeżości zrzutu |
screen.vql.json |
VQLProgram (metadata.capture, window_os, scene.relations) |
screen.vql.imgl.json |
Cache Scene (OCR) — przy vql_file=screen.vql.json |
screen.numbered.png |
Mapa numerów katalogu na całym zrzucie |
screen.region-top.png |
Wycinek regionu region-top |
screen.region-top.numbered.png |
Podgląd regionu z numerem |
Przy własnym -o layout.vql.json cache to layout.vql.imgl.json.
examples/scripts/demo-windows.sh screen.png
examples/scripts/demo-github.sh screen.png
examples/scripts/demo-nlp2uri.py screen.png
examples/scripts/demo-agent-loop.sh- README.md — instalacja i API
- docs/vql-export.md — format VQL, provenance, execute guard
- docs/architecture.md — podział imgl / vdisplay / vql
- CHANGELOG.md — historia zmian