Koru używa imgl jako transport wizyjny — fallback po padnięciu pluginu koruide,
oraz executor UI dla MCP koru_desktop_uri_handle.
Ważne: koru przełącza się na koru/.venv (nie imgl/.venv). Instaluj bridge tam:
cd ~/github/semcod/koru
bash scripts/install-imgl-bridge.shRęcznie:
cd ~/github/semcod/koru && source .venv/bin/activate
pip install -e . -e packages/koruenv -e packages/coru -e packages/uri2koru \
-e packages/dsl2koru -e packages/dsl2coru
pip install -e ~/github/semcod/imgl -e ~/github/semcod/imgl/packages/dsl2imgl \
-e ~/github/semcod/imgl/packages/nlp2imglREST (gdy bez nlp2imgl lokalnie, port 8219):
rest2imgl serve --port 8219
export KORU_IMGL_REST_URL=http://127.0.0.1:8219| Zmienna | Domyślnie | Opis |
|---|---|---|
KORU_IMGL_FALLBACK |
auto | 1/0 wymusza; bez ustawienia auto dla jetbrains/zed gdy imgl zainstalowany |
KORU_IMGL_DESKTOP |
0 |
MCP desktop_uri_handle → imgl dla promptów UI |
KORU_IMGL_IMAGE |
/tmp/koru-imgl-screen.png |
Ścieżka zrzutu |
KORU_IMGL_WINDOW |
region-bottom |
Region okna (IDE) |
KORU_IMGL_REST_URL |
http://127.0.0.1:8219 |
REST gdy brak nlp2imgl |
KORU_IMGL_DRY_RUN |
0 |
Bez wykonania na pulpicie |
ide_integration:
default_lane: ide
lanes:
ide:
backend: plugin_socket
ide: cursor
vision_fallback:
backend: imgl
ide: cursorkoruide plugin socket
→ nlp2uri ide-control (KORU_IDE_CONTROL_VIA_NLP2URI=1)
→ imgl vision (auto dla jetbrains/zed; lub KORU_IMGL_FALLBACK=1) ← przed keyboard
→ gillm GuiDriver (KORU_AUTOPILOT_GILLM_FALLBACK=1)
→ os_injector (KORU_OS_INJECTOR_PROFILE)
koru_imgl_execute to narzędzie MCP w Cursorze — nie komenda shell.
# Koru CLI (po pip install -e . w repo koru)
koru imgl execute "wpisz test w Chat input" --window region-bottom --execute
# dsl2coru UI verbs
dsl2coru exec 'UI_TYPE "hello" IN "Chat input" WINDOW region-bottom'
dsl2coru -c 'UI_KEY ctrl+Return' # legacy forma
cli2coru exec 'UI_KEY ctrl+Return' # alternatywa
# Bezpośrednio imgl REST (port 8219, nie 8220=gillm)
rest2imgl serve --port 8219
curl -s -X POST http://127.0.0.1:8219/v1/nl \
-H 'Content-Type: application/json' \
-d '{"prompt":"wpisz test w Chat input","window":"region-bottom","execute":true}'{
"name": "koru_imgl_execute",
"arguments": {
"prompt": "wpisz opisz projekt w Chat input",
"window": "region-bottom",
"dry_run": false
}
}{
"name": "koru_desktop_uri_handle",
"arguments": {
"prompt": "kliknij Projects",
"transport": "imgl",
"window": "region-top",
"dry_run": false
}
}Włącz auto-routing: KORU_IMGL_DESKTOP=1 (prompty UI bez jawnego transport).
dsl2coru exec 'UI_CAPTURE'
dsl2coru exec 'UI_TYPE "hello" IN "Chat input" WINDOW region-bottom'
dsl2coru exec 'UI_KEY ctrl+Return'
dsl2coru exec 'UI_CLICK "Projects" WINDOW region-top'
dsl2coru exec 'UI_NL "wpisz test w Chat input"'| Plik | Rola |
|---|---|
src/koru/integrations/imgl_client.py |
Adapter nlp2imgl / REST |
src/koru/agent_backend_runtime.py |
ImglDesktopBackend |
src/koru/autonomous_cycle_gate.py |
try_imgl_gui_fallback() |
src/koruapi/desktop_uri.py |
transport=imgl |
packages/dsl2coru/handlers/ui.py |
Verby UI_* |
src/koru/control_commands.py |
imgl_command() audyt |