سینڈ باکس پالیسیاں کنفیگر کریں
کسی ایجنٹ کا رن سینڈ باکس میں چلے گا یا نہیں، یہ سرور پر، بوٹ کے وقت طے ہوتا ہے
(--sandbox)۔ سینڈ باکسنگ فعال کریں ٹوگل اور ترتیبات → سرور → تشخیص اور
پرائیویسی کے تحت بیک اینڈ چننے والا کنٹرول آپ کے ڈیوائس پر محفوظ ترجیحات ہیں۔
سینڈ باکسنگ کارڈ کی ہوسٹ جانچ بتاتی ہے کہ سرور کا ہوسٹ کس چیز کو لپیٹ سکتا ہے۔
کسی رن تک دو کنٹرول پہنچتے ہیں اور یہ گائیڈ دونوں کا احاطہ کرتی ہے:
ترتیبات → ورک اسپیس → ایجنٹ اجازتیں میں ایکشن قواعد، جو طے کرتے ہیں کہ ایجنٹ
کیا پش کر سکتا ہے، کھول سکتا ہے یا کس تک پہنچ سکتا ہے، اور سرور کا اپنا --sandbox فلیگ۔
ایک ایجنٹ کے رن کو کیا محدود کرتا ہے
سیکشن کا عنوان “ایک ایجنٹ کے رن کو کیا محدود کرتا ہے”ایک ایجنٹ کو چھ چیزیں باندھتی ہیں۔ پہلی OS سینڈ باکس ہے اور یہی وہ ہے جو مشروط ہے — باقی پانچ ہر ہوسٹ پر قائم رہتی ہیں۔
| حد | یہ کیا کرتی ہے |
|---|---|
| OS سینڈ باکس | macOS پر Seatbelt، Linux اور WSL2 پر bubblewrap۔ Claude Code CLI، ACP اڈاپٹرز اور ہارنس کے bash ٹول کو لپیٹتا ہے۔ Windows پر اور اُن Linux ہوسٹس پر موجود نہیں جہاں bwrap اور socat نہ ہوں |
| اس کی اپنی worktree | ہر گفتگو کو copy-on-write چیک آؤٹ ملتا ہے۔ اصل چیک آؤٹ رن میں رائٹ سے انکار والے پاتھ کے طور پر شامل کر دیا جاتا ہے اور اسی کو نافذ کرنے والی چیز سینڈ باکس ہے |
| بروکر کے ذریعے جاری کریڈنشلز | کریڈنشل بروکر ہر رن کے لیے ماحول تیار کرتا ہے اور رن کے اختتام پر اسے منسوخ کر دیتا ہے۔ اس میں موجود GitHub ٹوکن پڑھ سکتا ہے مگر پش نہیں کر سکتا: پش Control Center سے گزرتے ہیں، جو پہلے پش قاعدے سے پوچھتا ہے |
| ایکشن گارڈریلز | ہر تبدیلی لانے والا ٹول اپنی اثر کلاسز ظاہر کرتا ہے اور گارڈ کال چلنے سے پہلے اُن کا تعین کرتا ہے۔ کوئی prompt جس سے کوئی منظور کنندہ منسلک نہ ہو، مسترد کر دیا جاتا ہے |
| ماحول کی صفائی | ACP اور ہارنس کے bash ٹول کو چھنا ہوا ماحول ملتا ہے۔ NoSandboxAdapter کے ذریعے Claude Code ہوسٹ کا ماحول ورثے میں پاتا ہے |
| موڈ کا ٹول سرفیس | ریڈ اونلی موڈ worktree میں تبدیلی کرنے والے ٹولز سرے سے نکال دیتا ہے اور موڈ کے اپنے آؤٹ پٹ فعل کو پن کر دیتا ہے تاکہ وہ پھر بھی حوالے کر سکے |
تین چیزیں دکھنے سے زیادہ کمزور رہ جاتی ہیں:
- صرف بلٹ اِن ہارنس ہی ٹول گیٹ، تکمیل کے معاہدے اور موڈ کے ساختی قواعد نافذ
کرتا ہے۔ Claude Code اڈاپٹر نہیں کرتا۔ خاص طور پر Claude Code کو
--dangerously-skip-permissionsکے ساتھ لانچ کیا جاتا ہے، کیونکہ غیر تعاملیclaude -pورنہ اپنے ہی پرامپٹ پر ہمیشہ کے لیے بلاک ہو جاتا — چنانچہ Claude کی اپنی read، write اور edit کالز نہ Control Center دیکھتا ہے اور نہ اُن پر گیٹ لگاتا ہے، اور bash کمانڈز کو صرف ایک ہک جانچتا ہے جو کمانڈ لائن پڑھتا ہے۔ جہاں سینڈ باکس آن ہو، وہی اُن کے گرد سرحد ہے۔ - ہارنس کے اِن پروسیس فائل ٹولز (read، write، edit، apply patch، search،
find، search_files) سرور پروسیس کے اندر چلتے ہیں، اس لیے کوئی سینڈ باکس
پروفائل اُنہیں محدود نہیں کرتا۔ صرف
bashٹول سینڈ باکس شدہ کمانڈ رنر سے گزرتا ہے۔ وہ ٹولز اپنے پاتھ کنفائنمنٹ کے ساتھ ایکشن گارڈریلز سے بندھے ہوتے ہیں۔ - جس ہوسٹ کے پاس کوئی بیک اینڈ نہ ہو وہاں پہلی قطار بالکل لاگو نہیں ہوتی۔ ACP
اور ہارنس کا
bashٹول ماحول کی صفائی کے علاوہ کمانڈ پالیسی پر واپس چلے جاتے ہیں؛ Claude CodeNoSandboxAdapterکے ذریعے ہوسٹ کا ماحول ورثے میں پاتا ہے۔ سرور یہ اپنے اسٹارٹ اپ لاگ میں بتا دیتا ہے۔ نیچے اپنا معاملہ جانچیں۔
طے کریں کہ ایجنٹ کیا پش کر سکتا ہے
سیکشن کا عنوان “طے کریں کہ ایجنٹ کیا پش کر سکتا ہے”git push، GitHub، ٹکٹنگ یا نیٹ ورک کے لیے کوئی فی ایجنٹ ٹوگل نہیں۔ ہر ایک ایکشن قاعدہ ہے:
| قاعدہ | بلٹ اِن ڈیفالٹ | کس چیز کا احاطہ کرتا ہے |
|---|---|---|
| ریموٹ پر پش کریں | پہلے پوچھیں | GitHub پر ہر git push، کسی بھی اڈاپٹر سے |
| pull request کھولیں | پہلے پوچھیں | gh pr create اور pull request ٹولز |
| ریویو شائع کریں یا مرج کریں | پہلے پوچھیں | gh pr merge، gh pr review، gh pr comment، gh pr close |
| بیرونی ٹریکر پر لکھیں | پہلے پوچھیں | Control Center ٹولز اور gh issue کے ذریعے ٹکٹ لکھنا |
| نیٹ ورک تک رسائی | اجازت دیں | سینڈ باکس کے پاس نیٹ ورک ہے یا نہیں، اور ہارنس کے ویب ٹولز |
- ترتیبات → ورک اسپیس → ایجنٹ اجازتیں پر جائیں
- کوئی دائرہ چنیں — ورک اسپیس، ایجنٹ یا اسپیس — پھر قاعدے کی قطار میں اجازت دیں، پہلے پوچھیں یا منع کریں چنیں
برانچ تک محدود پش قواعد، جیسے main پر پش منع کرنے والا قاعدہ، بھی لاگو ہوتے ہیں:
گارڈریلز دیکھیں۔
چیک پوائنٹ: کسی ایجنٹ سے ایک برانچ پش کرنے کو کہیں۔ پہلے پوچھیں پر آپ کو منظوری کی
ایسی درخواست ملتی ہے جس میں ریپو اور ref کا نام ہو؛ منع کریں پر git یہ پرنٹ کرتا ہے
! [remote rejected] <ref> (Control Center policy: …)۔
ہر قاعدہ رن تک کیسے پہنچتا ہے:
- پش اس سے نافذ ہوتے ہیں جو رن کے پاس ہے۔ اس کا GitHub ٹوکن صرف پڑھنے والا GitHub
App انسٹالیشن ٹوکن ہے، جو مواد پڑھتا ہے اور pull requests کے ساتھ کام کرتا ہے۔ اس کی
git کنفیگریشن GitHub پر ہر پش کو
cc_serverپر ایک loopback گیٹ وے کی طرف بھیجتی ہے، جو قاعدے سے پوچھتا ہے اور تبھی پش کو ایسے رائٹ ٹوکن کے ساتھ آگے بڑھاتا ہے جو ایجنٹ کبھی نہیں دیکھتا۔ گیٹ وے صرف worktree کے اپنے ریپو یا ورک اسپیس سے منسلک کسی GitHub ریپو تک پہنچاتا ہے۔ یہ ہر اڈاپٹر کے لیے درست ہے۔ - شیل سے pull requests اور issues کمانڈ لائن سے پہچانے جاتے ہیں: ہارنس کے
bashٹول میں، اور ہک کے ذریعے Claude Code کےBashٹول میں۔ جو ایجنٹ کمانڈ چھپائے (اسکرپٹس،eval، براہِ راست API کالز) وہ اس جانچ سے بچ نکلتا ہے، مگر پش گیٹ وے سے نہیں۔ - ٹکٹنگ کلیدیں کبھی سینڈ باکس میں نہیں رکھی جاتیں۔ ایجنٹ Control Center کے MCP ٹولز کے ذریعے ٹکٹ لکھتے ہیں، جو قاعدے سے پوچھتے ہیں۔
- نیٹ ورک رن کے آغاز پر ایک بار طے ہوتا ہے۔ منع کریں سینڈ باکس کا نیٹ ورک بند کر
دیتا ہے؛ اجازت دیں اور پہلے پوچھیں اسے آن رکھتے ہیں، اور پہلے پوچھیں کے تحت
ہارنس کے
web_fetchاورweb_searchٹولز پھر بھی ہر کال پر پوچھتے ہیں۔ جب تک نیٹ ورک آن ہے، GitHub ہمیشہ ایگریس allowlist میں ہوتا ہے۔
جانچیں کہ آپ کے ایجنٹ رنز سینڈ باکس میں چلتے ہیں یا نہیں
سیکشن کا عنوان “جانچیں کہ آپ کے ایجنٹ رنز سینڈ باکس میں چلتے ہیں یا نہیں”اس کا فیصلہ دو چیزیں کرتی ہیں، اور دونوں سرور پر ہیں: ہوسٹ کوئی بیک اینڈ پیش کرتا
ہے یا نہیں، اور --sandbox آن ہے یا نہیں۔ اسی ترتیب سے جانچیں۔
- ترتیبات → سرور → تشخیص اور پرائیویسی پر جائیں
- سینڈ باکسنگ کارڈ پڑھیں۔ ہوسٹ والی حقیقت وہ مشین ہے جس پر
cc_serverچلتا ہے، نہ کہ وہ مشین جو آپ سامنے دیکھ رہے ہیں۔ بیک اینڈ فیلڈ نیٹو سینڈ باکس (macOS پر Seatbelt، Linux اور WSL2 پر bubblewrap) یا کوئی علیحدگی نہیں بتاتی ہے۔ نافذ والی حقیقت اِس ڈیوائس کی ترجیح ہے، وہ رَیپ نہیں جو سرور واقعی استعمال کرتا ہے۔ - سرور کا اسٹارٹ اپ لاگ پڑھیں۔ یہ تین میں سے ٹھیک ایک لائن چھاپتا ہے:
agent sandbox ONاور ساتھ بیک اینڈ کا نوٹ — رنز لپیٹے جاتے ہیںno OS-native agent sandbox on this hostاور جہاں کوئی ہو وہاں انسٹالیشن کا اشارہ — رنز لپیٹے نہیں جاتےagent sandbox DISABLED by --sandbox off— جان بوجھ کر باہر نکلنا
GET /healthz سینڈ باکس کی حالت نہیں بتاتا، اس لیے جانچ اسٹارٹ اپ لاگ ہی ہے۔
سینڈ باکس جان بوجھ کر بند کرنے کے لیے — جس ہوسٹ پر پروفائل بے ڈھنگ برتاؤ کرے،
وہی اس کے بند ہونے کی وجہ ہے — سرور کو --sandbox off کے ساتھ شروع کریں، یا
CC_SERVER_SANDBOX=off سیٹ کریں۔ ڈیفالٹ on ہے اور on کا مطلب ہے ”ہوسٹ کے پاس
ہو تو بیک اینڈ استعمال کرو“، ہرگز ”بیک اینڈ لازم کرو“ نہیں۔
دو صورتوں کو کبھی نیٹو سینڈ باکس رَیپ نہیں ملتا۔ Windows پر نیٹو پروب ہمیشہ
ناقابلِ دستیاب بتاتا ہے اور انسٹال کرنے کو کچھ نہیں ہوتا — ایجنٹ ڈسپیچ none
استعمال کرتا ہے۔ microvm بیک اینڈ الگ ہے (انٹرایکٹو ٹرمنلز اور رگز) اور اپنے رن
ٹائم پر پروب گیٹڈ ہے۔ Linux اور WSL2 پر bwrap اور socat دونوں کا PATH پر
ہونا لازم ہے؛ اُن کے بغیر پروب ناقابلِ دستیاب بتاتا ہے اور غائب پیکیجز کے نام
گنواتا ہے۔
bubblewrap انسٹال ہونے کے ساتھ Linux/WSL2 پر، ایجنٹ کی بعد میں بنائی گئی فائلوں کے
لیے معیاری پالیسی کے خفیہ فائل گلوبز نافذ نہیں کیے جا سکتے۔ ایسا نیٹو رن اب قواعد
کو خاموشی سے نظرانداز کرنے کے بجائے ناکام ہو جاتا ہے۔ چنانچہ بوٹ پروب کا کامیاب
ہونا اس بات کی ضمانت نہیں کہ Linux ڈسپیچ شروع ہو سکے گا۔ --sandbox off جان بوجھ
کر بغیر پابندی چلنے کا انتخاب ہے، سیکیورٹی سرحد کا نعم البدل نہیں۔
جانیں کہ کوئی موڈ پہلے ہی کس چیز سے منع کرتا ہے
سیکشن کا عنوان “جانیں کہ کوئی موڈ پہلے ہی کس چیز سے منع کرتا ہے”موڈ فی اسپیس محفوظ ہوتا ہے اور گارڈریل ریزالور کو موڈ پری سیٹ کی تہہ کے طور پر کھلایا جاتا ہے۔ چار میں سے تین موڈ ریڈ اونلی ہیں اور کوئی ریڈ اونلی موڈ گیارہ اثر کلاسز سے سرے سے انکار کر دیتا ہے:
| موڈ | worktree | پری سیٹ سے مسترد |
|---|---|---|
ایجنٹ (chat) |
قابلِ تحریر | کچھ نہیں — بلٹ اِن ڈیفالٹس لاگو ہوتے ہیں |
| پلان | ریڈ اونلی | فائل حذف کریں، worktree سے باہر لکھیں، کمیٹ بنائیں، ریموٹ پر پش کریں، pull request کھولیں، ریویو شائع کریں یا مرج کریں، بیرونی ٹریکر پر لکھیں، پیکیج انسٹال کریں، پراسیس چلائیں، ورک اسپیس کا ڈھانچہ بدلیں، انکلوژر بوٹ کریں یا چلائیں |
| ریویو | ریڈ اونلی | وہی گیارہ۔ صارف کے لیے منتخب کرنے کے قابل نہیں — کمپوزر صرف ایجنٹ، پلان اور آرکیسٹریٹ پیش کرتا ہے |
| آرکیسٹریٹ | ریڈ اونلی | وہی گیارہ |
نیٹ ورک رسائی اور راز تک رسائی سے کوئی ریڈ اونلی موڈ جان بوجھ کر انکار نہیں کرتا: تحقیق ہی تو اُس کا مقصد ہے۔
کسی ایکشن کے چلنے سے پہلے منظوری لازمی کریں
سیکشن کا عنوان “کسی ایکشن کے چلنے سے پہلے منظوری لازمی کریں”منظوری گارڈریل کا فیصلہ ہے، سینڈ باکس کی سیٹنگ نہیں۔
- ترتیبات → ورک اسپیس → ایجنٹ اجازتیں پر جائیں
- ایکشن کلاس کو ورک اسپیس، ایجنٹ یا اسپیس دائرے پر پہلے پوچھیں کر دیں
پہلے پوچھیں کا فیصلہ رن کو روک کر آپ سے پوچھتا ہے۔ کوئی منظور کنندہ منسلک نہ ہو تو یہ بند ہو کر ناکام ہوتا ہے اور ایکشن مسترد کر دیا جاتا ہے۔ تعین کی مکمل ترتیب کے لیے گارڈریلز کنفیگر کریں دیکھیں۔
خرابیوں کا ازالہ
سیکشن کا عنوان “خرابیوں کا ازالہ”کوئی ایجنٹ پش نہیں کر پاتا اور میں نے کبھی منع نہیں کیا
سیکشن کا عنوان “کوئی ایجنٹ پش نہیں کر پاتا اور میں نے کبھی منع نہیں کیا”دیکھیں کہ git نے کیا پرنٹ کیا۔ Control Center policy: … کا مطلب ہے کہ کسی قاعدے نے پش
منع کیا، یا کسی پہلے پوچھیں کا جواب نہیں آیا۔ … is not linked to this workspace کا
مطلب ہے کہ ہدف نہ worktree کا اپنا ریپو ہے اور نہ ورک اسپیس سے منسلک ہے۔
Control Center has no GitHub credential that can push … کا مطلب ہے کہ ریپو پر GitHub
App انسٹال نہیں اور کوئی فال بیک کریڈنشل پش نہیں کر سکتا: اُس ریپو پر App انسٹال کریں، یا
GitHub منسلک کریں۔
سینڈ باکسنگ کارڈ کوئی نیٹو سینڈ باکس نہ ہونے کی اطلاع دیتا ہے
سیکشن کا عنوان “سینڈ باکسنگ کارڈ کوئی نیٹو سینڈ باکس نہ ہونے کی اطلاع دیتا ہے”تو اُس ہوسٹ پر ایجنٹ رنز Seatbelt یا bubblewrap میں لپیٹے نہیں جاتے اور جو سرحدیں
باقی ہیں وہی آپ کے پاس ہیں۔ Linux اور WSL2 پر دونوں غائب ٹولز انسٹال کریں —
sudo apt-get install bubblewrap socat — اور سرور دوبارہ شروع کریں؛ پھر اسٹارٹ اپ
لاگ بتائے گا کہ سینڈ باکس آن ہے۔ Windows پر انسٹال کرنے کو کوئی نیٹو بیک اینڈ نہیں،
اس لیے اس کے بجائے گارڈریلز سخت کریں:
گارڈریلز کنفیگر کریں دیکھیں۔
کوئی ایجنٹ اپنی worktree سے باہر کی فائل تک پہنچ گیا
سیکشن کا عنوان “کوئی ایجنٹ اپنی worktree سے باہر کی فائل تک پہنچ گیا”یہ متوقع ہے یا نہیں، اس کا فیصلہ اس بات سے ہوتا ہے کہ کون سا ٹول وہاں پہنچا۔
ہارنس کے اِن پروسیس فائل ٹولز (read، write، edit، apply patch، search، find،
search_files) سرور پروسیس میں چلتے ہیں، اس لیے اُن پر کوئی سینڈ باکس پروفائل لاگو
نہیں ہوتا — اُن کی حد ان کا اپنا پاتھ کنفائنمنٹ اور گارڈریلز ہیں۔ کوئی bash
کمانڈ یا Claude Code CLI، جہاں بیک اینڈ موجود ہو، وہاں لپیٹا جاتا ہے اور آپ کے
رجسٹرڈ چیک آؤٹ اُس رَیپ کے اندر ہر موڈ میں رائٹ سے انکار والے ہوتے ہیں، بشمول اُن
کی symlink سے حل شدہ ہجوں کے (macOS پر /tmp یا /var/folders کے ذریعے پہنچا پاتھ
/private کے تحت حل ہوتا ہے اور اب دونوں ہجے مسترد کیے جاتے ہیں)۔ جس ہوسٹ پر کوئی
بیک اینڈ نہ ہو، وہاں اس میں سے کچھ بھی لاگو نہیں ہوتا۔ دونوں صورتوں میں، گارڈریلز
worktree سے باہر لکھیں سے سرے سے انکار کر سکتے ہیں۔
متعلقہ گائیڈز
سیکشن کا عنوان “متعلقہ گائیڈز”- گارڈریلز کنفیگر کریں
- ایجنٹ بنائیں اور کنفیگر کریں
- ایجنٹ کی تشخیص کریں
- سینڈ باکس بیک اینڈز
- cc_server CLI:
--sandboxفلیگ