
node9-proxy v2.8.3
एजेंटिक युग के लिए निष्पादन सुरक्षा परत। स्वायत्त AI एजेंटों के लिए नियतात्मक "Sudo" शासन और ऑडिट लॉग प्रदान करना।
🛡️ Node9
आपके AI एजेंट ने वास्तव में क्या किया? पता लगाएं।
Node9 आपके AI एजेंट और उन टूल्स के बीच बैठता है जिनका वह उपयोग कर सकता है — खोजें कि वह पहले से क्या कर रहा है, वास्तविक समय में जोखिम भरी कार्रवाइयों से बचाव करें, और किसी भी समय अवधि में जो हुआ उसकी समीक्षा करें।
इनके साथ काम करता है: Claude Code · Codex CLI · Antigravity (agy) · GitHub Copilot CLI · Gemini CLI · Cursor · Windsurf · VSCode · Claude Desktop · Opencode · Pi · Hermes Agent · कोई भी MCP सर्वर।
Node9 क्या करता है
- 🔍 खोजें — क्रेडेंशियल लीक, एजेंट लूप, अवरुद्ध कार्रवाइयों, और डिस्क पर मौजूद हर उस सीक्रेट के लिए हर पिछले AI सत्र को स्कैन करें जिस तक कोई एजेंट अभी पहुंच सकता है
- 🛡 बचाव — जोखिम भरे कमांड चलने से पहले उनकी समीक्षा करें या उन्हें ब्लॉक करें —
rm -rf,git push --force,DROP TABLE, क्रेडेंशियल रीड,curl | bash, AWS/GitHub/Stripe की लीक - 📊 समीक्षा — अवधि-आधारित रिपोर्ट (आज / सप्ताह / महीना / 90 दिन) — प्रति एजेंट लागत, शीर्ष टूल्स, सक्रिय हुए शील्ड, ब्लास्ट रेडियस
पूर्वव्यापी स्कैन
यह मेरी खुद की मशीन है — Node9 बनाते समय 90 दिन। स्कोर 25/100, 5 क्रेडेंशियल फ़ाइलें जिन तक कोई AI एजेंट अभी पहुंच सकता है।```bash npx node9-ai scan # before installation, runs in ~10s, nothing uploads node9 scan # after installation, same output
<p align="center">
Node9 scan scorecard
</p>
## सुरक्षा स्थिति स्कोरकार्ड
`node9 posture` यह मूल्यांकन करता है कि यह मशीन किसी समझौता किए गए एजेंट के प्रति कितनी असुरक्षित है — आइसोलेशन, एग्रेस, डिस्क पर मौजूद सीक्रेट्स, सप्लाई चेन, प्रिविलेज — और प्रत्येक समस्या को ठीक करने के लिए आपको सटीक कमांड देता है।```bash
node9 posture # scorecard with the #1 risk and a fix for every finding
node9 posture --ship # send a redacted snapshot to your node9 dashboard (fleet view)
निष्कर्षों को कौन उन्हें ठीक कर सकता है के आधार पर समूहित किया गया है: 🔒 वे जिन्हें node9 कम करता है (बस कमांड चलाएँ) और 🧱 वे जिन्हें केवल आप ही कर सकते हैं। प्रत्येक में सरल भाषा में क्या / क्यों / कौन और एक वास्तविक उपचार शामिल है — उदाहरण के लिए, "agent runs unsandboxed on the host" निष्कर्ष सीधे node9 sandbox run की ओर इशारा करता है (नीचे)।```text
🛡️ Node9 Posture — agent on this host Score: 100/100 (Good)
2 advisories below don't affect the score — OS-level exposure, yours to weigh.
🟢 node9 is already protecting you ✅ Secrets node9 DLP is blocking this ✅ Egress node9 egress is approval-gating this ✅ Approval gate node9 is blocking this ✅ Privilege node9 is approval-gating this
🔒 node9 reduces these — run the command, the rest is yours ⚠️ Isolation Running directly on the host — no container The agent runs loose on your whole machine, not in a sandbox. → node9 sandbox run — jail it: kernel egress + scoped mounts + node9 inside → node9 shield enable project-jail — or shrink the blast radius, keep host access ⚠️ Network exposure 4 services on 0.0.0.0 (node :3000/:4000, PostgreSQL :5432, Redis :6379) Reachable from your whole network, not just this laptop. → node9 shield enable postgres|redis — node9 blocks DROP TABLE / FLUSHALL → bind to 127.0.0.1 / firewall the port (your part)
✅ Supply chain no issues found ✅ Coverage no issues found
Track this across your fleet & keep it green → node9.ai
## रेपो स्कैन करें — agent-CI सुरक्षा
`node9 scan-repo` किसी भी रेपो (या लोकल फ़ोल्डर) की जाँच करता है कि GitHub Actions में जुड़ा AI एजेंट किस तरह **बाहरी व्यक्ति द्वारा हाईजैक** किया जा सकता है — इंजेक्टेबल वर्कफ़्लो, एजेंट-पहुँच योग्य सीक्रेट्स, अनपिन्ड MCP सर्वर, अत्यधिक व्यापक एजेंट कॉन्फ़िग, और ज़हरीली इंस्ट्रक्शन फ़ाइलें। स्टैटिक और केवल-पार्स: यह केवल कमिट किए गए कॉन्फ़िग को पढ़ता है, रेपो कोड को कभी निष्पादित नहीं करता। पब्लिक रेपो के लिए किसी इंस्टॉल या टोकन की आवश्यकता नहीं है।```bash
npx node9-ai scan-repo <owner/repo> # any public repo, no install
node9 scan-repo . # a local checkout — no network
node9 scan-repo <owner/repo> --json # machine-readable
| -s | --server | Server URL (default: http://localhost:8080) |
| -t | --token | Authentication token |
| -o | --output | Output file path |
| -v | --verbose | Enable verbose logging |
| -q | --quiet | Suppress non-error output |
| -f | --format | Output format (json, yaml, table) |
| -c | --config | Path to configuration file |
| -n | --no-color | Disable colored output |
| -h | --help | Show help message |
| -V | --version | Show version information |
उदाहरण
बुनियादी उपयोग:
tool scan --target example.com
कस्टम आउटपुट फ़ॉर्मेट के साथ:
tool scan --target example.com --format json --output results.json
वर्बोज़ मोड सक्षम करना:
tool scan --target example.com --verbose
कॉन्फ़िगरेशन फ़ाइल का उपयोग करना:
tool scan --config /path/to/config.yaml
कॉन्फ़िगरेशन
टूल निम्नलिखित स्थानों पर कॉन्फ़िगरेशन फ़ाइल की खोज करता है:
./config.yaml~/.config/tool/config.yaml/etc/tool/config.yaml
कॉन्फ़िगरेशन फ़ाइल का उदाहरण:
server:
url: "http://localhost:8080"
timeout: 30s
auth:
token: "your-token-here"
output:
format: "json"
verbose: false
पर्यावरण चर
निम्नलिखित पर्यावरण चर का उपयोग किया जा सकता है:
| चर | विवरण |
|---|---|
TOOL_SERVER_URL | सर्वर URL |
TOOL_TOKEN | प्रमाणीकरण टोकन |
TOOL_OUTPUT_FORMAT | आउटपुट फ़ॉर्मेट |
TOOL_VERBOSE | वर्बोज़ लॉगिंग सक्षम करें |
TOOL_CONFIG | कॉन्फ़िगरेशन फ़ाइल का पथ |
API संदर्भ
GET /api/v1/scan
नया स्कैन शुरू करें।
पैरामीटर:
| नाम | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
target | string | हाँ | लक्ष्य URL या IP पता |
type | string | नहीं | स्कैन प्रकार (डिफ़ॉल्ट: full) |
timeout | integer | नहीं | सेकंड में टाइमआउट (डिफ़ॉल्ट: 30) |
प्रतिक्रिया:
{
"id": "scan-12345",
"status": "running",
"target": "example.com",
"started_at": "2024-01-15T10:30:00Z"
}
GET /api/v1/scan/{id}
किसी विशिष्ट स्कैन की स्थिति प्राप्त करें।
प्रतिक्रिया:
{
"id": "scan-12345",
"status": "completed",
"target": "example.com",
"started_at": "2024-01-15T10:30:00Z",
"completed_at": "2024-01-15T10:32:15Z",
"results": {
"vulnerabilities": [],
"open_ports": [80, 443],
"services": ["http", "https"]
}
}
DELETE /api/v1/scan/{id}
स्कैन रद्द करें या हटाएं।
प्रतिक्रिया:
{
"id": "scan-12345",
"status": "cancelled"
}
``````text
🛡️ node9 scan-repo · node9-ai/agent-security-demo · ⚠️ agent-security risk found
inspected 2 config file(s), 2 finding(s)
🔴 CRITICAL Injectable agent workflow — untrusted input reaches a tool-using agent with secrets
.github/workflows/vulnerable-example.yml · CI-2
• runs with base-repo secrets (pull_request_target)
• checks out the untrusted PR head into the workspace root
• allowed_non_write_users: "*" — any user can trigger the agent
• no effective actor gate
🔴 CRITICAL Exfiltratable secrets reachable by an injectable agent
.github/workflows/vulnerable-example.yml · CI-4
• agent has arbitrary shell (bare Bash) → can read env and exfiltrate
यह क्या जाँचता है:
| जाँच | फ़्लैग |
|---|---|
| CI-1 | कमिट किया गया एजेंट कॉन्फ़िग जो व्यापक टूल्स को पूर्व-अधिकृत करता है या रिमोट हुक चलाता है |
| CI-2 | इंजेक्टेबल एजेंट वर्कफ़्लो — कोई बाहरी व्यक्ति एजेंट को ट्रिगर करके हाइजैक कर सकता है |
| CI-3 | अनपिन्ड / @latest MCP सर्वर या इनलाइन क्रेडेंशियल्स (सप्लाई चेन) |
| CI-4 | वे सीक्रेट्स जिन्हें इंजेक्ट किया गया एजेंट एक्सफ़िल्ट्रेट कर सकता है |
| CI-6 | CLAUDE.md / AGENTS.md / .cursorrules में ज़हरीले या खतरनाक निर्देश |
हर PR पर गेट लगाएँ — GitHub Action के रूप में वही इंजन, ताकि हाइजैक करने योग्य कॉन्फ़िग मर्ज न हो सके:```yaml
.github/workflows/agent-security.yml
- uses: node9-ai/node9-proxy@v2 with: fail-on: high # or 'never' to just comment fail-on-scope: introduced # only what THIS PR added; 'all' (default) judges the whole repo
`fail-on-scope: introduced` वह है जो गेट को उस रिपॉज़िटरी पर अपनाने योग्य बनाता है जिसमें पहले से ही findings मौजूद हैं: PR comment सबसे पहले यह बताता है कि इस बदलाव ने क्या पेश किया, पहले से मौजूद findings सूचीबद्ध रहते हैं लेकिन ब्लॉक नहीं करते, और जिस base commit को पढ़ा नहीं जा सकता वह पास होने के बजाय हर चीज़ को जाँचने पर वापस चला जाता है।
Marketplace: **[node9 Agent Security](https://github.com/marketplace/actions/node9-agent-security)**
इसे चला रहे हैं? अपने README में **[`scanned by node9` badge](https://github.com/node9-ai/node9-proxy/blob/main/docs/badges.md)** जोड़ें।
## Live monitoring
<p align="center">
Node9 monitor dashboard
</p>
`node9 monitor` दो views के साथ एक interactive terminal dashboard खोलता है:
- **`[1]` Realtime** — live activity, approvals, security alerts, वर्तमान risk score
- **`[2]` Report** — period-windowed summary: cost, top tools, shields fired, blast radius
## Report
period-windowed summary के लिए monitor में `[2]` दबाएँ। `[T]oday` · `[W]eek` · `[M]onth` · `[N]inety` के साथ window टॉगल करें — ऊपर दिए गए scan के समान panels, जो आपके post-install audit log द्वारा संचालित होते हैं।
<p align="center">
Node9 monitor [2] Report
</p>```bash
node9 monitor # press [2] for Report view
node9 report --period 7d # CLI form, no TUI
इंस्टॉल```bash
macOS / Linux
brew tap node9-ai/node9 && brew install node9
or via npm (any platform)
npm install -g node9-ai
| `--no-color` | Disable colored output |
| `--debug` | Enable debug mode |
| `--verbose` | Enable verbose mode |
| `--silent` | Enable silent mode |
| `--no-progress` | Disable progress bar |
| `--no-banner` | Disable banner |
| `--no-update` | Disable update check |
| `--no-cache` | Disable cache |
| `--no-config` | Disable config file |
| `--no-env` | Disable environment variables |
| `--no-args` | Disable command line arguments |
| `--no-input` | Disable user input |
| `--no-output` | Disable output |
| `--no-error` | Disable error output |
| `--no-warning` | Disable warning output |
| `--no-info` | Disable info output |
| `--no-success` | Disable success output |
| `--no-failure` | Disable failure output |
| `--no-debug` | Disable debug output |
| `--no-verbose` | Disable verbose output |
| `--no-silent` | Disable silent output |
| `--no-progress` | Disable progress output |
| `--no-banner` | Disable banner output |
| `--no-update` | Disable update output |
| `--no-cache` | Disable cache output |
| `--no-config` | Disable config output |
| `--no-env` | Disable environment output |
| `--no-args` | Disable arguments output |
| `--no-input` | Disable input output |
| `--no-output` | Disable output output |
| `--no-error` | Disable error output |
| `--no-warning` | Disable warning output |
| `--no-info` | Disable info output |
| `--no-success` | Disable success output |
| `--no-failure` | Disable failure output |
| `--no-debug` | Disable debug output |
| `--no-verbose` | Disable verbose output |
| `--no-silent` | Disable silent output |```bash
node9 init # auto-wires all detected agents + MCP servers
node9 login # connect this machine to your workspace (approve it in the browser)
node9 doctor # verify everything is wired and reporting
Node.js 18+ आवश्यक है।
init अपने आप में आपको पूर्ण स्थानीय प्रवर्तन देता है: नियम, शील्ड, DLP और
अनुमोदन सभी ऑफ़लाइन काम करते हैं, इस मशीन पर।
login वह है जो मशीन को आपके डैशबोर्ड पर लाता है। यह एक कोड प्रिंट करता है, ब्राउज़र खोलता है, और आप वहाँ मशीन को अनुमोदित करते हैं; यदि आपके पास अभी तक खाता नहीं है, तो फ़्लो के बीच में साइन अप करने पर आप उसी अनुमोदन पर कोड बरकरार रखते हुए वापस आ जाते हैं। जब तक आप इसे नहीं चलाते, सब कुछ स्थानीय रूप से लागू होता है लेकिन कुछ भी Mission Control तक नहीं पहुँचता, इसलिए डैशबोर्ड खाली रहता है।
node9 logout एक मशीन को फिर से डिस्कनेक्ट करता है। यह उस मशीन की कुंजी को रद्द करता है;
स्थानीय प्रवर्तन चलता रहता है।
शील्ड — क्यूरेटेड नियम पैक
प्रत्येक शील्ड किसी सेवा या डोमेन के लिए एक क्यूरेटेड नियम सेट है। केवल वही सक्षम करें जिसकी आपको आवश्यकता है।
| शील्ड | यह क्या पकड़ता है | सक्षम करें |
|---|---|---|
project-jail | Bash और Read टूल के माध्यम से ~/.ssh, ~/.aws, .env, क्रेडेंशियल्स की रीड को ब्लॉक करता है | node9 shield enable project-jail |
bash-safe | curl | bash, rm -rf /, डिस्क ओवरराइट, रिमोट का eval | node9 shield enable bash-safe |
postgres | WHERE के बिना DROP TABLE, TRUNCATE, DROP COLUMN, DELETE | node9 shield enable postgres |
mongodb | dropDatabase, drop(), deleteMany({}), इंडेक्स ड्रॉप्स | node9 shield enable mongodb |
redis | लाइव सर्वर पर FLUSHALL, FLUSHDB, CONFIG SET | node9 shield enable redis |
aws | S3 डिलीट, EC2 टर्मिनेट, IAM परिवर्तन, RDS डिस्ट्रॉय | node9 shield enable aws |
k8s | namespace डिलीट, helm uninstall, क्लस्टर रोल वाइप्स | node9 shield enable k8s |
docker | system prune, volume prune, rm -f कंटेनर | node9 shield enable docker |
github | gh repo delete, रिमोट ब्रांच डिलीशन, सेटिंग्स परिवर्तन | node9 shield enable github |
filesystem | chmod 777, /etc/, /boot/, /usr/ के अंतर्गत राइट्स | node9 shield enable filesystem |
mcp-tool-gating | अनुमोदित न किए गए MCP टूल चुपचाप नई क्षमताएँ सक्रिय करते हैं | node9 shield enable mcp-tool-gating |
| node9 shield list # show all shields + status |
## हमेशा सक्रिय — किसी कॉन्फ़िग की आवश्यकता नहीं
- **Git** — `git push --force`, `git reset --hard`, `git clean -fd` को पकड़ता है
- **SQL** — `WHERE` के बिना `DELETE` / `UPDATE`, `DROP TABLE`, `TRUNCATE` को पकड़ता है
- **Shell** — `curl | bash`, अनधिकृत `sudo` को पकड़ता है
- **DLP** — किसी भी टूल आर्गुमेंट, फ़ाइल सामग्री, या shell कॉन्फ़िग (`~/.zshrc`, `~/.bashrc`) में AWS keys, GitHub tokens, Stripe keys, PEM private keys को फ़्लैग करता है
- **Response DLP** — बैकग्राउंड स्कैनर Claude की बातचीत का इतिहास पढ़ता है और अगर Claude ने अपने प्रतिक्रिया टेक्स्ट में कोई सीक्रेट _लिखा_ है तो आपको अलर्ट करता है
- **Skills pinning** — सत्रों के बीच इंस्टॉल किए गए Claude skills / plugins का SHA-256 सत्यापन
## समीक्षा प्रॉम्प्ट — अपने एजेंट में इनलाइन स्वीकृत करें
जब node9 किसी क्रिया को **समीक्षा** के लिए फ़्लैग करता है (जैसे `git push --force`, कोई `DROP TABLE`), तो स्वीकृत/अस्वीकृत प्रॉम्प्ट **एजेंट बातचीत में इनलाइन** रेंडर होता है — न कोई फ़्रोज़न सत्र, न अलग टर्मिनल, न ही हुक-टाइमआउट की होड़। node9 अभी भी पूरा मूल्यांकनकर्ता चलाता है और निर्णय लेता है; केवल प्रॉम्प्ट का _सतह_ एजेंट पर स्थानांतरित होता है।
- **Claude Code** और **GitHub Copilot CLI** के लिए **डिफ़ॉल्ट रूप से सक्रिय** — वे एजेंट जिनका हुक अनुबंध एक नेटिव `ask` का सम्मान करता है। अन्य सभी एजेंट (Codex, Gemini, Antigravity, Hermes, Cursor, OpenCode, Pi) node9 के अपने अनुमोदनकर्ता का उपयोग करते हैं।
- **इसे नियंत्रित करें** `~/.node9/config.json` में `reviewChannel` से (या हुक पर `--no-ask`):```jsonc
{
"settings": {
"reviewChannel": "ask", // "ask" = inline agent prompt (default) | "approver" = node9's own approver
},
}
- टीम सेटअप: जब क्लाउड/टीम अनुमोदक कॉन्फ़िगर किया जाता है (
approvers.cloud: true), तो समीक्षाएँ उस अनुमोदक को रूट की जाती हैं — node9 इनलाइन स्व-अनुमोदन को रूटेड/सेकंड-पार्टी अनुमोदन को बायपास करने नहीं देगा।
सैंडबॉक्स — किसी एजेंट को जेल में चलाएँ
जब निगरानी पर्याप्त न हो, तो node9 sandbox एजेंट को एक डिस्पोज़ेबल कंटेनर के अंदर चलाता है जिसमें कर्नेल-प्रवर्तित एग्रेस अलाउलिस्ट और स्कोप्ड माउंट्स होते हैं — जबकि node9 के हुक बॉक्स के अंदर प्रत्येक टूल कॉल को नियंत्रित और ऑडिट करते हैं। सुरक्षा का कठोर संस्करण: एजेंट केवल उस फ़ोल्डर को छू सकता है जिसे आप माउंट करते हैं और उन होस्ट्स तक पहुँच सकता है जिन्हें आप अनुमति देते हैं; बाकी सब कुछ कर्नेल स्तर पर ड्रॉप कर दिया जाता है।```bash
cd ~/my-project
node9 sandbox new # write node9.sandbox.yaml — what to mount + which hosts to allow
node9 sandbox run # build + boot the jailed agent (your project at /workspace)
node9 sandbox tail # watch the agent's actions live, from the host
- **डिस्पोज़ेबल** — कंटेनर बाहर निकलने पर नष्ट हो जाता है; आपके प्रोजेक्ट के संपादन आपकी असली डिस्क पर पहुँचते हैं, बाकी कुछ भी नहीं बचता।
- **समान नीति** — आपके मौजूदा शील्ड / एग्रेस नियम / अनुमोदन बॉक्स के अंदर लागू होते हैं, उसी ऑडिट लॉग और डैशबोर्ड पर स्ट्रीम किए जाते हैं।
- **पोस्चर लूप बंद करता है** — इसे चलाने से आइसोलेशन / एग्रेस निष्कर्ष हरे हो जाते हैं।
ईमानदार दायरा (चरण 1): एकल कंटेनर, **क्लॉड पहले** (कोडेक्स अगला); एजेंट अभी भी बॉक्स में अपने _स्वयं के_ क्रेडेंशियल रखता है (एग्रेस दीवार उन्हें अनुमत होस्ट तक सीमित रखती है) — _"एजेंट कभी भी कोई रहस्य नहीं रखता"_ रोडमैप पर क्रेडेंशियल-ब्रोकर चरण है। डॉकर की आवश्यकता है।
## MCP गेटवे
किसी भी MCP सर्वर को पारदर्शी रूप से रैप करें। एजेंट वही सर्वर देखता है — Node9 हर टूल कॉल को इंटरसेप्ट करता है।```json
{
"mcpServers": {
"postgres": {
"command": "node9",
"args": ["mcp", "--upstream", "npx -y @modelcontextprotocol/server-postgres postgresql://..."]
}
}
}
या बस node9 init चलाएँ — यह आपके मौजूदा MCP सर्वरों को स्वचालित रूप से रैप कर देता है।
🔐 MCP टूल पिनिंग — रग-पुल डिफेंस
MCP सर्वर सत्रों के बीच अपनी टूल परिभाषाएँ बदल सकते हैं। कोई समझौता किया गया या दुर्भावनापूर्ण सर्वर आपके पहली बार भरोसा करने के बाद चुपचाप टूल्स जोड़, हटा या संशोधित कर सकता है — यह एक रग पुल हमला है।
Node9 पहले उपयोग पर टूल परिभाषाओं को पिन करता है:
- पहला कनेक्शन — गेटवे प्रत्येक टूल के नाम, विवरण और स्कीमा का SHA-256 हैश रिकॉर्ड करता है
- बाद के कनेक्शन — हैश की तुलना की जाती है; यदि टूल्स बदले गए हैं, तो सत्र को क्वारंटीन कर दिया जाता है और हर टूल कॉल तब तक ब्लॉक कर दी जाती है जब तक कोई मानव समीक्षा करके परिवर्तन को स्वीकृत नहीं कर देता
- खराब पिन स्थिति — फेल क्लोज़्ड (ब्लॉक) होता है, कभी भी चुपचाप पुनः भरोसा नहीं करता```bash node9 mcp pin list # show all pinned servers and hashes node9 mcp pin update # remove pin, re-pin on next connection node9 mcp pin reset # clear all pins
</details>
## अन्य कमांड
ऊपर दिए गए तीन फ़्लो कमांड (`scan` / `monitor` / `report`) के अलावा:
| कमांड | यह क्या दिखाता है | कब उपयोग करें |
| ---------------- | --------------------------------------------------------- | --------------------------------------- |
| `node9 blast` | एक AI एजेंट अभी क्या पहुँच सकता है — फ़ाइलें, क्रेडेंशियल, env | किसी भी मशीन पर सबसे पहले चलाने वाली चीज़ |
| `node9 tail` | हर टूल कॉल की लाइव स्ट्रीम (केवल टेक्स्ट, कोई TUI नहीं) | अन्य टूल्स, CI, लॉग्स में पाइप करना |
| `node9 sessions` | प्रॉम्प्ट, टूल ट्रेस, और लागत के साथ सत्र इतिहास | हैंडऑफ़ या पिछले काम की समीक्षा करना |
| `node9 dlp` | Claude प्रतिक्रिया टेक्स्ट में क्रेडेंशियल-लीक की खोज | जब भी कोई DLP डेस्कटॉप अलर्ट आए |
| `node9 mask` | स्थानीय सत्र इतिहास फ़ाइलों से plaintext सीक्रेट्स को रीडैक्ट करें | DLP खोज के बाद — स्थानीय डिस्क साफ़ करता है |
साथ ही आपकी Claude Code statusline में एक **लाइव HUD**:```
🛡 node9 | standard | [bash-safe] | ✅ 12 allowed 🛑 2 blocked 🚨 0 dlp | ~$0.43
📊 claude-opus-4-7 | ctx [████████░░░] 54% | 5h [██░░░░░░░░] 12% | 7d [█░░░░░░░] 7%
🗂 2 CLAUDE.md | 8 rules | 3 MCPs | 4 hooks
डेटा पढ़ना — संख्याओं का अर्थ
Node9 सिग्नल को सामने लाता है। यहाँ जानने योग्य पैटर्न दिए गए हैं:
| सिग्नल | संभावित अर्थ |
|---|---|
एक सप्ताह में Would have blocked ≥ 5 | एजेंट उच्च-प्रभाव वाले ऑप्स का प्रयास कर रहा है; शील्ड्स की समीक्षा करना उचित है |
एकल review-git-push नियम findings का >50% | आपका अपना नियम इच्छानुसार काम कर रहा है — जोखिम नहीं, बस पर्यवेक्षण |
user-prompt टूल में DLP finding | आपने अपने ही प्रॉम्प्ट में एक सीक्रेट पेस्ट कर दिया — की को रोटेट करें |
| एक ही फ़ाइल पर Agent Loop ×50+ | एजेंट edit/test/fix चक्र में फँसा है — कॉन्टेक्स्ट जाँचें या धीमा करें |
| MCP टूल पिन मिसमैच | सर्वर ने अपने टूल्स बदल दिए — दोबारा भरोसा करने से पहले समीक्षा करें |
| बड़े MCP रिस्पॉन्स की चेतावनी | वह सर्वर हर बाद के टर्न के लिए आपकी कॉन्टेक्स्ट विंडो को बढ़ा रहा है |
Response DLP अलर्ट | Claude ने अपने रिस्पॉन्स टेक्स्ट में एक सीक्रेट लिखा — ब्लॉक नहीं किया गया, तुरंत रोटेट करें |
tool-result में DLP finding | Claude ने एक सीक्रेट वाली फ़ाइल पढ़ी (.env, क्रेडेंशियल्स) — की को रोटेट करें और node9 mask चलाएँ |
[Shell] में DLP finding | ~/.zshrc या ~/.bashrc में प्लेनटेक्स्ट सीक्रेट — हर AI सेशन इसे देख सकता है |
एकबारगी सिग्नल सामान्य हैं; लगातार बने रहने वाले पैटर्न ही वे हैं जिन पर आप कार्रवाई करते हैं।
Python SDK — किसी भी Python एजेंट को गवर्न करें```python
from node9 import configure, protect
configure(agent_name="my-agent", policy="require_approval")
@protect("bash") def run_command(cmd: str) -> str: ...
**[Python SDK →](https://github.com/node9-ai/node9-python)** · **[CI code review agent example →](https://github.com/node9-ai/node9-pr-agent)**
## अंदर की बात
- **Scan** `~/.claude/projects/`, `~/.gemini/tmp/`, `~/.gemini/antigravity-*/brain/`, `~/.copilot/session-state/`, `~/.codex/sessions/` से raw agent history पढ़ता है — कोई API calls नहीं, पूरी तरह offline
- **Runtime** pre-execution hooks (Claude Code, Codex, Antigravity, GitHub Copilot CLI, Gemini CLI, Opencode, Pi) के ज़रिए या MCP gateway (Cursor, Windsurf, VSCode, Claude Desktop) के ज़रिए tool calls को intercept करता है। सभी decisions atomically `~/.node9/audit.log` में दर्ज होते हैं।
- **MCP gateway** एक stdio proxy है; `tools/list` + `tools/call` JSON-RPC को intercept करता है, बाकी सब forward कर देता है
- **Policy engine** bash AST analysis के लिए [mvdan-sh](https://github.com/mvdan/sh) का उपयोग करता है — backslash escaping, variable substitution, remote download के eval के ज़रिए obfuscation को हराता है
- **Sandbox** एक Dockerfile + entrypoint generate करता है जो `ipset`/`iptables` deny-by-default egress wall को seal करते हैं, फिर non-root agent पर drop कर देते हैं जिसके अंदर node9 का daemon + hooks चल रहे होते हैं; केवल agent की credential file mount होती है, कभी भी आपका पूरा `~/.claude` नहीं
## पूर्ण docs
Config reference, smart rules, stateful rules, trusted hosts, approval modes, CLI reference — **[node9.ai/docs](https://node9.ai/docs)** पर।
## संबंधित projects
- **[node9-python](https://github.com/node9-ai/node9-python)** — Python SDK
- **[node9-pr-agent](https://github.com/node9-ai/node9-pr-agent)** — GitHub Action जो Node9 के ज़रिए PRs को review करता है
## Enterprise
**Node9 Pro** governance locking, SAML/SSO, central audit export, और VPC deployment जोड़ता है। देखें [node9.ai](https://node9.ai)।
## License
Apache-2.0
<p align="center">
<sub>Built with ☕ and healthy paranoia.</sub>
</p>