npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ghostget

v0.5.0

Published

winget-style CLI and library that installs Microsoft Store apps without signing in. No Microsoft account, no winget msstore source.

Readme

👻 ghostget

Microsoft Store uygulamalarını terminalden, giriş yapmadan kur. SkyLostTR (@Keeftraum) tarafından geliştirildi

npm CI license node dependencies

Web sitesi ve dokümantasyon · English · Türkçe

$ npx ghostget search terminal --limit 3
Name                      Id            Publisher              Price
--------------------------------------------------------------------
Windows Terminal          9N0DX20HK701  Microsoft Corporation  Free
Windows Terminal Preview  9N8G5RFZ9XK3  Microsoft Corporation  Free
terminalpp                9NNH6JQFJ7HD  Zduka                  Free

$ npx ghostget install "windows terminal" --dry-run
✔ Found Windows Terminal [9N0DX20HK701] · Microsoft Corporation · Free
✔ Dry run: nothing was downloaded or launched.
  Installer  https://get.microsoft.com/installer/download/9N0DX20HK701?cid=website_cta_psi
  Steps      download, verify the Microsoft signature, launch the Store installer

Komut çıktıları programın kendi (İngilizce) çıktısıdır.

Neden

winget install --source msstore <id> komutu, Microsoft Store hesabıyla giriş yapılmış olmasını ister. Hesap yoksa şu hatayla biter:

Verifying/Requesting package acquisition failed: no store account found

Store web sitesindeki Get (Al) düğmesi ise bunu istemez: Microsoft'un imzaladığı küçük bir kurulum programı indirir ve gerisini o program Store'a yaptırır. ghostget tam olarak bunu otomatikleştirir: uygulamayı bulur, Microsoft'un kendi web kurulum programını indirir, imzasını doğrular ve çalıştırır. Hesap yok, giriş yok, winget yok.

Hızlı başlangıç

npx ghostget search terminal          # uygulama ara
npx ghostget show 9N0DX20HK701        # fiyat, boyut, paket ailesi
npx ghostget install 9N0DX20HK701     # kur

📖 Görsel bir anlatım mı istiyorsun? ghostget.kief.fi adresinde tüm dokümantasyon var: başlangıç, her komut ve seçenek, kütüphane API'si, güvenlik modeli ve sorun giderme, tek bir yerde.

npx paketi ilk indirmeden önce bir kez sorar; betiklerde --yes ekle. Kimlik yerine ad (install "windows terminal") veya Store bağlantısı da verebilirsin. Bir ad birden fazla uygulamaya uyuyorsa ghostget hangisini istediğini sorar ya da listeyle birlikte hata verir. Asla tahmin etmez.

Özellikler

  • Hesap yok. Microsoft'un Store web sitesinin kullandığı herkese açık uç noktaları ve aynı web kurulum bağlantısını kullanır.
  • Çalıştırmadan önce doğrular. Kurulum programının Microsoft Corporation'a ait geçerli bir Authenticode imzası olmalı; değilse silinir ve hiç başlatılmaz.
  • winget benzeri komutlar: search, show, install, list; ayrıca download, url ve doctor.
  • Güvenli varsayılanlar. Ücretli uygulamayı reddeder, benzer uygulamalar arasında seçim yapmaz, yönetici yetkisi istemez, sistem ayarlarını değiştirmez.
  • Betiklenebilir. Her yerde --json, temiz stdout, kararlı çıkış kodları.
  • Çalışma zamanı bağımlılığı sıfır. npx ile, kütüphane olarak veya Node.js olmayan bir PC'de tek dosyalık PowerShell betiği olarak çalışır.

Kurulum

| Elindeki | Çalıştır | | --- | --- | | Node.js 20+ | npx ghostget <komut> (veya pnpm dlx ghostget, yarn dlx ghostget, bunx ghostget) | | Node.js, kalıcı kurulum | npm install -g ghostget, sonra ghostget <komut> | | Node.js olmayan Windows | Aşağıdaki PowerShell sürümü | | Kendi kodun | npm install ghostget, sonra import { installApp } from 'ghostget' |

Paket sıradan bir npm CLI'sıdır; npm bin girdilerini çalıştıran her araç işe yarar. Bu projenin CI'ı paketlenmiş tarball'ı temiz bir projeye kurar, npx ile çalıştırır ve global olarak kurar; pnpm, yarn ve bun test edilmez.

PowerShell sürümü

search, show, install, download ve url komutlarını yapan, bağımlılığı olmayan tek bir dosya. Windows PowerShell 5.1'de (her Windows 10/11'de hazır) ve PowerShell 7'de çalışır.

& ([scriptblock]::Create((irm https://raw.githubusercontent.com/SkyLostTR/ghostget/v0.2.0/scripts/ghostget.ps1))) install 9N0DX20HK701

Bağlantıyı bir sürüm etiketine sabitle (yukarıdaki gibi) ve istersen önce betiği oku: tek dosya ve her sürüm SHA-256 değerini yayınlar. Seçenekler PowerShell tarzıdır: -DryRun, -NoVerify, -Force, -Dir, -Market, -Locale, -Limit.

Komutlar

<app> bir Store ürün kimliği (9N0DX20HK701), bir Store bağlantısı veya bir addır.

| Komut | Ne yapar | | --- | --- | | search <sorgu> | Microsoft Store'da ara. Takma adlar: s, find | | show <app> | Yayıncı, fiyat, sürüm, boyut, paket ailesi, kurulum bağlantısı. Takma ad: info | | install <app> | Store kurulum programını indir, doğrula ve başlat. Takma adlar: i, add | | download <app> | Kurulum programını çalıştırmadan indir ve doğrula. Takma ad: dl | | url <app> | Doğrudan kurulum bağlantısını yazdır (yalnızca stdout, boruya uygun) | | list [filtre] | Kurulu Store uygulamalarını listele (Windows). Takma ad: ls | | doctor | Windows sürümünü, Store servislerini ve ağı denetle |

Kullanışlı seçenekler: --dry-run, --wait (uygulama kurulu görünene kadar bekle; Store paketlerinde çalışır, Store'un satıcının kendi kurulum programıyla kurduğu uygulamalarda çalışmaz), --force, --no-verify, --dir <yol>, --market <ÜKE>, --locale <etiket>, --json, --exact, --limit <1-20>. Hepsi için ghostget --help.

ghostget install "visual studio code" --dry-run      # ne yapacağını gör
ghostget install 9N0DX20HK701 --wait                 # kurulu görünene kadar bekle
ghostget url 9N0DX20HK701 | clip                     # kurulum bağlantısını panoya kopyala
ghostget search python --json | ConvertFrom-Json     # betikle
ghostget doctor                                      # neden çalışmıyor?

Nasıl çalışır

"terminal" ── arama ──▶ storeedgefd.dsx.mp.microsoft.com   (Store uygulamasının kendi arama API'si)
9N0DX20HK701 ─ ayrıntı ─▶ displaycatalog.mp.microsoft.com   (fiyat, boyut, paket ailesi)
              ── GET ───▶ get.microsoft.com/installer/download/9N0DX20HK701
                          └─ ~800 KB, Microsoft imzalı kurulum programı
imzayı doğrula ─▶ başlat ─▶ kurulumu Store kendi penceresinde tamamlar

Ayrıntılar ve canlı servislere karşı nelerin doğrulandığı: docs/how-it-works.md (İngilizce).

Güvenlik

  • Üç Microsoft sunucusu, yalnızca HTTPS. Uç nokta değişiklikleri (test veya yansı için) https olmalı; http yalnızca localhost'ta kabul edilir.
  • İmza denetimi. Get-AuthenticodeSignature sonucu Valid olmalı ve imzalayanın kuruluşu tam olarak Microsoft Corporation olmalı. Aksi halde dosya silinir ve ghostget 7 koduyla çıkar. Tek bir baytın değişmesi bile denetimi geçersiz kılar. --no-verify vardır, uyarı basar ve önerilmez.
  • Sağlamlık denetimleri. İndirilen dosya, bildirilen boyutta bir Windows çalıştırılabilir dosyası olmalı. Sunucunun verdiği dosya adından dizin yolları ve ayrılmış adlar temizlenir.
  • Kimlik bilgisi yok, ödeme yok. ghostget ikisini de istemez, işlemez. Ücretli uygulamalar --force verilmedikçe reddedilir; --force yalnızca Microsoft'un kendi kurulum programını açar, ne olacağına orada sen karar verirsin.
  • Yönetici yetkisi yalnızca Windows'un kendisi zorunlu kıldığında, ve her zaman geçici. doctor sorunu çözecek komutları yazdırır, kendisi çalıştırmaz. install biraz daha eylemli: etkin ama durmuş bir Store dağıtım servisini yönetici yetkisi olmadan başlatır (canlı kanıtlandı: Windows standart kullanıcıya buna izin veriyor). Disabled bir servis farklı — Windows'un kendi kuralı gereği, yönetici yetkisi olmadan gerçekten düzeltilemez — bu yüzden install bir kere, Windows'un normal UAC onayıyla izin ister, yalnızca o servisi düzeltir, ve kurulum bitince tam bulduğu hâline (Disabled dahil) geri döndürür. --no-elevate bu isteği tamamen atlar, yerine elle çalıştırılacak düzeltmeyle düz bir hata verir. Makinedeki başka hiçbir şeye, o servisin geçici durumu dışında hiçbir ayara dokunulmaz — özellikle wuauserv ne yönetici yetkisiyle ne de yetkisiz asla değiştirilmez.
  • Telemetri yok. Ağ trafiği yalnızca yukarıdaki üç Microsoft sunucusuna gider.
  • Komut enjeksiyonu yok. PowerShell sabit betiklerle çağrılır; yazdığın her şey ona ortam değişkenleriyle ulaşır.

Bir sorun mu buldun? SECURITY.md.

Platform desteği

| | Windows 10/11 | macOS / Linux | WSL | | --- | :---: | :---: | :---: | | search, show, url | ✅ | ✅ | ✅ | | download | ✅ doğrulanır | ✅ doğrulanmaz¹ | ✅ doğrulanmaz¹ | | install, list | ✅ | ❌ Windows gerekir | ❌ Windows'tan çalıştır | | doctor | ✅ tam | yalnızca ağ denetimleri | yalnızca ağ denetimleri |

¹ İmza denetimi Windows PowerShell gerektirir; diğer sistemlerde ghostget dosyayı doğrulamadığını söyler. Çalıştırmadan önce Windows'ta denetle.

Windows 11 22H2'de geliştirildi ve test edildi. Windows 10'un çalışması beklenir, denenmedi.

Kütüphane olarak kullan

import { searchStore, getProduct, installApp } from 'ghostget';

const [best] = await searchStore('windows terminal');
const app = await getProduct(best.id);
console.log(app.name, app.price.free, app.version);

const result = await installApp(best.id, {
  wait: true,                                    // uygulama kurulu görününce biter
  onEvent: (e) => console.log(e.type),           // resolved, download-start, progress, verified, launched...
});
console.log(result.status);                      // 'installed'

ESM, tipli (JSDoc'tan üretilen .d.ts), bağımlılık yok. Tüm fonksiyonlar docs/api.md içinde (İngilizce).

Yapılandırma

| Değişken | Etkisi | | --- | --- | | GHOSTGET_MARKET, GHOSTGET_LOCALE | Store pazarı ve dili, örn. TR ve tr-TR. Varsayılan: sistem yerel ayarın | | GHOSTGET_CID | Kurulum bağlantısındaki kampanya kimliği. Varsayılan website_cta_psi, Microsoft'un sitesinin kullandığı | | GHOSTGET_DIR | install'ın kurulum programlarını tuttuğu yer. Varsayılan: bir gün sonra temizlenen geçici klasör | | GHOSTGET_INSTALLER_URL, GHOSTGET_DISPLAY_CATALOG_URL, GHOSTGET_STORE_EDGE_URL | ghostget'i bir yansıya veya test sunucusuna yönlendirir (https, localhost'ta http) | | NO_COLOR, FORCE_COLOR | Renk denetimi |

Çıkış kodları

| Kod | Anlamı | | ---: | --- | | 0 | Başarılı | | 1 | Başka bir hata veya --wait zaman aşımı | | 2 | Kullanım hatası (bilinmeyen komut/seçenek, geçersiz değer) | | 3 | Bulunamadı (sonuç yok, bilinmeyen ürün, web kurulum programı yok) | | 4 | Belirsiz: bir ad birden çok uygulamaya uyuyor. Tam kimliği ver | | 5 | Ağ sorunu | | 6 | Windows gerekir | | 7 | İmza denetimi başarısız, dosya silindi | | 8 | Ücretli uygulama (yine de açmak için --force) | | 9 | InstallService, ClipSVC, AppXSvc, UsoSvc veya DoSvc Disabled (install önce bunu kendisi düzeltmeyi dener — SSS'ye bak; bu, o kapalıyken [--no-elevate] ya da reddedildiğinde çıkan hata. Yine de kurulum programını başlatmak için --force) |

SSS

Windows Update'i açmam gerekiyor mu? ghostget Windows Update istemcisini hiç çağırmaz ve hesap istemez. Ama Store birçok uygulamayı Windows Update altyapısı üzerinden dağıtır (ghostget show bunlar için Delivery: WindowsUpdate yazar; satıcının kendi kurulum programını kullananlar WPM gösterir), ve bu altyapı yalnızca wuauserv'den ibaret değil: asıl indirmeyi UsoSvc (Update Orchestrator Service) ile DoSvc (Delivery Optimization) yürütüyor. Canlı ortamda kanıtlandı: UsoSvc/DoSvc Disabled iken WindowsUpdate ile dağıtılan bir kurulum Store'da "Downloading" aşamasına kadar geliyor ve sonra bir COM hatasıyla düşüyor — dışarıdan bakınca Store penceresinin sadece takılı kalmasından ayırt edilemiyor; wuauserv'in kendisi sağlıklı olsa bile fark etmiyor. install indirmeden önce InstallService, ClipSVC, AppXSvc, UsoSvc ve DoSvc'yi kendisi denetliyor (uygulama WPM ile dağıtılıyorsa hiç bakmıyor — bu yol Windows Update'e hiç dokunmaz); biri Disabled ise Windows'tan izin ister (bir UAC penceresi) ve kurulum bitince geri alır — sonraki soruya bak. wuauserv'in kendisine hiçbir zaman dokunulmaz, o yüzden kalıcı olarak Disabled kalabilir.

Yani ghostget artık yönetici yetkisi mi istiyor? Yalnızca gerçekten gerektiğinde, ve yalnızca o tek şey için. Etkin ama durmuş bir servis hiç yönetici yetkisi istemiyor — canlı kanıtlandı, install onu sadece başlatıyor (olağan Store kullanımı da zaten böyle tetikliyor) ve kurulumdan sonra geri durdurmayı deniyor. Disabled bir servis farklı: Windows onu yeniden etkinleştirmek için herkesten yönetici hakkı istiyor, bu Windows'un kendi kuralı. O yüzden install normal Windows Evet/Hayır onay penceresini gösteriyor, yalnızca o kurulumun ihtiyaç duyduğu servis(ler)i düzeltiyor, ve — hâlâ yükseltilmiş yetkiyle, arka planda — uygulama kurulana kadar bekleyip her birini tam bulduğu hâline (StartType dahil) geri döndürüyor. wuauserv ve makinedeki başka hiçbir şey, yetkiyle veya yetkisiz, asla değiştirilmiyor. --no-elevate bu isteği tamamen atlayıp 9 çıkış koduyla elle çalıştırılacak Set-Service düzeltmesine düşüyor — betikler, CI, ya da kendisi çalıştırmayı tercih edenler için.

Bir servis etkin ama "henüz çalışmıyor" diyor — bunu elle mi düzeltmem gerekiyor? Hayır. Manual, Windows'un o servisi yalnızca istendiğinde başlatabileceği anlamına gelir; kendiliğinden başlatmaz, ve bu tetikleyici bir sonraki kurulumda her zaman zamanında ateşlenmez (özellikle ClipSVC). install indirmeden önce servisi kendisi başlatıyor — canlı ortamda kanıtlandı: bunun için yönetici hakkı gerekmiyor, çünkü olağan Store kullanımı da onu zaten böyle tetikliyor — ve kurulumdan sonra geri durdurmayı deniyor. O son kısım yönetici hakkı istiyor; hakkı yoksa (ve yukarıdaki Disabled durumuna düşmediyse, o zaten izin istiyor) servis sadece Running kalır, ta ki Windows onu kendiliğinden durdurana kadar — bu kalıcı bir değişiklik değildir.

Kurulum penceresi yine de giriş istiyor. Bazı uygulamalar (yaş sınırlı içerik, abonelikler, hak sahipliği) hesap ister; bu Microsoft'un kuralıdır, ghostget'in aşması gereken/aşabileceği bir şey değildir.

Uygulamanın ücretli olduğunu söylüyor. Web kurulum programı senin yerine bir şey satın alamaz. Store'dan satın al veya --force ile kurulum programını açıp orada karar ver.

Proxy arkasında Microsoft'a ulaşamıyor. Node, NODE_USE_ENV_PROXY=1 (Node 24+) verilmedikçe HTTPS_PROXY'yi yok sayar. PowerShell sürümü Windows'un proxy ayarlarını kullanır.

Buna izin var mı? ghostget herkese açık uç noktaları ve Microsoft Store web sitesinin her ziyaretçiye verdiği kurulum bağlantısını kullanır. Satın alma, lisans veya DRM'yi aşmaz. Uç noktalar belgelenmemiştir; Microsoft değiştirebilir, bu projenin ana riski budur. Bağımsız bir projedir; Microsoft ile bağlantılı değildir, Microsoft tarafından onaylanmamıştır. "Microsoft Store" ve "Windows" Microsoft'un ticari markalarıdır.

Devamı: docs/troubleshooting.md (İngilizce).

Geliştirme

git clone https://github.com/SkyLostTR/ghostget && cd ghostget
npm install
npm test          # Microsoft sunucularının yerel bir taklidine karşı birim ve uçtan uca testler
npm run typecheck # tsc ile denetlenen JSDoc tipleri
node bin/ghostget.js doctor

Testler asla ağa çıkmaz. Bkz. CONTRIBUTING.md.

Yol haritası

uninstall ve upgrade · tek dosyalık .exe (Node SEA) · Scoop bucket · install'ı Windows tarafına devreden WSL köprüsü.

Geliştirici ve emek verenler

ghostget, SkyLostTR (@Keeftraum) tarafından geliştirilir ve sürdürülür. Sorun bildiren, Microsoft'un canlı servislerine karşı test verilerini güncelleyen ve pull request inceleyen herkese teşekkürler — bkz. katkıda bulunanlar.

Lisans

MIT © 2026 SkyLostTR ve ghostget katkıda bulunanları