
पर्यावरण रहस्यों को प्रबंधित करने के लिए सुरक्षित CLI उपकरण, जो देशी OS क्रेडेंशियल स्टोर (macOS Keychain, Linux Secret Service, Windows Credential Manager) का उपयोग करता है।
मूल OS क्रेडेंशियल स्टोर का उपयोग करके सुरक्षित पर्यावरण रहस्य प्रबंधन।

myapp.dev, stripe-api.prod, work.staging)cmd के साथ कमांड सहेजें और फिर से चलाएँ (खोजें, सूचीबद्ध करें, चलाएँ, हटाएँ).env फ़ाइलों में रहस्य निर्यात करें (audit के माध्यम से पीढ़ी ट्रैकिंग के साथ)eval $(envsec env)).env फ़ाइलों से रहस्य लोड करें (संघर्ष पहचान के साथ)envsec tui) — कमांड याद रखने की आवश्यकता नहींयह एक मोनोरेपो है जिसमें निम्नलिखित पैकेज शामिल हैं:
| पैकेज | विवरण | npm |
|---|---|---|
envsec | रहस्य प्रबंधन के लिए CLI टूल | |
@envsec/sdk | प्रोग्रामेटिक रूप से रहस्य लोड करने के लिए Node.js / Bun SDK | |
@envsec/core | कोर इंजन — OS क्रेडेंशियल स्टोर एडेप्टर + मेटाडेटा DB | |
@envsec/tui | रहस्य प्रबंधन के लिए इंटरैक्टिव टर्मिनल UI |
Node.js या Bun से रहस्यों तक प्रोग्रामेटिक पहुँच के लिए, @envsec/sdk का उपयोग करें:```bash
npm install @envsec/sdk
मैं देख रहा हूँ कि आपने इनपुट प्रदान नहीं किया है। कृपया वह Markdown सामग्री भेजें जिसे आप अनुवाद करना चाहते हैं, और मैं आपके निर्देशों के अनुसार उसका अनुवाद कर दूँगा।```typescript
import { loadSecrets } from "@envsec/sdk";
// Load and inject into process.env
await loadSecrets({ context: "myapp.dev", inject: true });
// Or use the client for full control
import { EnvsecClient } from "@envsec/sdk";
const client = await EnvsecClient.create({ context: "myapp.dev" });
const apiKey = await client.get("api.key");
await client.close();
पूर्ण SDK दस्तावेज़ीकरण देखें, जिसमें सभी APIs, मल्टी-कॉन्टेक्स्ट समर्थन और विकल्प शामिल हैं।
कोई अतिरिक्त निर्भरता नहीं। security CLI टूल के माध्यम से बिल्ट-इन Keychain का उपयोग करता है।
libsecret-tools की आवश्यकता है (जो secret-tool कमांड प्रदान करता है), जो D-Bus के माध्यम से GNOME Keyring, KDE Wallet, या किसी भी Secret Service API प्रदाता से संवाद करता है।```bash
sudo apt install libsecret-tools
sudo dnf install libsecret
sudo pacman -S libsecret
एक चालू D-Bus सत्र और एक keyring डेमॉन (जैसे `gnome-keyring-daemon`) सक्रिय होना चाहिए। अधिकांश डेस्कटॉप वातावरण इसे स्वचालित रूप से संभाल लेते हैं।
### Windows
कोई अतिरिक्त निर्भरता नहीं। `cmdkey` और PowerShell के माध्यम से अंतर्निहित Windows Credential Manager का उपयोग करता है।
## इंस्टॉलेशन
### Homebrew (macOS / Linux)```bash
brew tap davidnussio/homebrew-tap
brew install envsec
npm install -g envsec
### npx (बिना इंस्टॉल किए)```bash
npx envsec
mise use -g npm:envsec
## उपयोग
अधिकांश कमांड्स के लिए `--context` (या `-c`) के साथ एक कॉन्टेक्स्ट निर्दिष्ट करना आवश्यक है।
कॉन्टेक्स्ट सीक्रेट्स को समूहीकृत करने के लिए एक फ्री-फॉर्म लेबल है — जैसे `myapp.dev`, `stripe-api.prod`, `work.staging`।
### वैश्विक विकल्प
ये विकल्प सभी कमांड्स पर उपलब्ध हैं:
- `--context`, `-c` — कॉन्टेक्स्ट का नाम (जैसे `myapp.dev`, `stripe-api.prod`)। यह `ENVSEC_CONTEXT` एनवायरनमेंट वेरिएबल को भी पढ़ता है
- `--debug`, `-d` — डीबग लॉगिंग सक्षम करें
- `--json` — स्क्रिप्टिंग के लिए JSON प्रारूप में आउटपुट
- `--db` — SQLite डेटाबेस फ़ाइल का पथ (डिफ़ॉल्ट: `~/.envsec/store.sqlite`)। यह `ENVSEC_DB` एनवायरनमेंट वेरिएबल को भी पढ़ता है
### कस्टम डेटाबेस पथ
डिफ़ॉल्ट रूप से, मेटाडेटा `~/.envsec/store.sqlite` पर संग्रहीत होता है। आप इसे `--db` या `ENVSEC_DB` एनवायरनमेंट वेरिएबल के साथ ओवरराइड कर सकते हैं:```bash
# Use a project-local database
envsec --db ./local-store.sqlite -c myapp.dev list
# Or via environment variable
export ENVSEC_DB=/shared/team/envsec.sqlite
envsec -c myapp.dev list
--db फ़्लैग ENVSEC_DB पर प्राथमिकता लेता है। उपयोग के मामलों में प्रति-प्रोजेक्ट डेटाबेस, नेटवर्क ड्राइव पर टीम-साझा डेटाबेस, और अस्थायी स्टोरेज के साथ CI/CD शामिल हैं।
OS क्रेडेंशियल स्टोर में एक सीक्रेट संग्रहीत करें।
<key> — सीक्रेट कुंजी का नाम (जैसे api.key, db.password)--value, -v — संग्रहीत करने के लिए मान (इंटरैक्टिव मास्क्ड प्रॉम्प्ट के लिए छोड़ दें)--expires, -e — समाप्ति अवधि (जैसे 30m, 2h, 7d, 4w, 3mo, 1y)```bashenvsec -c myapp.dev add api.key --value "sk-abc123"
envsec -c myapp.dev add api.key -v "sk-abc123"
envsec -c myapp.dev add api.key
envsec -c myapp.dev add api.key -v "sk-abc123" --expires 30d
envsec -c myapp.dev add api.key -v "sk-abc123" -e 6mo
### कोई सीक्रेट प्राप्त करें
OS क्रेडेंशियल स्टोर से सीक्रेट मान पुनर्प्राप्त करें।
- `<key>` — पुनर्प्राप्त करने के लिए सीक्रेट कुंजी का नाम
- `--quiet`, `-q` — केवल कच्चा मान प्रिंट करें (कोई चेतावनी या अतिरिक्त आउटपुट नहीं)
- `--json` — JSON प्रारूप में आउटपुट (context, key, value, expires_at शामिल है)```bash
envsec -c myapp.dev get api.key
# Print only the raw value (no warnings or extra output)
envsec -c myapp.dev get api.key --quiet
envsec -c myapp.dev get api.key -q
OS क्रेडेंशियल स्टोर से एक सीक्रेट निकालें।
<key> — हटाने के लिए सीक्रेट कुंजी का नाम (वैकल्पिक यदि --all उपयोग किया गया है)--yes, -y — पुष्टिकरण प्रॉम्प्ट छोड़ें--all — कॉन्टेक्स्ट में सभी सीक्रेट हटाएँ```bash
envsec -c myapp.dev delete api.keyenvsec -c myapp.dev del api.key
### किसी सीक्रेट का नाम बदलें
उसी कॉन्टेक्स्ट के भीतर किसी सीक्रेट की कुंजी का नाम बदलें। वैल्यू और समाप्ति मेटाडेटा संरक्षित रहते हैं।
- `<old-key>` — वर्तमान सीक्रेट कुंजी का नाम
- `<new-key>` — नया सीक्रेट कुंजी का नाम
- `--force`, `-f` — यदि लक्ष्य पहले से मौजूद है तो उसे अधिलेखित करें```bash
# Rename a key
envsec -c myapp.dev rename old.key new.key
# Overwrite target if it already exists
envsec -c myapp.dev rename old.key existing.key --force
किसी कॉन्टेक्स्ट में सभी सीक्रेट कुंजियाँ और मेटाडेटा सूचीबद्ध करें।
--json — JSON फॉर्मेट में आउटपुट दें```bash
envsec -c myapp.dev list### सभी कॉन्टेक्स्ट सूचीबद्ध करें
सीक्रेट गिनती के साथ सभी उपलब्ध कॉन्टेक्स्ट सूचीबद्ध करें।
- `--json` — आउटपुट JSON प्रारूप में```bash
# Without --context, lists all available contexts with secret counts
envsec list
ग्लोब पैटर्न का उपयोग करके सीक्रेट या कॉन्टेक्स्ट खोजें।