NVIDIA OpenShell nedir? Yapay zekâ ajanını kum havuzunda çalıştırmak: kurulum, politika örnekleri ve lisans
Ajanın neye erişebileceğini bir YAML politika dosyasında yazarsın; OpenShell ajanı yalıtılmış bir kum havuzunda (sandbox) çalıştırır ve yalnız o kadarına izin verir. Dosya ve sistem çağrısı erişimi Linux çekirdeğinde sınırlanır, her ağ bağlantısı dışarı çıkmadan politika denetiminden geçer, yasak istek reddedilip kaydedilir; ajan gerçek API anahtarını görmez, anahtar yalnız onaylı adrese giden isteğe eklenir. NVIDIA'nın açık kaynak (Apache 2.0) çalışma ortamı; Linux ve Apple Silicon Mac destekleniyor, Windows (WSL 2) deneysel. Ücretsiz; komut satırından kullanılır.
- Ne yapar
- Yapay zekâ ajanını politikayla sınırlanmış kum havuzunda çalıştırır
- Ücretsiz
- Evet, Apache 2.0; model ve sunucu maliyeti sende
- Kodsuz
- Hayır; komut satırı ve YAML
- Sistem
- Linux, Apple Silicon macOS; Windows deneysel
- Gerekli
- Docker 28+, Podman 5 ya da sanallaştırma
- Sürüm
- v0.1.6 (27 Ekim 2026), kararlı sürüm
- Türkçe
- Arayüz ve belge İngilizce
NVIDIA OpenShell nedir, hangi sorunu çözer?
Bir yapay zekâ ajanı (Claude Code, OpenCode gibi kendi başına komut çalıştıran bir asistan) ancak dosya okuyup paket kurabildiğinde, API çağırıp anahtar kullanabildiğinde işe yarar. Sorun şu: bu yetkileri verdiğin anda ajan bütün dosyalarına, bütün ağa ve bütün anahtarlarına da uzanabilir. OpenShell bu ikisini ayırır: ajan çalışır, ama yalnız senin izin verdiğin yere dokunur. Neye dokunabileceğini bir politika dosyasında yazarsın; OpenShell politikada olmayan her şeyi reddeder ve kaydeder.
Hayır. OpenShell komut satırından kurulan ve yönetilen bir araç; politika YAML dosyasıdır. Arayüzlü bir sürüm resmî kaynakta yok. Ajanına OpenShell'i kullandırmak istersen README, kodlama ajanları için hazır skill'ler sunuyor: npx skills add NVIDIA/OpenShell (ajanına CLI'yi sürmeyi, politika yazmayı ve gateway sorunlarını çözmeyi öğretir).
Kime yarar: ajanları kendi sunucusunda ya da bilgisayarında uzun süre ve az gözetimle çalıştıran yazılım ekiplerine; bir ajanın şirket verisine ve anahtarlarına ne kadar uzanabileceğini sınırlamak isteyen güvenlik sorumlularına; aynı politikayı birçok ajana uygulamak isteyen platform ekiplerine. Tek bir sohbet asistanı kullanan biri için gerekli bir araç değil.
OpenShell nasıl çalışır? Gateway, denetçi ve kum havuzu
Kim olduğunu doğrular, kum havuzlarını oluşturup siler, politikayı ve ayarları dağıtır, sağlayıcıları (provider) bağlar. Yerel kurulumda Linux'ta systemd kullanıcı servisi, macOS'ta Homebrew servisi olarak 17670 portunda çalışır.
Sınırın güvenilir tarafında durur: istekleri politikayla karşılaştırır, kimlik bilgisini yalnız izin verilen yere verir, DNS çözer, izinli bağlantıyı açar.
Ajanla aynı sınırın içinde durur ve karar vermez: ajanın ne yapmak istediğini bildirir. Ajanın dışarıya tek çıkış yolu denetçiye giden kanaldır.
Ajanın önerdiği ya da senin yazdığın ağ kuralını biçimsel doğrulamayla denetler: anahtarla yeni bir adrese ulaşmak, yeni bir HTTP yöntemi, bulut meta veri adresi gibi riskli erişimi işaretler; bulgu varsa otomatik onay durur, değişiklik insan onayını bekler.
Sağlayıcı (provider): bir hizmet adını (ör. OpenRouter, GitHub, Claude Code) saklanan bir kimlik bilgisine bağlar. Belgedeki örnekte OPENROUTER_API_KEY kimlik deposunda tutulur ve yalnız openrouter.ai adresine gönderilir; ajanın ortamında yalnız bir yer tutucu görünür.
Mimari özeti: docs.nvidia.com/openshell → Architecture. Kum havuzu Docker, Podman, Kubernetes ya da MicroVM üzerinde kurulur; denetçi ile kum havuzu arasındaki kanal karşılıklı kimlik doğrulamalı tek bir HTTP/2 bağlantısıdır.
OpenShell nasıl kurulur? Linux, Mac, Windows ve Kubernetes
› curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | OPENSHELL_VERSION=v0.1.6 sh› openshell status› openshell sandbox create --name demoBetik CLI'yi, politika doğrulayıcıyı ve yerel gateway'i kurar. Linux'ta Debian/Ubuntu için .deb, Fedora/RHEL için RPM paketi kurar ve gateway'i systemd kullanıcı servisi olarak başlatır; macOS'ta Homebrew ile kurar. Belge sürüm sabitlemeyi OPENSHELL_VERSION değişkeniyle anlatıyor; değişken boşsa son kararlı sürüm gelir.
!Bu komut internetten indirdiği betiği çalıştırır ve yönetici yetkisiyle paket kurar; çalıştırmadan önce betiği tarayıcıda açıp oku.
WSL 2 + Docker Desktop: destek tablosunda "Experimental" (deneysel). Linux OpenShell'i WSL 2 içinde, Linux sekmesindeki komutla kurarsın.
Yerel Windows (Microsoft MXC): windows dalından derleniyor, geliştirme aşamasında ve üretime hazır değil. Kurulum betiği ve sürüm kanalları yerel Windows ikilisi vermiyor.
› helm upgrade --install openshell \
oci://ghcr.io/nvidia/openshell/helm-chart \
--version 0.1.6Helm grafik sürümleri, sürüm etiketindeki baştaki v olmadan yazılır (belge). Kümenin ağ eklentisi (CNI) NetworkPolicy uygulamalı; Kubernetes 1.29+ ve Helm 3 gerekir.
| Ne gerekir | Belgedeki koşul |
|---|---|
| İşletim sistemi | Linux (Debian/Ubuntu, amd64 ve arm64) ya da macOS Apple Silicon; Windows WSL 2 deneysel |
| Çalışma ortamı | Docker Desktop/Engine 28.0+, ya da Podman 5.x (cgroups v2), ya da MicroVM için KVM (Linux) / Hypervisor.framework (macOS) |
| Linux çekirdeği | Landlock ABI 3 ya da üstü (Linux 6.2 ile geldi) açık olmalı; seccomp gerekli. Eksikse kum havuzu başlamaz |
| Linux paketleri | glibc 2.28+ (ör. Ubuntu 20.04+, RHEL 8+) |
| Ajan | Varsayılan imaj (minimal Ubuntu) ajan içermez; ajanı içeren bir imaj seçersin (--from) |
PyPI'deki openshell paketi (uv add openshell, PyPI sınıflandırıcısı "Alpha") Python SDK'sıdır: kendi uygulamanı bir OpenShell gateway'ine bağlamak içindir, CLI'yi kurmaz. TypeScript, Go ve Rust SDK'ları da var.
OpenShell nasıl kullanılır? Yazdığın komut ve karşılığında gördüğün
Aşağıdaki iki örnek NVIDIA'nın kendi öğreticilerinden; çıktılar belgedeki örnek satırlara göre tarif edildi. Komutların çoğu ana bilgisayardaki ikinci bir terminalde çalışır; kum havuzunun içindeki kabuk açık kalır.
› openshell sandbox create \
--name demo \
--from registry.example.com/team/agent-tools:1.0 \
--no-auto-providers› curl -s https://api.github.com/zenNe alırsın: istek reddedilir: curl: (56) Received HTTP code 403 from proxy after CONNECT. Varsayılan durumda kum havuzundan dışarı hiçbir bağlantı çıkmaz.
› openshell logs demo --since 5m --source sandboxNe alırsın: hedefi, isteği yapan programı ve nedeni yazan bir satır: DENIED /usr/bin/curl(64) -> api.github.com:443 … [reason:network connections not allowed by policy].
› openshell policy update demo \
--rule-name github_api \
--binary /usr/bin/curl \
--add-endpoint api.github.com:443:read-only:rest:enforce \
--waitNe alırsın: kural kum havuzunu yeniden başlatmadan yüklenir. Aynı GET isteği artık yanıt döndürür; aynı adrese bir POST (ör. issue açma) ise 403 ve "error":"policy_denied" alır, kayda da yöntem ve yolla birlikte HTTP:POST … DENIED satırı düşer. Yani ajan GitHub'dan kod okuyabilir ama issue açamaz, commit gönderemez.
› openshell profile import \
--url https://raw.githubusercontent.com/NVIDIA/OpenShell/main/providers/openrouter.yaml
openshell provider create \
--name openrouter \
--type openrouter \
--from-existing› openshell sandbox create \
--name my-agent \
--from ghcr.io/anomalyco/opencode:latest \
--provider openrouter \
-- opencode -m openrouter/nvidia/nemotron-3.5-lightning:free› openshell rule get my-agent --status pending› openshell rule approve my-agent --chunk-id <chunk-id>
openshell rule reject my-agent \
--chunk-id <chunk-id> \
--reason "Not needed for this task."Ne alırsın: ajan politikanın izin vermediği bir adrese gittiğinde istek reddedilir ve OpenShell o adres, port ve program için dar bir kural taslağı hazırlar; taslak önce politika doğrulayıcıdan geçer, sonra senin onayına düşer. Onayladığın kural ajan durmadan yüklenir, ajan isteği yeniden dener. openshell rule approve-all güvenlik işaretli önerileri atlar ve kaç tanesini atladığını yazar.
| Ne yapmak istiyorsun | Komut (belge) |
|---|---|
| Kum havuzu aç | openshell sandbox create --name <ad> (imaj için --from, ajan komutu -- sonrasında) |
| Kayıtları izle | openshell logs <ad> --since 5m --source sandbox |
| Politikayı gör | openshell policy get <ad> --base (sağlayıcıların eklediği kurallar hariç taban politika) |
| Ağ kuralı ekle | openshell policy update <ad> --rule-name … --binary … --add-endpoint host:port:erişim:protokol:mod --wait |
| Önerileri yönet | openshell rule get … --status pending, rule approve, rule reject, rule approve-all |
| Var olan kum havuzuna bağlan | openshell sandbox connect <ad> |
| Kum havuzunu sil | openshell sandbox delete <ad> (süreçleri durdurur, eklenen kimlik bilgilerini temizler) |
Politikayı kurarken önce enforcement: audit ile başlayabilirsin: kural ihlalleri engellenmez ama kaydedilir. Kayıtları gözden geçirip kurallar doğru olunca enforcea geçersin (belgedeki öneri).
OpenShell politika dosyası neleri belirler?
Politika, version: 1 ile başlayan bir YAML dosyası. OpenShell politikanın izin vermediği her şeyi reddeder. Örnek 1'deki komutun eklediği kural, YAML'da şöyle görünür (belgedeki hâli):
› network_policies:
github_api:
endpoints:
- host: api.github.com
port: 443
protocol: rest
enforcement: enforce
access: read-only
binaries:
- path: /usr/bin/curl| Bölüm | Neyi belirler | Ne zaman geçerli |
|---|---|---|
filesystem_policy | Kum havuzundaki süreçlerin okuyabileceği ya da okuyup yazabileceği yollar (çekirdekte Landlock) | Kum havuzu başlarken |
landlock | Dosya kuralları uygulanamazsa kum havuzunun yine başlayıp başlamayacağı | Kum havuzu başlarken |
process | Süreçlerin hangi kullanıcı ve grupla çalışacağı | Kum havuzu oluşturulurken |
network_policies | Her programın gidebileceği adresler ve gönderebileceği istekler | Çalışırken değişebilir |
network_middlewares | İzin verilen trafiğe ek inceleme, dönüştürme ya da engelleme | Çalışırken değişebilir |
Politika vermezsen: OpenShell kısıtlayıcı varsayılan politikayı kullanır (yönetici genel politikası, kayıtlı politika ve imajdaki politika yoksa). Varsayılanda çalışma klasörü okunup yazılır; /bin, /usr, /lib, /etc gibi sistem yolları yalnız okunur; /tmp yazılabilir; dışarıya hiçbir ağ erişimi yoktur. Bağladığın sağlayıcılar ağ kuralı ekleyebilir; bu yüzden etkin politikayı ayrıca kontrol et.
Yönetici genel politikası: gateway yöneticisi tek bir politikayı bütün kum havuzlarına uygulayabilir; bu politika her kum havuzunun kendi politikasının yerine geçer ve etkinken politika değişikliklerini ve öneri onaylarını engeller.
OpenShell ücretsiz mi? Lisans ve ticari kullanım
- Ticari kullanım, değiştirme, kopyalama ve dağıtma (Apache 2.0)
- Patent kullanım hakkı, lisansı veren katkıcıdan (Apache 2.0 madde 3)
- Kendi kuruluşunda ve kendi sunucularında sınırsız kum havuzu (lisans kota koymaz)
- Telif ve lisans bildirimini silmek (dağıtırken korunmalı)
- NVIDIA adını ve markalarını izinsiz kullanmak (Apache 2.0 madde 6)
- Garanti beklemek: README yazılımın "olduğu gibi" sunulduğunu ve çektiği dış içeriklerin kendi koşullarına bağlı olduğunu yazıyor
Maliyet: yazılımın kendisi ücretsiz; hesap açmak ya da kayıt olmak gerekmez. Para yalnız ajanın kullandığı model sağlayıcısına (ör. OpenRouter, Anthropic) ve sunucuya gider; NVIDIA'nın örnek ajanı OpenRouter'daki ücretsiz bir modelle çalışıyor. README ayrıca NVIDIA Brev üzerinde bulutta deneme bağlantısı veriyor; bu bulut denemesinin ücreti README'de yazmıyor, açmadan önce Brev sayfasındaki fiyatı kontrol et.
Lisans özeti Apache License 2.0 metnindendir ve hukuki görüş değildir. Kum havuzunda çalıştırdığın ajanın ve imajların kendi lisansları ayrıca geçerlidir.
OpenShell hangi veriyi toplar? Telemetri ve anahtarlar
Yalnız işlem kategorileri ve sayımlar gider (kum havuzu açılış sonuçları, politika karar sayıları gibi). Kum havuzu adı, ana makine adı, dosya yolu, istem, kimlik bilgisi, sağlayıcı ya da model adı ve kullanıcı içeriği toplanmaz. Toplu eğilimler iki haftada bir GitHub'da yayımlanıyor.
Gateway'de OPENSHELL_TELEMETRY_ENABLED=false; Helm kurulumunda server.telemetryEnabled=false. Ayar kum havuzlarına da geçer. İstersen telemetriyi derlemeden tamamen çıkarabilirsin (belgede Cargo komutları var).
Sağlayıcı anahtarları gateway'in kimlik deposunda tutulur; ajan yer tutucu görür. Kum havuzu silinince eklenen kimlik bilgileri temizlenir.
!Kum havuzu, politikada izin verdiğin adrese anahtarla giden isteği engellemez: bir kuralı onaylamak, ajana o adreste o yetkiyi vermek demektir. Önerileri onaylamadan önce adres, port, program ve yöntemi oku.
OpenShell nerede çalışır, nerede çalışmaz? Sınırlar
| Linux (Debian/Ubuntu, amd64 ve arm64)Var | Destek tablosunda "Supported". |
|---|---|
| macOS Apple SiliconVar | Docker Desktop ile "Supported"; gateway Homebrew servisi olarak çalışır. |
| Windows (WSL 2 + Docker Desktop)Deneysel | Destek tablosunda "Experimental". |
| Yerel Windows (MXC)Kısmen | windows dalından derleniyor; geliştirme aşamasında, üretime hazır değil. |
| Intel işlemcili MacNet değil | Destek tablosunda satırı yok; belge bu ayrıntıyı vermiyor. |
| Sürüm düzeniVar | Sürüm 0.1.x: kararlı sürümler genelde haftalık çıkar; güvenlik düzeltmeleri son iki küçük sürüm hattına gelir; "Experimental" işaretli arayüzler yama sürümünde değişebilir. |
| Ne oluyor | Ne yapmalı |
|---|---|
| Kum havuzu hiç başlamıyor | Çekirdekte Landlock kapalıysa ya da çalışma ortamı gerekli seccomp işlemlerini engelliyorsa başlatma bilerek durur. Linux 6.2+ ve Landlock açık mı bak. |
curl: (56) Received HTTP code 403 from proxy after CONNECT | Hata değil, varsayılan reddet: o program ve adres için network_policiese kural ekle. |
| Kum havuzu kabuğundan çıktım, yeniden bağlanamıyorum | Ana süreç durunca varsayılan yeniden başlatma politikasıyla kum havuzu bağlanılamaz olur; sil ve yeniden aç. Çıkışta otomatik silinsin istersen oluştururken --no-keep ekle. |
| Politika olayları kayıtta görünmüyor | Politika olayları INFO düzeyinde yazılır; --level warn ile süzme. |
| İmajdaki politika bozuk | OpenShell varsayılana düşmez, ajan başlamaz; imaj politikasını düzelt. |
Sık sorulan sorular
NVIDIA OpenShell nedir?
NVIDIA'nın açık kaynak yapay zekâ ajanı çalışma ortamı. Ajanı yalıtılmış bir kum havuzunda çalıştırır ve dosya, ağ ve anahtar erişimini senin yazdığın bir YAML politikayla sınırlar; politikada olmayan her şey reddedilip kaydedilir.
OpenShell nasıl kurulur?
Linux ya da Apple Silicon Mac'te kurulum betiğiyle: curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | OPENSHELL_VERSION=v0.1.6 sh, ardından openshell status. Docker 28+, Podman 5 ya da donanım sanallaştırma gerekir.
OpenShell Windows'ta çalışır mı?
WSL 2 ve Docker Desktop ile deneysel olarak çalışır. Yerel Windows desteği ayrı bir daldan derleniyor ve üretime hazır değil.
OpenShell ücretsiz mi?
Evet, Apache 2.0 lisanslı ve ücretsiz; hesap gerekmez. Ajanın kullandığı model sağlayıcısının ve sunucunun maliyeti sana aittir.
OpenShell ajanın internete çıkmasını tamamen engeller mi?
Varsayılan politikada dışarıya hiçbir ağ erişimi yoktur. Erişimi program, adres, port ve HTTP yöntemi düzeyinde kuralla açarsın; örneğin bir API'ye yalnız okuma izni verebilirsin.
Ajan API anahtarımı görür mü?
Belgeye göre hayır: ajan bir yer tutucu görür, OpenShell anahtarı yalnız sağlayıcı profilinde onaylı adrese giden isteğe ekler.
PyPI'deki openshell paketi ne?
Python SDK'sı; uygulamanı bir OpenShell gateway'ine bağlamak içindir ve komut satırı aracını kurmaz. CLI kurulum betiği, Homebrew, Debian/RPM ya da snap ile gelir.
OpenShell veri topluyor mu?
Anonim telemetri varsayılan açık: yalnız işlem kategorileri ve sayımlar; dosya yolu, istem, kimlik bilgisi ve içerik toplanmaz. Gateway'de OPENSHELL_TELEMETRY_ENABLED=false ile kapanır.
İlgili rehberler
Kaynaklar
- OpenShell GitHub deposu (README)
- NVIDIA OpenShell belgeleri
- Kurulum (Installation)
- Destek tablosu (Support Matrix)
- Mimari (Architecture)
- Öğretici: ilk ağ politikası
- İlk ajanını çalıştır
- Politikalar ve varsayılan politika
- Telemetri
- Lisans (Apache 2.0)
- Sürümler (releases)
Resmî kaynaklarda net olmayanlar: Intel işlemcili Mac desteği (destek tablosunda yok) · asgari RAM ve işlemci (belge yazmıyor) · NVIDIA Brev bulut denemesinin ücreti · Türkçe arayüz yok (belge ve CLI İngilizce). Her biri ilgili bölümde ne yapabileceğinle birlikte yazılı.





