İçeriğe atla

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.

Kodsuz kullanabilir miyim?

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

Politikayı yazarsınDosya, süreç ve ağ kuralları tek YAML dosyada.
Ajan kum havuzunda çalışırDosya erişimi Landlock, sistem çağrıları seccomp ile çekirdekte sınırlanır.
Her bağlantı denetlenirDenetçi (supervisor) isteği politikayla karşılaştırır; izinliyse açar, değilse reddedip kaydeder.
Ajan gerçek anahtarı görmez; anahtar yalnız onaylı adrese giden isteğe eklenir.
Gateway (kontrol düzlemi)

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.

Denetçi (supervisor)

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.

Kum havuzu (sandbox)

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.

Politika doğrulayıcı (prover)

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

Kur (sürüm sabit: v0.1.6)› curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | OPENSHELL_VERSION=v0.1.6 sh
Gateway'e ulaşıyor mu, kontrol et› openshell status
İlk kum havuzunu aç› openshell sandbox create --name demo

Betik 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.

Ne gerekirBelgedeki koşul
İşletim sistemiLinux (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ğiLandlock ABI 3 ya da üstü (Linux 6.2 ile geldi) açık olmalı; seccomp gerekli. Eksikse kum havuzu başlamaz
Linux paketleriglibc 2.28+ (ör. Ubuntu 20.04+, RHEL 8+)
AjanVarsayı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.

Örnek 1: Ajana GitHub API'sini yalnız okuma izniyle açmak
1. Ağ kuralı olmayan bir kum havuzu aç (ajan yerine curl ile)› openshell sandbox create \ --name demo \ --from registry.example.com/team/agent-tools:1.0 \ --no-auto-providers
2. Kum havuzunun içinden dışarı çık› curl -s https://api.github.com/zen

Ne 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.

3. Ana bilgisayarda reddin kaydına bak› openshell logs demo --since 5m --source sandbox

Ne 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].

4. curl'e GitHub API'sinde yalnız okuma izni ver› openshell policy update demo \ --rule-name github_api \ --binary /usr/bin/curl \ --add-endpoint api.github.com:443:read-only:rest:enforce \ --wait

Ne 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.

Örnek 2: Gerçek bir ajanı çalıştırıp ihtiyaç duydukça izin vermek
1. Sağlayıcı profilini içe aktar ve anahtarı kaydet (OPENROUTER_API_KEY ortamda tanımlı olmalı)› openshell profile import \ --url https://raw.githubusercontent.com/NVIDIA/OpenShell/main/providers/openrouter.yaml openshell provider create \ --name openrouter \ --type openrouter \ --from-existing
2. Ajanı (OpenCode) kum havuzunda başlat› openshell sandbox create \ --name my-agent \ --from ghcr.io/anomalyco/opencode:latest \ --provider openrouter \ -- opencode -m openrouter/nvidia/nemotron-3.5-lightning:free
3. Ajan izinsiz bir adrese takılınca önerilen kurallara bak› openshell rule get my-agent --status pending
4. Doğru görünen öneriyi onayla ya da gerekçeyle reddet› 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 istiyorsunKomut (belge)
Kum havuzu açopenshell sandbox create --name <ad> (imaj için --from, ajan komutu -- sonrasında)
Kayıtları izleopenshell logs <ad> --since 5m --source sandbox
Politikayı göropenshell policy get <ad> --base (sağlayıcıların eklediği kurallar hariç taban politika)
Ağ kuralı ekleopenshell policy update <ad> --rule-name … --binary … --add-endpoint host:port:erişim:protokol:mod --wait
Önerileri yönetopenshell rule get … --status pending, rule approve, rule reject, rule approve-all
Var olan kum havuzuna bağlanopenshell sandbox connect <ad>
Kum havuzunu silopenshell 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 bölümü (belge örneği)› 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ümNeyi belirlerNe zaman geçerli
filesystem_policyKum havuzundaki süreçlerin okuyabileceği ya da okuyup yazabileceği yollar (çekirdekte Landlock)Kum havuzu başlarken
landlockDosya kuralları uygulanamazsa kum havuzunun yine başlayıp başlamayacağıKum havuzu başlarken
processSüreçlerin hangi kullanıcı ve grupla çalışacağıKum havuzu oluşturulurken
network_policiesHer 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

Yapabilirsin
  • 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)
Yasak
  • 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

Anonim telemetri (varsayılan açık)

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.

Kapatmak

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).

Anahtarların

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)VarDestek tablosunda "Supported".
macOS Apple SiliconVarDocker Desktop ile "Supported"; gateway Homebrew servisi olarak çalışır.
Windows (WSL 2 + Docker Desktop)DeneyselDestek tablosunda "Experimental".
Yerel Windows (MXC)Kısmenwindows dalından derleniyor; geliştirme aşamasında, üretime hazır değil.
Intel işlemcili MacNet değilDestek tablosunda satırı yok; belge bu ayrıntıyı vermiyor.
Sürüm düzeniVarSü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 oluyorNe 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 CONNECTHata değil, varsayılan reddet: o program ve adres için network_policiese kural ekle.
Kum havuzu kabuğundan çıktım, yeniden bağlanamıyorumAna 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üyorPolitika olayları INFO düzeyinde yazılır; --level warn ile süzme.
İmajdaki politika bozukOpenShell 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

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ı.