নতুন — আপডেট এখন ইন্টারফেসের ভেতরেই চলে

এক কমান্ড।
153টি উৎস
সবসময় আপ-টু-ডেট।

winget, brew, npm, pip, cargo আর helm-এর পেছনে আলাদা করে ছোটাছুটি বন্ধ করুন। gup এগুলো সব একসঙ্গে স্ক্যান করে, কী পুরোনো হয়েছে দেখায়, আর আপনি যা বেছে নেন তা সরাসরি আপডেট করে — ইন্টারফেসের ভেতরে বসানো একটি টার্মিনালে।

npm install -g @charles_lindecker/gup --allow-scripts=node-pty

GitHub-এ দেখুন
  • MIT · ওপেন সোর্স
  • Node ≥ 26
  • Windows · macOS · Linux
  • শূন্য টেলিমেট্রি
  • কোনো ডেমন নেই · শিডিউলিং ঐচ্ছিক
gup কাজ করছে

gup v0.5.147 detected5 updatesnormal mode

Menu

  • Scan
  • Packages5
  • Schedules1
  • Providers
  • Journal
  • Options
  • Quit

Packages

SelectionPackageCurrentLatest
partly checkedHomebrew2/3
checkedripgrep14.1.0→ 14.1.1
checkedfzf0.54.0→ 0.55.0
not checkedscheduledbat0.24.0→ 0.25.0
partly checkednpm (global)1/2
checkedtypescript5.5.4→ 5.6.2
not checkedpnpm9.6.0→ 9.12.1

● 3 of 5 checkedEnter Update (3)

space check · / filter · p schedule · a check all · ↑↓ navigate · r rescan · enter update (3) · tab menu · q quit

ইন্টারফেসটি ডিফল্টভাবে ইংরেজিতে, আর gup language fr দিয়ে ফরাসিতে। কমান্ড, ফ্ল্যাগ আর JSON আউটপুট সব ভাষাতেই একই।

01 / ফিচার

সবকিছু একটিই ইন্টারফেসে।

স্ক্যান, বাছাই, আপডেট, শিডিউল আর পর্যালোচনা — gup আপনাকে একটিমাত্র ফুল-স্ক্রিন টার্মিনাল অ্যাপেই রাখে।

  • নতুন

    gup না ছেড়েই আপডেট

    ইনস্টলারগুলো ইন্টারফেসের ভেতরে বসানো একটি টার্মিনাল প্যানে চলে — প্রোগ্রেস বার, প্রম্পট আর রং সবই অক্ষত থাকে। আপডেট হওয়া প্যাকেজগুলো এরপর তালিকা থেকে সরে যায়, আবার স্ক্যান করতে হয় না। বসানো টার্মিনাল না পাওয়া গেলে gup কারণ জানায় এবং আপনার নিজের টার্মিনালেই আপডেট করে।

  • একাধিক বাছুন, একবারে চালান

    Space দিয়ে প্যাকেজ চিহ্নিত করুন, a দিয়ে সব বেছে নিন, Enter দিয়ে চালু করুন। একটি কিউ, একটি সারসংক্ষেপ।

  • নতুন

    প্যাকেজ ধরে ধরে নির্ধারিত আপডেট

    প্যাকেজ চিহ্নিত করে p চাপুন: ripgrep প্রতি সপ্তাহে আপডেট হবে আর node যেমন আছে তেমনই থাকবে। শিডিউল সবসময় প্যাকেজকে লক্ষ্য করে, কখনো পুরো একটি provider-কে নয়; আপনার OS-এর শিডিউলার অল্প সময়ের জন্য gup চালু করে যা বাকি তা সেরে নেয়, তাই ব্যাকগ্রাউন্ডে কিছুই চলতে থাকে না।

  • কার্যকলাপ লগ

    প্রতিটি স্ক্যান ও আপডেট আপনার মেশিনেই লগ হয়। টার্মিনাল চার্টে আপনার কার্যকলাপ আর কোন প্যাকেজ সবচেয়ে বেশি আপডেট হয় তা দেখা যায়; ডিবাগ করতে লগ এক্সপোর্ট করুন।

  • নতুন

    HTML রিপোর্ট

    gup report, অথবা কার্যকলাপ লগে o, ব্রাউজারে আপনার ইতিহাসের একটি পরিষ্কার, সহজে ঘুরে দেখার মতো রিপোর্ট খোলে — একটিমাত্র অফলাইন ফাইল, যা যে-কেউ পড়তে পারেন, শুধু টার্মিনাল ব্যবহারকারীরাই নন।

  • সবসময় পড়ার উপযোগী থিম

    দশটি বিল্ট-ইন থিম বা নিজের পছন্দের রং: gup প্রতিটিকে WCAG AA অনুযায়ী যাচাই করে — লেখার জন্য 4.5:1, বর্ডারের জন্য 3:1, AAA বেছে নিলে 7:1 — আর যা ঘাটতি থাকে তা ঠিক করে।

  • আপনার OS সম্পর্কে সচেতন

    যে providers আপনার সিস্টেমে চলতে পারে না, সেগুলো লুকানো থাকে না, ধূসর দেখায়: Mac-এ শুধু Windows-এর টুলগুলো সেভাবেই চিহ্নিত থাকে, আর উল্টোটাও।

  • স্ক্রিপ্ট ও CI-এর জন্য তৈরি

    gup list --json, স্থিতিশীল এক্সিট কোড, প্রম্পট এড়াতে -y, আর স্ক্যান এড়িয়ে যাওয়া provider:package টার্গেট।

02 / কভারেজ

153টি উৎস। তিনটি সিস্টেম। একটি বাইনারি।

Windows, macOS ও Linux-এ একই এক্সিকিউটেবল — একই provider চুক্তি, একই JSON। বদলায় শুধু OS-এর সেই স্তর, যা gup চালাতে পারে।

  • প্রধান লক্ষ্য

    Windows

    সমর্থিত providers
    139 / 153
    • winget
    • scoop
    • chocolatey
    • WSL

    WSL ব্রিজ: আপনার ডিস্ট্রোর ভেতরে apt, dnf, pacman, Flatpak, Nix ও Linuxbrew।

  • নেটিভ

    macOS

    সমর্থিত providers
    132 / 153
    • Homebrew
    • Homebrew Casks
    • MacPorts
    • Mac App Store

    Apple Silicon ও Intel · brew Cellar-এর সিমলিংক স্বয়ংক্রিয়ভাবে অনুসরণ করা হয় · mas ঐচ্ছিক।

  • নেটিভ

    Linux

    সমর্থিত providers
    126 / 153
    • Homebrew / Linuxbrew
    • Nix
    • apt · হস্তান্তর
    • dnf · হস্তান্তর

    কোনো বাইনারির মালিক dpkg -S বা rpm -qf দিয়ে খুঁজে বের করা হয়, তারপর আপডেট সেই ম্যানেজারের কাছেই ফেরত যায়।

সব জায়গায় একই

  • npm
  • pnpm
  • yarn
  • bun
  • pip
  • pipx
  • uv
  • cargo
  • rustup
  • gem
  • composer
  • dotnet tools
  • helm
  • kubectl
  • terraform
  • VS Code
  • JetBrains
  • gh extensions
  • pwsh modules
  • asdf
  • mise
সব 153টি provider, ডোমেইন অনুযায়ী
OS প্যাকেজ ম্যানেজার
brew · brew-cask · choco · cygwin · fink · macports · mas · msys2 · nix · npackd · pkgin · pkgx · scoop · sparkle · winget
WSL
wsl · wsl-apt · wsl-brew · wsl-dnf · wsl-flatpak · wsl-nix · wsl-pacman
Node.js
bun-g · corepack · deno · fnm · npm-g · nvm · nvm-windows · pnpm-g · volta · yarn-g
Python
conda · pdm · pip · pipx · poetry · pyenv · pyenv-win · rye · uv-tools
.NET ও PHP
composer-g · composer-self · dotnet-sdk · dotnet-tools · nuget · phive · symfony-cli
JVM
coursier-cs · jbang
Rust
cargo · rustup
অন্যান্য ভাষা
R-packages · cabal · flutter · gem · hex · julia-pkg · luarocks · mint · mix-archive · nimble · opam · pub-global · stack · vcpkg
ভার্সন ম্যানেজার
asdf · goenv · mise · proto · sdkman · swiftly
ক্লাউড CLI
aws-cli-v2 · az · doctl · flyctl · gcloud · hcloud · heroku · linode-cli · oci-cli · railway · scw · supabase
ইনফ্রাস্ট্রাকচার অ্যাজ কোড
boundary · consul · nomad · opentofu · packer · pulumi · terraform · terragrunt · tflint · vault
Kubernetes
argocd · flux · helm · helm-plugins · helm-repo · k3d · kind · krew · kubectl · kustomize · minikube · skaffold · tilt
কনটেইনার
dive · docker-desktop · nerdctl · oras · podman-desktop · rancher-desktop
নিরাপত্তা টুল
cosign · gitsign · grype · nuclei · nuclei-templates · pdtm · rekor · semgrep · syft · trivy
ডেভেলপার CLI
delta · gh-ext · git-for-windows · glab · jj · lazydocker · lazygit · tea
IDE ও এডিটর
cursor-ext · jetbrains · visual-studio · vscode-ext · vscodium-ext · windsurf-ext
এডিটর প্লাগইন
nvim-lazy · nvim-mason · nvim-packer · vim-plug
এমবেডেড ও মোবাইল
android-sdk · arduino-cli · expo · fastlane · platformio · xcodes
শেল ও প্রম্পট
nerd-fonts · oh-my-posh · psresource · pwsh-modules · starship
gup নিজেই
self
পুরো provider ক্যাটালগ দেখুন

03 / কীভাবে কাজ করে

একটি অর্কেস্ট্রেটর, আরেকটি প্যাকেজ ম্যানেজার নয়।

gup প্রতিটি টুলের নিজস্ব কমান্ড একসঙ্গে চালায় আর উত্তরগুলো পাশাপাশি সাজিয়ে দেখায়। কোনো প্যাকেজ রেজিস্ট্রি নেই, ক্যাশ নেই, ব্যাকগ্রাউন্ডে কিছুই চলতে থাকে না।

  1. স্ক্যান

    শনাক্ত হওয়া প্রতিটি provider listOutdated()-এর উত্তর দেয়, একবারে চারটি করে। কোনোটি ব্যর্থ হলে শুধু তার নিজের সারিটিই প্রভাবিত হয়।

  2. বাছাই

    provider অনুযায়ী সাজানো প্যাকেজগুলো দেখুন, ফিল্টার করুন, বেছে নিন — অথবা gup update brew:fzf দিয়ে স্ক্যান পুরোপুরি এড়িয়ে যান।

  3. আপডেট

    নেটিভ কমান্ড আর্গুমেন্ট ভেক্টর হিসেবে চলে, কখনো শেলের মাধ্যমে নয়। প্রতিটি চেষ্টা স্থানীয় লগে লেখা থাকে।

আর্কিটেকচার বিস্তারিত

04 / নিরাপত্তা

এটি বিশেষাধিকারসম্পন্ন কমান্ড চালায়। তাই সেভাবেই তৈরি।

শেলে যাওয়ার একটিমাত্র পথ, কঠোর আর্গুমেন্ট ভেক্টর, টেস্ট দিয়ে বাঁধা অনুমোদিত তালিকা — আর প্রতিটি কমিট তিনটি স্ট্যাটিক অ্যানালাইজার পেরিয়ে আসে।

  • এক্সিকিউশন

    সাবপ্রসেস চলে কঠোর argv ভেক্টর হিসেবে, কখনো shell: true নয়, একটিমাত্র অডিট করা প্রবেশপথ দিয়ে।

    • execa
    • argv
    • no shell
  • সাপ্লাই চেইন

    শুধু HTTPS-এ ডাউনলোড, প্রতিটি বিল্ডে ডিপেনডেন্সি অডিট, প্রতি সপ্তাহে আপডেট পর্যালোচনা।

    • audit-ci
    • Dependabot
    • gitleaks
  • স্ট্যাটিক বিশ্লেষণ

    প্রতিটি কমিটে CodeQL, Semgrep ও eslint-plugin-security, সঙ্গে নিরাপত্তার ইনভ্যারিয়েন্ট যাচাইয়ের জন্য আলাদা টেস্ট স্যুট।

    • CodeQL
    • Semgrep
    • eslint-security

05 / প্রশ্নোত্তর

আপনার প্রশ্ন, আমাদের উত্তর।

gup কি winget, brew বা npm-এর জায়গা নেয়?

না। gup প্রতিটি টুলের নেটিভ কমান্ড (winget upgrade, brew outdated, npm update -g, pip list --outdated…) একটি ইন্টারফেসের পেছনে পরিচালনা করে। কোনো বানানো প্রোটোকল নেই, ভার্সন ক্যাশও নেই।

এটি কি macOS আর Linux-এ চলে?

হ্যাঁ। macOS-এ নেটিভভাবে: Homebrew-এর ফর্মুলা ও কাস্ক, MacPorts আর Mac App Store, Apple Silicon ও Intel দুটোতেই। Linux-এ OS-স্তর সামলায় Homebrew/Linuxbrew ও Nix, আর ডিস্ট্রিবিউশনের ইনস্টল করা বাইনারি apt বা dnf-এর কাছে ফেরত দেওয়া হয়। OS স্তরের ওপরের সবকিছু — npm, pip, cargo, helm, VS Code… — তিনটি সিস্টেমেই একইভাবে আচরণ করে।

gup কীভাবে ইনস্টল করব?

npm install -g @charles_lindecker/gup --allow-scripts=node-pty চালান, তারপর কোন providers শনাক্ত হয়েছে দেখতে gup doctor চালান। Node.js 26.9.0 বা তার পরের সংস্করণ লাগবে। --allow-scripts=node-pty node-pty-এর ইনস্টল স্ক্রিপ্টগুলো চালানোর অনুমতি দেয়, আর ভেতরে বসানো টার্মিনালটি node-pty দিয়েই চলে। এটি ছাড়া npm 11 সতর্কবার্তা দেখায় আর npm 12 স্ক্রিপ্টগুলো বাদ দেয়।

CI-তে কি gup ব্যবহার করা যায়?

হ্যাঁ। gup list --json --fast মেশিনে পড়ার উপযোগী আউটপুট দেয়, আর gup update --all -y সব প্রম্পট এড়িয়ে যায়। এক্সিট কোড স্থিতিশীল: 0 সফল, 1 আংশিক ব্যর্থতা, 2 অবৈধ আর্গুমেন্ট।

gup কতগুলো প্যাকেজ ম্যানেজার সমর্থন করে?

153টি provider, প্রতিটি আলাদা মডিউলে: winget, scoop, chocolatey, Homebrew, MacPorts, npm, pnpm, pip, uv, cargo, gem, composer, dotnet টুল, helm, kubectl, terraform, VS Code এক্সটেনশন, JetBrains IDE, WSL ডিস্ট্রিবিউশন এবং আরও অনেক কিছু।

এটি চালানো কি নিরাপদ?

প্রতিটি সাবপ্রসেস একটিমাত্র প্রবেশপথ দিয়ে কঠোর আর্গুমেন্ট ভেক্টর হিসেবে যায় — কখনো শেলের মাধ্যমে নয় — আর টেস্ট দিয়ে বাঁধা অনুমোদিত তালিকা মেনে। CodeQL, Semgrep, gitleaks, audit-ci ও Dependabot নিরবচ্ছিন্নভাবে চলে। gup কোনো টেলিমেট্রি পাঠায় না।

topgrade-এর সঙ্গে এর পার্থক্য কী?

topgrade সরাসরি আপডেট চালায়; gup আগে উত্তর দেয় “কী পুরোনো হয়েছে, কোন সংস্করণ থেকে কোন সংস্করণে”। স্ক্যান আলাদা একটি ধাপ, যাতে আছে JSON আউটপুট, প্যাকেজ ধরে ধরে বাছাই, provider:package টার্গেট, প্যাকেজভিত্তিক শিডিউল আর একটি স্থানীয় ইতিহাস, যা আপনি যেকোনো সময় দেখে নিতে পারেন।

ইন্টারফেসটি কোন ভাষায়?

ডিফল্টভাবে ইংরেজিতে। gup language fr এটিকে ফরাসিতে বদলে দেয় এবং এই পছন্দ সংরক্ষণ করে; GUP_LANG=fr শুধু একটি শেলের জন্য একই কাজ করে এবং ওই পছন্দের ওপর অগ্রাধিকার পায়। কমান্ড, ফ্ল্যাগ আর JSON আউটপুট ভাষার ওপর নির্ভর করে না, আর এই সাইটটি আটটি ভাষায় পাওয়া যায়।

06 / ইনস্টল

ত্রিশ সেকেন্ডেই সব জেনে যাবেন।

একবার npm ইনস্টল, একটি কমান্ড, আর আপনার মেশিনে কী কী পুরোনো হয়েছে তার পূর্ণ তালিকা।

npm install -g @charles_lindecker/gup --allow-scripts=node-pty

  • gupফুল-স্ক্রিন ইন্টারফেস
  • gup list --fastকী পুরোনো, দ্রুত স্ক্যান
  • gup update --all -yসবকিছু, কোনো প্রম্পট ছাড়া (CI)
  • gup update brew:fzfএকটি প্যাকেজ, স্ক্যান ছাড়া
  • gup doctorকী শনাক্ত হয়েছে, আর বাকিগুলো কীভাবে ইনস্টল করবেন