API Referansı
icc, programatik kontrol için hem bir CLI aracı hem de bir Unix soketi sağlar. Her komut her iki arayüz aracılığıyla kullanılabilir.
Socket
| Build | Yol |
|---|---|
| Release | /tmp/icc.sock |
| Debug | /tmp/icc-debug.sock |
| Etiketli debug build | /tmp/icc-debug-<tag>.sock |
ICC_SOCKET_PATH ortam değişkeni ile geçersiz kılın. Çağrı başına yeni satırla sonlandırılmış bir JSON isteği gönderin:
{"id":"req-1","method":"workspace.list","params":{}}
// Response:
{"id":"req-1","ok":true,"result":{"workspaces":[...]}}{"command":"..."} gibi eski v1 JSON yükleri desteklenmez.Erişim modları
| Mod | Açıklama | Nasıl etkinleştirilir |
|---|---|---|
| Off | Socket devre dışı | Ayarlar arayüzü veya ICC_SOCKET_MODE=off |
| icc processes only | Yalnızca icc terminalleri içinde başlatılan süreçler bağlanabilir. | Ayarlar arayüzünde varsayılan mod |
| allowAll | Herhangi bir yerel sürecin bağlanmasına izin ver (köken kontrolü yok). | Yalnızca ortam değişkeni geçersiz kılma: ICC_SOCKET_MODE=allowAll |
CLI seçenekleri
| Bayrak | Açıklama |
|---|---|
--socket PATH | Özel socket yolu |
--json | JSON formatında çıktı |
--window ID | Belirli bir pencereyi hedefle |
--workspace ID | Belirli bir çalışma alanını hedefle |
--surface ID | Belirli bir yüzeyi hedefle |
--id-format refs|uuids|both | JSON çıktısında tanımlayıcı formatını kontrol et |
Çalışma alanı komutları
list-workspaces
Tüm açık çalışma alanlarını listele.
icc list-workspaces
icc list-workspaces --json{"id":"ws-list","method":"workspace.list","params":{}}new-workspace
Yeni bir çalışma alanı oluştur.
icc new-workspace{"id":"ws-new","method":"workspace.create","params":{}}select-workspace
Belirli bir çalışma alanına geç.
icc select-workspace --workspace <id>{"id":"ws-select","method":"workspace.select","params":{"workspace_id":"<id>"}}current-workspace
Şu anda aktif çalışma alanını al.
icc current-workspace
icc current-workspace --json{"id":"ws-current","method":"workspace.current","params":{}}close-workspace
Bir çalışma alanını kapat.
icc close-workspace --workspace <id>{"id":"ws-close","method":"workspace.close","params":{"workspace_id":"<id>"}}Bölme komutları
new-split
Yeni bir bölünmüş panel oluştur. Yönler: left, right, up, down.
icc new-split right
icc new-split down{"id":"split-new","method":"surface.split","params":{"direction":"right"}}list-surfaces
Geçerli çalışma alanındaki tüm yüzeyleri listele.
icc list-surfaces
icc list-surfaces --json{"id":"surface-list","method":"surface.list","params":{}}focus-surface
Belirli bir yüzeye odaklan.
icc focus-surface --surface <id>{"id":"surface-focus","method":"surface.focus","params":{"surface_id":"<id>"}}Girdi komutları
send
Odaklanılan terminale metin girdisi gönder.
icc send "echo hello"
icc send "ls -la\n"{"id":"send-text","method":"surface.send_text","params":{"text":"echo hello\n"}}send-key
Bir tuş vuruşu gönder. Tuşlar: enter, tab, escape, backspace, delete, up, down, left, right.
icc send-key enter{"id":"send-key","method":"surface.send_key","params":{"key":"enter"}}send-surface
Belirli bir yüzeye metin gönder.
icc send-surface --surface <id> "command"{"id":"send-surface","method":"surface.send_text","params":{"surface_id":"<id>","text":"command"}}send-key-surface
Belirli bir yüzeye tuş vuruşu gönder.
icc send-key-surface --surface <id> enter{"id":"send-key-surface","method":"surface.send_key","params":{"surface_id":"<id>","key":"enter"}}Bildirim komutları
notify
Bir bildirim gönder.
icc notify --title "Title" --body "Body"
icc notify --title "T" --subtitle "S" --body "B"{"id":"notify","method":"notification.create","params":{"title":"Title","subtitle":"S","body":"Body"}}list-notifications
Tüm bildirimleri listele.
icc list-notifications
icc list-notifications --json{"id":"notif-list","method":"notification.list","params":{}}clear-notifications
Tüm bildirimleri temizle.
icc clear-notifications{"id":"notif-clear","method":"notification.clear","params":{}}Kenar çubuğu meta veri komutları
Herhangi bir çalışma alanı için kenar çubuğunda durum rozetleri, ilerleme çubukları ve günlük girişleri ayarlayın. Build betikleri, CI entegrasyonları ve durumu bir bakışta göstermek isteyen AI kodlama ajanları için kullanışlıdır.
set-status
Kenar çubuğu durum rozeti ayarlayın. Farklı araçların kendi girişlerini yönetebilmesi için benzersiz bir anahtar kullanın.
icc set-status build "compiling" --icon hammer --color "#ff9500"
icc set-status deploy "v1.2.3" --workspace workspace:2set_status build compiling --icon=hammer --color=#ff9500 --tab=<workspace-uuid>clear-status
Anahtara göre kenar çubuğu durum girişini kaldırın.
icc clear-status buildclear_status build --tab=<workspace-uuid>list-status
Bir çalışma alanı için tüm kenar çubuğu durum girişlerini listeleyin.
icc list-statuslist_status --tab=<workspace-uuid>set-progress
Kenar çubuğunda bir ilerleme çubuğu ayarlayın (0.0 ile 1.0).
icc set-progress 0.5 --label "Building..."
icc set-progress 1.0 --label "Done"set_progress 0.5 --label=Building... --tab=<workspace-uuid>clear-progress
Kenar çubuğu ilerleme çubuğunu temizleyin.
icc clear-progressclear_progress --tab=<workspace-uuid>log
Kenar çubuğuna bir günlük girişi ekleyin. Seviyeler: info, progress, success, warning, error.
icc log "Build started"
icc log --level error --source build "Compilation failed"
icc log --level success -- "All 42 tests passed"log --level=error --source=build --tab=<workspace-uuid> -- Compilation failedclear-log
Tüm kenar çubuğu günlük girişlerini temizleyin.
icc clear-logclear_log --tab=<workspace-uuid>list-log
Kenar çubuğu günlük girişlerini listeleyin.
icc list-log
icc list-log --limit 5list_log --limit=5 --tab=<workspace-uuid>sidebar-state
Tüm kenar çubuğu meta verilerini dökün (cwd, git dalı, portlar, durum, ilerleme, günlükler).
icc sidebar-state
icc sidebar-state --workspace workspace:2sidebar_state --tab=<workspace-uuid>Yardımcı komutlar
ping
icc'un çalışıp çalışmadığını ve yanıt verip vermediğini kontrol edin.
icc ping{"id":"ping","method":"system.ping","params":{}}
// Response: {"id":"ping","ok":true,"result":{"pong":true}}capabilities
Mevcut socket yöntemlerini ve geçerli erişim modunu listeleyin.
icc capabilities
icc capabilities --json{"id":"caps","method":"system.capabilities","params":{}}identify
Odaklanılan pencere/çalışma alanı/panel/yüzey bağlamını gösterin.
icc identify
icc identify --json{"id":"identify","method":"system.identify","params":{}}Ortam değişkenleri
| Değişken | Açıklama |
|---|---|
ICC_SOCKET_PATH | CLI ve entegrasyonlar tarafından kullanılan socket yolunu geçersiz kılın |
ICC_SOCKET_ENABLE | Soketi zorla etkinleştir/devre dışı bırak (1/0, true/false, on/off) |
ICC_SOCKET_MODE | Erişim modunu geçersiz kılın (iccOnly, allowAll, off). Ayrıca icc-only/icc_only ve allow-all/allow_all kabul eder |
ICC_WORKSPACE_ID | Otomatik ayarlı: geçerli çalışma alanı ID |
ICC_SURFACE_ID | Otomatik ayarlı: geçerli yüzey ID |
TERM_PROGRAM | ghostty olarak ayarlı |
TERM | xterm-ghostty olarak ayarlı |
icc'u algılama
# Prefer explicit socket path if set
SOCK="${ICC_SOCKET_PATH:-/tmp/icc.sock}"
[ -S "$SOCK" ] && echo "Socket available"
# Check for the CLI
command -v icc &>/dev/null && echo "icc available"
# In icc-managed terminals these are auto-set
[ -n "${ICC_WORKSPACE_ID:-}" ] && [ -n "${ICC_SURFACE_ID:-}" ] && echo "Inside icc surface"
# Distinguish from regular Ghostty
[ "$TERM_PROGRAM" = "ghostty" ] && [ -n "${ICC_WORKSPACE_ID:-}" ] && echo "In icc"Örnekler
Python istemcisi
import json
import os
import socket
SOCKET_PATH = os.environ.get("ICC_SOCKET_PATH", "/tmp/icc.sock")
def rpc(method, params=None, req_id=1):
payload = {"id": req_id, "method": method, "params": params or {}}
with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as sock:
sock.connect(SOCKET_PATH)
sock.sendall(json.dumps(payload).encode("utf-8") + b"\n")
return json.loads(sock.recv(65536).decode("utf-8"))
# List workspaces
print(rpc("workspace.list", req_id="ws"))
# Send notification
print(rpc(
"notification.create",
{"title": "Hello", "body": "From Python!"},
req_id="notify"
))Shell betiği
#!/bin/bash
SOCK="${ICC_SOCKET_PATH:-/tmp/icc.sock}"
icc_cmd() {
printf "%s\n" "$1" | nc -U "$SOCK"
}
icc_cmd '{"id":"ws","method":"workspace.list","params":{}}'
icc_cmd '{"id":"notify","method":"notification.create","params":{"title":"Done","body":"Task complete"}}'Bildirimli build betiği
#!/bin/bash
npm run build
if [ $? -eq 0 ]; then
icc notify --title "✓ Build Success" --body "Ready to deploy"
else
icc notify --title "✗ Build Failed" --body "Check the logs"
fi