返回

09. OpenClaw Web Control UI ve Canvas Kullanım Kılavuzu

Bu makale OpenClaw'ın Web Control UI ve Canvas özelliklerini detaylı olarak açıklar. Web UI tarayıcı kontrol paneli sağlar, Canvas ise Agent tarafından yönlendirilen görselleştirme çalışma alanıdır. Bu araçları kullanmayı öğrenerek AI asistanınız yalnızca sohbette etkileşim kurmakla kalmaz, aynı zamanda dinamik görselleştirme arayüzleri de oluşturabilir.

OpenClaw v2026.2 için geçerlidir | Bu makale temel kurulumu tamamladığınızı ve OpenClaw’ı tarayıcı üzerinden yönetmek istediğinizi varsayar.

TL;DR: Web UI erişimi http://127.0.0.1:18789 adresindedir; Chat (Sohbet), Sessions (Oturumlar), Config (Yapılandırma), Nodes (Düğümler), Logs (Günlükler), Skills (Beceriler) sayfalarını içerir. Canvas, Agent tarafından yönlendirilen görselleştirme çalışma alanıdır; grafikler, panolar ve etkileşimli arayüzler oluşturabilir. Uzaktan erişim: Tailscale Serve veya SSH tüneli. Mobil Canvas iOS/Android Uygulamasında kullanılabilir.

Web Control UI

Web UI’ye Erişim

Gateway başlatıldıktan sonra tarayıcıda şu adresi açın:

http://127.0.0.1:18789

Arayüz Genel Bakışı

flowchart LR
    subgraph WebUI["Web Control UI"]
        Chat[Chat Sohbet]
        Sessions[Sessions Oturumlar]
        Config[Config Yapılandırma]
        Nodes[Nodes Düğümler]
        Logs[Logs Günlükler]
        Skills[Skills Beceriler]
    end
    
    subgraph Features["Özellikler"]
        F1[Gerçek zamanlı sohbet]
        F2[Oturum yönetimi]
        F3[Yapılandırma düzenleme]
        F4[Düğüm kontrolü]
        F5[Günlük görüntüleme]
        F6[Beceri yönetimi]
    end
    
    Chat --> F1
    Sessions --> F2
    Config --> F3
    Nodes --> F4
    Logs --> F5
    Skills --> F6

Sayfa İşlevleri

Chat (Sohbet)

Özellik Açıklama
Mesaj girişi Metin, Markdown, kod bloklarını destekler
Mesaj geçmişi Tam sohbet kaydını gösterir
Araç çağrısı Araç çağrı sürecini ve sonucunu gösterir
Düşünme süreci Agent düşünme sürecini isteğe bağlı gösterir
Token istatistiği Token kullanımını gösterir
Model değiştirme Kullanılan modeli hızlıca değiştirir

Sessions (Oturumlar)

Özellik Açıklama
Oturum listesi Tüm aktif oturumları görüntüle
Oturum detayı Tek bir oturumun durumunu ve yapılandırmasını görüntüle
Oturum işlemleri Oturumu sıfırla, sil, dışa aktar
Oturum değiştirme Farklı oturumlar arasında geçiş yap
Oturum izolasyonu Kanala, kullanıcıya göre oturumları görüntüle

Config (Yapılandırma)

Özellik Açıklama
Yapılandırma düzenleme Yapılandırma dosyalarını çevrimiçi düzenle
Yapılandırma doğrulama Yapılandırma sözdizimini gerçek zamanlı doğrula
Yapılandırma sıcak güncelleme Yeniden başlatmadan etkinleşir
Yapılandırma dışa aktarma Yapılandırma yedeğini dışa aktar
Yapılandırma geçmişi Yapılandırma değişiklik geçmişini görüntüle

Nodes (Düğümler)

Özellik Açıklama
Düğüm listesi Bağlı cihaz düğümlerini görüntüle
Düğüm durumu Çevrimiçi durumu, izinleri gösterir
Düğüm kontrolü Düğüm işlevlerini etkinleştir/devre dışı bırak
Düğüm eşleştirme Yeni düğümleri eşleştir

Logs (Günlükler)

Özellik Açıklama
Gerçek zamanlı günlük Sistem günlüklerini akış halinde gösterir
Günlük filtreleme Seviyeye, modüle göre filtrele
Günlük arama Anahtar kelime ile günlük ara
Günlük dışa aktarma Günlük dosyasını indir

Skills (Beceriler)

Özellik Açıklama
Beceri listesi Yüklü becerileri görüntüle
Beceri yükleme ClawHub’dan beceri yükle
Beceri yapılandırma Beceri parametrelerini yapılandır
Beceri devre dışı bırakma Becerileri etkinleştir/devre dışı bırak

Web UI Yapılandırması

{
  "web": {
    "enabled": true,
    "port": 18789,
    "bind": "loopback",
    "auth": {
      "mode": "password",
      "password": "your-secure-password"
    },
    "theme": "dark"
  }
}
Yapılandırma Açıklama Varsayılan
enabled Web UI’yi etkinleştir true
port Dinleme portu 18789
bind Bağlama adresi loopback
auth.mode Kimlik doğrulama modu none
auth.password Erişim şifresi -
theme Tema dark

Uzaktan Erişim

Yöntem Bir: Tailscale

{
  "gateway": {
    "tailscale": {
      "mode": "serve"
    }
  }
}

Tailscale ağı üzerinden erişim:

https://your-tailnet-name.ts.net

Yöntem İki: SSH Tüneli

# Yerelde SSH tüneli oluştur
ssh -L 18789:localhost:18789 user@remote-server

# Sonra eriş
http://localhost:18789

Yöntem Üç: Ters Proxy

Caddy veya Nginx kullanın:

Caddyfile:

your-domain.com {
    reverse_proxy localhost:18789
}

Canvas Görselleştirme Çalışma Alanı

Canvas Nedir?

Canvas, Agent tarafından yönlendirilen bir görselleştirme çalışma alanıdır. Agent şunları yapabilir:

  • Dinamik grafikler oluşturma
  • Etkileşimli arayüzler oluşturma
  • Gerçek zamanlı veri gösterme
  • Panolar oluşturma
  • Harici içerik gömme

Canvas Mimarisi

flowchart TB
    subgraph Agent["Agent"]
        PROMPT[İsteği analiz et]
        GEN[A2UI oluştur]
        EXEC[İşlemleri yürüt]
    end
    
    subgraph Canvas["Canvas Runtime"]
        RENDER[Render motoru]
        STATE[Durum yönetimi]
        EVENT[Olay işleme]
    end
    
    subgraph UI["Kullanıcı Arayüzü"]
        DISPLAY[Canvas göster]
        INTERACT[Kullanıcı etkileşimi]
    end
    
    Agent --> Canvas
    PROMPT --> GEN
    GEN --> RENDER
    RENDER --> DISPLAY
    DISPLAY --> INTERACT
    INTERACT --> EVENT
    EVENT --> EXEC

Temel Kullanım

Sohbette Canvas Kullanımı

Kullanıcı: Basit bir yapılacaklar uygulaması oluştur

Agent: Yapılacaklar Canvas uygulaması oluşturacağım...
[Canvas bileşeni oluşturur]

Canvas Komutları

Komut Açıklama
/canvas create Yeni Canvas oluştur
/canvas show Mevcut Canvas’ı göster
/canvas clear Canvas’ı temizle
/canvas export Canvas’ı dışa aktar

Canvas Bileşenleri

Metin Bileşeni

canvas.text({
  content: "Hello, World!",
  style: {
    fontSize: "24px",
    color: "#333",
    fontWeight: "bold"
  }
})

Düğme Bileşeni

canvas.button({
  label: "Click Me",
  onClick: () => {
    console.log("Button clicked!")
  },
  style: {
    background: "#3b82f6",
    color: "white"
  }
})

Liste Bileşeni

canvas.list({
  items: ["Item 1", "Item 2", "Item 3"],
  onSelect: (item) => {
    console.log(`Selected: ${item}`)
  }
})

Grafik Bileşeni

canvas.chart({
  type: "bar",
  data: {
    labels: ["Jan", "Feb", "Mar"],
    datasets: [{
      label: "Revenue",
      data: [100, 200, 150]
    }]
  }
})

Form Bileşeni

canvas.form({
  fields: [
    { name: "username", type: "text", label: "Username" },
    { name: "email", type: "email", label: "Email" },
    { name: "submit", type: "submit", label: "Submit" }
  ],
  onSubmit: (data) => {
    console.log("Form submitted:", data)
  }
})

Pratik Örnekler

Örnek Bir: Veri Panosu

// Agent tarafından oluşturulan Canvas kodu
canvas.render(`
  <Dashboard>
    <Header title="Sales Dashboard" />
    <Row>
      <Card title="Total Revenue" value="$125,430" trend="+12%" />
      <Card title="Active Users" value="3,245" trend="+5%" />
      <Card title="Conversion Rate" value="4.2%" trend="-1%" />
    </Row>
    <Row>
      <Chart type="line" data={revenueData} title="Revenue Trend" />
      <Chart type="bar" data={usersData} title="User Growth" />
    </Row>
  </Dashboard>
`)

Örnek İki: Etkileşimli Hesap Makinesi

canvas.render(`
  <Calculator>
    <Display value={display} />
    <Keypad>
      <Button onClick={() => input('7')}>7</Button>
      <Button onClick={() => input('8')}>8</Button>
      <Button onClick={() => input('9')}>9</Button>
      <Button onClick={() => input('/')}>/</Button>
      // ... daha fazla düğme
    </Keypad>
  </Calculator>
`)

const state = { display: '0' }
function input(value) {
  state.display = calculate(state.display, value)
  canvas.update()
}

Örnek Üç: Gerçek Zamanlı İzleme

canvas.render(`
  <Monitor>
    <Header title="System Monitor" />
    <Metrics>
      <Metric 
        label="CPU Usage" 
        value={cpuUsage} 
        threshold={80}
        unit="%"
      />
      <Metric 
        label="Memory" 
        value={memoryUsed} 
        threshold={90}
        unit="GB"
      />
      <Metric 
        label="Disk I/O" 
        value={diskIO} 
        unit="MB/s"
      />
    </Metrics>
    <Chart type="line" data={historyData} realtime />
  </Monitor>
`)

// Verileri periyodik olarak güncelle
setInterval(() => {
  cpuUsage = getCpuUsage()
  memoryUsed = getMemoryUsed()
  diskIO = getDiskIO()
  canvas.update()
}, 1000)

Canvas API

canvas.render(template)

Canvas içeriğini render eder.

canvas.render(`
  <Container>
    <Text>Hello</Text>
  </Container>
`)

canvas.update()

Canvas durumunu günceller.

state.count++
canvas.update()

canvas.clear()

Canvas’ı temizler.

canvas.clear()

canvas.snapshot()

Canvas anlık görüntüsünü alır.

const image = await canvas.snapshot()

canvas.eval(code)

Canvas bağlamında kod çalıştırır.

await canvas.eval(`
  document.getElementById('counter').innerText = '${count}'
`)

A2UI Bileşen Kütüphanesi

Canvas, A2UI (Agent-to-UI) bileşen kütüphanesini kullanır:

Düzen Bileşenleri

Bileşen Açıklama
<Container> Konteyner
<Row> Yatay düzen
<Column> Dikey düzen
<Grid> Izgara düzeni
<Card> Kart konteyneri

Veri Gösterimi

Bileşen Açıklama
<Text> Metin
<Heading> Başlık
<List> Liste
<Table> Tablo
<Chart> Grafik

Etkileşim Bileşenleri

Bileşen Açıklama
<Button> Düğme
<Input> Giriş alanı
<Select> Açılır seçim
<Checkbox> Onay kutusu
<Form> Form

Canvas ve Agent İşbirliği

Agent Canvas Oluşturur

Kullanıcı: Proje ilerleme takip paneli oluşturmama yardım et

Agent: Tamam, proje ilerleme takip Canvas'ı oluşturacağım...

Agent şunları yapar:

  1. İhtiyacı analiz eder
  2. Düzeni tasarlar
  3. Canvas kodu oluşturur
  4. Arayüzü render eder

Canvas Agent’ı Tetikler

Kullanıcı Canvas ile etkileşime girdiğinde Agent işlemlerini tetikleyebilir:

canvas.button({
  label: "Generate Report",
  onClick: async () => {
    await agent.send("Aylık rapor oluştur")
  }
})

Farklı Cihazlarda Canvas Kullanımı

macOS

Canvas bağımsız pencere olarak gösterilir:

openclaw canvas show

iOS

Canvas iOS Node App içinde entegre edilmiştir:

  • OpenClaw iOS App’i açın
  • Canvas sekmesine geçin

Android

Canvas Android Node App içinde entegre edilmiştir:

  • OpenClaw Android App’i açın
  • Canvas sekmesine geçin

Web

Canvas Web UI’de gösterilir:

  • http://localhost:18789 adresini açın
  • Canvas sekmesine tıklayın

Canvas Yapılandırması

{
  "canvas": {
    "enabled": true,
    "theme": "dark",
    "autoUpdate": true,
    "updateInterval": 1000,
    "maxComponents": 100,
    "persistState": true
  }
}
Yapılandırma Açıklama Varsayılan
enabled Canvas’ı etkinleştir true
theme Tema dark
autoUpdate Otomatik durum güncelleme true
updateInterval Güncelleme aralığı (milisaniye) 1000
maxComponents Maksimum bileşen sayısı 100
persistState Durum kalıcılığı true

Özet

Web Control UI ve Canvas, OpenClaw’ı yalnızca bir sohbet asistanı değil, tam bir etkileşim platformu haline getirir:

  • Web UI: Tarayıcı kontrol paneli, her şeyi yönetir
  • Canvas: Agent tarafından yönlendirilen görselleştirme çalışma alanı
  • A2UI: Zengin bileşen kütüphanesi, hızlı arayüz oluşturma
  • Çapraz cihaz: macOS, iOS, Android, Web birleşik deneyim

Bu özellikler sayesinde Agent’ın panolar, yönetim arayüzleri ve etkileşimli araçlar oluşturmasını sağlayarak AI asistanının uygulama senaryolarını büyük ölçüde genişletebilirsiniz.


Bu Bölümün Özeti:

  • Web Control UI’nin işlevlerini ve kullanımını öğrendiniz
  • Canvas’ın temel kavramlarını ve bileşenlerini öğrendiniz
  • A2UI bileşen kütüphanesini tanıdınız
  • Canvas ile Agent arasındaki işbirliği yöntemlerini öğrendiniz
  • Çoklu cihaz Canvas kullanım yöntemlerini öğrendiniz

Güncelleme Kayıtları:

  • 2026-02-26: İlk sürüm yayınlandı, OpenClaw v2026.2 temel alındı

Seri Navigasyonu: