💡 3 Maddede Bu Yazının Özeti
OpenHands Agent Canvas 1.9.0 kurulumunu ve Türkçe arayüzünü test ettik; mimari, ajan bağlantıları, erişilebilirlik, güvenlik, maliyet ve sınırlamalar.
Kısa sonuç: OpenHands 1.9.0 ile öne çıkan Agent Canvas, OpenHands, Codex, Claude Code ve Gemini CLI gibi kod ajanlarını tek bir web arayüzünden çalıştırıp izlemeyi amaçlayan, kendi sunucunuzda barındırılabilen bir kontrol merkezidir. 4 Ağustos 2026’daki testte 1.9.0 npm paketini geçici dizine kurdum, yalnız ön yüz modunu başlattım ve Türkçe ilk kurulum ekranını klavyeyle gezdim. Ön yüz çalıştı; ancak Docker daemon kapalıydı. Ana makinede korumasız çalıştırma tüm dosya sistemine erişim verebildiği için gerçek depoda kod değiştiren ajan koşusunu yapmadım. Bu kılavuz, doğrulanan arayüzü ve güvenli bir uçtan uca kullanım planını bu sınırla anlatıyor.
OpenHands Agent Canvas ne işe yarar, kimler için?
Agent Canvas bir model değildir. React ve TypeScript ile yazılmış ön yüz; konuşmaları, dosyaları, terminali, tarayıcıyı, Git değişikliklerini, ayarları ve otomasyonları gösterir. Asıl eylemleri OpenHands Agent Server yürütür. Yerleşik OpenHands ajanını kullanabilir veya Agent Client Protocol (ACP) üzerinden Codex, Claude Code ve Gemini CLI gibi harici ajan süreçlerine bağlanabilirsiniz. İsteğe bağlı Automation Server zamanlanmış ya da olayla tetiklenen işleri yönetir.
Bu yapı, birden fazla kod ajanını aynı yerden yönetmek isteyen geliştirici ekipleri, kendi altyapısında çalışan bir ajan arayüzü arayan kurumlar ve uzun görevlerde konuşma, terminal, dosya ve maliyet görünümünü birlikte görmek isteyen teknik kullanıcılar için uygundur. Tek depoda kısa ve etkileşimli düzenlemeler yapan biri için Aider gibi terminal aracı daha yalın olabilir. Akış mantığını kodla ve düğüm düğüm tasarlamak isteyen ekip için LangGraph başka bir sınıftadır; Agent Canvas’ın önceliği ajan çalışma yüzeyi ve operasyon merkezidir.
Mimari: arayüz, ajan sunucusu, model ve araçlar
Temel yol şöyledir: tarayıcıdaki Agent Canvas, REST ve canlı olay bağlantılarıyla Agent Server’a konuşur; sunucu seçilen ajanı başlatır; ajan model sağlayıcısına gider ve izin verilen çalışma alanında terminal, dosya, Git veya tarayıcı araçlarını kullanır. ACP seçildiğinde Agent Server, ilgili komut satırı ajanını alt süreç olarak çalıştırır ve JSON-RPC mesajlarını standart girdi/çıktı üzerinden taşır. Kimlik bilgileri arayüzde Ayarlar → Sırlar bölümüne kaydedildiğinde sunucunun sır deposunda tutulur ve yalnız ilgili sürece aktarılır.
Bu ayrım önemli: Canvas eylemi kendi başına yürütmez ve sandbox sağlamaz. Yalıtım, bağlandığınız backend’in görevidir. Birden fazla yerel, uzak veya bulut backend eklenebilir; aynı arayüzden aralarında geçilebilir. Gözlemlenebilirlik tarafında konuşma akışı, canlı ajan etkinliği, terminal, dosyalar, tarayıcı ve konuşma maliyeti bölümleri bulunur. Yine de “ajan tamamladı” mesajı iş kanıtı değildir; test çıktısını, Git diff’ini ve oluşan dosyaları insanın ayrıca kontrol etmesi gerekir.
Depo, sürüm, bakım ve lisans kontrolü
İnceleme v1.9.0 etiketi ve 6790df06ea68 ile başlayan sabit commit üzerinde yapıldı. Sürüm 3 Ağustos 2026’da yayımlandı; canlı etkinlik görünümü, backend seçimi ve başarısız mesajları kapatma gibi değişiklikler içeriyor. 4 Ağustos’ta da IPv4 yerel vekil hedefi ve backend bağlantıları için commitler vardı. Depo etkin biçimde bakılıyor; GitHub’ın açık kayıt sayacı issue ve pull requestleri birlikte 300 gösteriyordu. Son günlerde Windows kurulumunun tamamlanmaması ve yanlış backend’de konuşma açılması gibi hataların kapatılmış olması, hem bakımın sürdüğünü hem de 1.9.0’ın hâlâ beta niteliğinde hızlı değiştiğini gösteriyor.
Kök LICENSE dosyasında gerçek MIT metni var. MIT genel olarak kodu kullanmaya, değiştirmeye ve dağıtmaya izin verir; telif ve lisans bildirimi korunmalı, yazılımın garantisiz olduğu kabul edilmelidir. Bu lisans bağlanan modelin, Claude Code/Codex aboneliğinin, MCP sunucusunun veya üçüncü taraf verisinin de MIT olduğu anlamına gelmez. Yıldız sayısını kalite kanıtı saymadım; sürüm, commit, issue, paket kaynağı ve güvenlik kayıtlarını ayrı ayrı kontrol ettim.
Güvenlik kayıtlarında CVE-2026-33718 / GHSA-7h8w-hj9j-8rjw adlı yüksek önem dereceli komut enjeksiyonu açığı bulunuyor. Git diff uç noktasındaki açık 1.4.0 ve öncesini etkiliyor; 1.5.0’da yamalanmış. 1.9.0 bu aralığın dışında olsa da, ajan konteynerini ayrı tutmak ve eski kurulumu güncellemek şart. Sabit etiket ağacında ayrı bir SECURITY.md politikası görmedim; yayımlanmış GitHub advisories sayfasını izlemek gerekiyor.
Kurulum ve güvenli başlangıç
Doğrudan ana makine kurulumu Node.js 22.12 veya yenisi ile uv istiyor. Resmî komut npm install -g @openhands/agent-canvas ardından agent-canvas; fakat bu mod ajana bilgisayarın dosya sisteminde geniş erişim verebilir. İlk deneme için yalnız belirlediğiniz proje klasörünü bağlayan Docker yolu daha güvenli bir başlangıçtır:
mkdir -p ./openhands-projects ./openhands-state
export PROJECTS_PATH="$PWD/openhands-projects"
export CANVAS_STATE_PATH="$PWD/openhands-state"
docker run -it --rm \
-p 8000:8000 \
-v "$CANVAS_STATE_PATH:/home/openhands/.openhands" \
-v "$PROJECTS_PATH:/projects" \
ghcr.io/openhands/agent-canvas:1.9.0
Arayüz Docker kurulumunda http://localhost:8000/canvas adresindedir. İmaj etiketini sabitleyin, yalnız ihtiyaç duyulan klasörü bağlayın ve sır dosyalarını proje dizininin dışında tutun. İnternete açılan sunucuda --public, güçlü bir LOCAL_BACKEND_API_KEY, HTTPS, güvenlik duvarı ve IP kısıtı gerekir. Anahtar olmadan ya da otomatik olarak ön yüze gömülen yerel modla herkese açık yayın yapmayın.
Benim test ortamımda Node 24.18 ve npm 11.16 vardı. @openhands/agent-canvas@1.9.0 paketinin npm bütünlük değeri, imzası ve SLSA kaynak kanıtı görüldü; açılmış boyutu yaklaşık 59 MB idi. Geçici dizinde --frontend-only --port 8766 ile ön yüz ve ingress başladı. Backend uç noktaları beklendiği gibi 503 döndü; bu yüzden arayüz testi yapıldı, ajan eylemi yapılmadı.
Adım adım gerçek kullanım: erişilebilir form hatasını düzeltme
Güvenli bir ilk görev olarak yalnız test deposundaki etiketsiz e-posta alanını düzeltmeyi seçin. Amaç; ajanın sorunu bulması, küçük bir yama hazırlaması ve test çalıştırmasıdır. Yayınlama ve ana dala birleştirme insanın elinde kalır.
- İzole depo hazırlayın: örnek projeyi
openhands-projects/form-demoaltına koyun, yeni bir Git dalı açın ve gerçek müşteri verisini kaldırın. - Backend ekleyin: ilk ekranda “Ana bilgisayar adı”na örneğin “Yerel Docker”, “Ana bilgisayar”a backend adresi ve gerekiyorsa API anahtarını yazın. “Yerel” türünü seçip “İleri”ye basın.
- Ajanı ve modeli seçin: OpenHands veya ACP ile Codex/Claude Code/Gemini CLI seçilebilir. Yerel backend mevcut komut satırı oturumunu yeniden kullanabilir; konteynerde açıkça verilen API anahtarı ya da kimlik dosyası gerekir. Model kimliğini ve bütçe sınırını kaydedin.
- Dar görev verin: “Yalnız
form-demodeposunda çalış. E-posta girdisini programatik etikete bağla, mevcut görsel tasarımı değiştirme, erişilebilir ad testini ekle ve ilgili testleri çalıştır. Commit veya push yapma.” - Canlı kanıtı izleyin: konuşma görünümünde planı, terminalde komutları, Dosyalar/Git bölümünde diff’i ve test sonucunu denetleyin. Ajan başka dizine, ağa veya sır dosyasına gitmek isterse koşuyu durdurun.
- İnsan onayı: değişikliği klavyeyle ve ekran okuyucuyla deneyin; hata yoksa yerel commit’i siz oluşturun. Push, pull request ve dağıtım için ayrı onay kapısı kullanın.
Bu uçtan uca görev, Docker çalışmadığı için bu vardiyada yürütülmedi. Doğrulanan bölüm; 1.9.0 paket kurulumu, ön yüzün başlaması, backend formu, ajan seçenekleri ve klavye sırasıdır. Kod değiştirme sonucunu “test edildi” diye sunmuyorum.
Arayüz ve erişilebilirlik notları
Türkçe ilk kurulum ekranında “Bir backend ekle” başlığı; “Ana bilgisayar adı”, “Ana bilgisayar” ve maskeli “API Anahtarı” girişleri; “Yerel/Bulut” radyo düğmeleri; “İleri”, “OpenHands’e bağlan” ve “Gelişmiş” denetimleri vardı. Sonraki adım OpenHands, Claude Code, Codex ve Gemini CLI ajan kartlarını gösteriyor. Backend bağlı olmadığından model şeması yüklenmedi ve görev ekranına geçilmedi.
Sekiz Tab basışında odak sırası ad, adres, Yerel, Bulut, API anahtarı, İleri, buluta bağlan ve Gelişmiş şeklinde mantıklı ilerledi. Form etiketleri erişilebilir ad sağlıyordu; Yerel/Bulut düğmeleri role="radio" ve aria-checked durumuna sahipti. Buna karşılık Türkçe metin gösterilirken belge kökündeki lang değeri en kaldı ve DOM’da H1 bulunmadı. Bu, ekran okuyucunun Türkçe metni yanlış sesle okumasına ve başlıkla gezinmenin zayıflamasına yol açabilir. Sabit tarayıcı oturumunda 320 piksel görünüm emüle edilemedi; mobil uyumu tam doğrulanmış saymıyorum.
Güvenlik, gizlilik ve maliyet
Ajan; terminal komutu çalıştırabilir, dosya okuyup yazabilir ve ağa çıkabilir. Saldırı yüzeyi yalnız model yanılması değildir: depodaki kötü niyetli talimat, bağımlılık betiği, MCP aracı ve ele geçirilmiş entegrasyon da yetkiyi kullanabilir. Ayrı konteyner veya VM, dar klasör bağlama, salt okunur sırlar, kısa ömürlü anahtarlar, egress kısıtı, yeni Git dalı ve insan onayı birlikte uygulanmalıdır. Üretim sırlarını sohbet kutusuna yapıştırmayın.
Kaynak kod, ilk kullanımda anonim kurulum olayının onaydan önce gönderilebildiğini; diğer oturum olaylarının onaya bağlı olduğunu ve PostHog’un ABD bölgesine yönlendirildiğini söylüyor. Tarayıcının “Do Not Track” ayarı veya kaynaktan derlerken VITE_DO_NOT_TRACK=1 tüm telemetriyi kapatmak için belirtilmiş. Kurumlar ağ trafiğini ayrıca doğrulamalı ve kendi veri konumu politikasını uygulamalı.
Açık kaynak Agent Canvas için lisans ücreti yoktur. Gerçek toplam maliyet; model/API kullanımı, sürekli çalışan makine, depolama, loglar, entegrasyonlar ve bakım süresidir. OpenHands Cloud isteğe bağlı hesap ve ticari koşullara tabidir. Harcamayı konuşma başına izleyin, pahalı modeli yalnız zor adımlara ayırın ve otomasyonlarda azami adım/token bütçesi belirleyin.
Sınırlamalar, hata kurtarma ve karar
- 1.9.0 beta hızında değişiyor; sürümü ve konteyner özetini sabitleyin.
- Backend 503 ise önce Agent Server’ın çalıştığını, portu ve API anahtarını kontrol edin.
- Model ayar şeması yoksa ön yüz tek başına başlamış veya backend sürümü uyumsuz olabilir.
- Görev döngüye girerse durdurun, işi küçültün ve temiz daldan yeniden başlayın.
- Yanlış backend’de konuşma açılmasını önlemek için üstteki aktif backend adını her görevden önce doğrulayın.
- Başarı mesajını değil test çıktısını, diff’i ve oluşturulan dosyaları esas alın.
Karar: Agent Canvas 1.9.0, farklı kod ajanlarını ve backend’leri tek, Türkçeleştirilmiş bir web yüzeyinde toplama fikrini kullanılabilir biçimde gösteriyor. Fakat erişilebilirlikte belge dili ve H1 eksikleri, güvenlikte geniş çalışma alanı yetkisi ve operasyon tarafında beta değişim hızı temkin gerektiriyor. İlk üretim denemesi; sabit 1.9.0 imajı, tek test deposu, ayrı sırlar, ağ kısıtı ve insan onaylı Git akışıyla yapılmalı.
Kaynaklar
- OpenHands 1.9.0 sabit commit — README, mimari, kurulum ve kaynak kod; 4 Ağustos 2026’da incelendi.
- MIT lisans metni — sabit committe doğrulandı.
- OpenHands 1.9.0 sürüm notları — 3 Ağustos 2026.
- Agent Canvas mimarisi — bileşenler, çalışma kipleri ve güvenlik sınırı.
- ACP ajanları belgesi — Codex, Claude Code ve Gemini CLI bağlantısı ile sır aktarımı.
- Kendi sunucunda barındırma rehberi — API anahtarı, HTTPS, güvenlik duvarı ve backend ekleme.
- GHSA-7h8w-hj9j-8rjw / CVE-2026-33718 — 1.5.0’da yamalanan komut enjeksiyonu.
- @openhands/agent-canvas 1.9.0 npm kaydı — sürüm, bütünlük, imza ve kaynak kanıtı metadatası.