پیکربندی اجازهها
حالتهای اجازه Claude Code را پیکربندی کنید تا کنترل کنید کدام عملیات به تأیید انسانی نیاز دارند
به کلید API نیاز دارید؟ ثبتنام ←نقاط پایانی و Base URL ←
در این صفحه
Claude Code از یک سیستم اجازه استفاده میکند تا کنترل کند کدام عملیات به تأیید کاربر نیاز دارند. پیکربندی درست اجازهها هم امنیت و هم بهرهوری توسعه را تضمین میکند.
حالتهای اجازه¶
| حالت | توضیح | کاربرد |
|---|---|---|
default |
بار اولی که یک ابزار استفاده میشود، اجازه میخواهد (حالت دستی) | توسعه روزمره، با تعادل میان امنیت و بهرهوری |
acceptEdits |
ویرایش فایلها را بهطور خودکار تأیید میکند؛ سایر عملیات همچنان نیازمند تأیید هستند | کارهایی که شامل تغییرات مکرر فایل هستند |
plan |
فقط تحلیل، بدون اجرا (حالت Plan)؛ زمانی که حالت auto در دسترس باشد، دستورهای shell در حین برنامهریزی توسط طبقهبند بررسی میشوند | کاوش و بررسی کد بدون اینکه بخواهید Claude تغییری ایجاد کند |
auto |
یک طبقهبند اقداماتی را که نیاز به تأیید دارند بررسی میکند؛ اقداماتی که بهوضوح خارج از محدوده باشند مسدود میشوند و بقیه بدون درخواست تأیید اجرا میشوند | توسعه روزمره با وقفههای کمتر (پیشفرض نشستهای تعاملی از Claude Code 2.1.283 به بعد) |
dontAsk |
فقط اقداماتی را اجرا میکند که نیازی به تأیید ندارند (مانند خواندن فایل در پوشه کاری و دستورهای فقطخواندنی) و اقداماتی که از پیش با قواعد مجاز تأیید شدهاند؛ بقیه بدون پرسش رد میشوند | CI/CD و سایر اجراهای بدون نظارت |
bypassPermissions |
نادیده گرفتن همه درخواستهای اجازه | محیطهای کاملاً ایزوله و مورد اعتماد |
حالت auto و QCode: حالت auto از طریق QCode کار میکند. درخواستهای طبقهبند توسط خود Claude Code ارسال میشوند (مدل پیشفرض
claude-sonnet-5) و در مصرف شما محاسبه میشوند. اگر اعلانی انگلیسی با این مضمون میبینید که «your requests go through … which isn't compatible»، یک نشست تعاملی اولین اقدامی را که نیاز به بررسی دارد تا فشردن Enter نگه میدارد؛ برای رفع آنCLAUDE_CODE_AUTO_MODE_SERVER=0را تنظیم کنید. به دسترسی به قابلیتها مراجعه کنید.
تغییر حالتهای اجازه¶
- برای چرخش میان حالتهای اجازه
Shift+Tabرا فشار دهید؛ از حالت auto چرخه به این ترتیب است: auto → default → acceptEdits → plan - برای ورود به حالت Plan، از حالت دستی (default) دو بار و از حالت auto سه بار
Shift+Tabرا فشار دهید - انتخاب یک حالت هنگام راهاندازی:
claude --permission-mode acceptEdits - انتخاب مستقیم یک حالت از دیالوگ
پیکربندی حالت مجوز پیشفرض¶
در .claude/settings.json (پروژه) یا ~/.claude/settings.json (کاربر) پیکربندی کنید:
{
"permissions": {
"defaultMode": "acceptEdits"
}
}
توجه:
"defaultMode": "auto"فقط از فایل~/.claude/settings.jsonدر سطح کاربر یا تنظیمات مدیریتشده سازمان شما اعمال میشود. در.claude/settings.jsonیا.claude/settings.local.jsonپروژه نادیده گرفته میشود و نشست از پیشفرض داخلی استفاده میکند (نه تنظیم سطح کاربر شما).bypassPermissionsنیز از تنظیمات پروژه اعمال نمیشود. همچنین گزینه--permission-modeبر فایلهای تنظیمات اولویت دارد.
قواعد اجازه: تأیید پیشاپیش دستورها¶
دستورهای مشخصی را از پیش تأیید کنید تا هر بار از شما پرسیده نشود:
{
"permissions": {
"allow": [
"Bash(npm run lint)",
"Bash(npm run test:*)",
"Bash(git status)",
"Bash(git add:*)",
"Bash(git diff:*)"
]
}
}
نحو قواعد اجازه:
Bash(command)— تطابق دقیق دستورBash(prefix:*)— دستورهایی را مطابقت میدهد که با پیشوند دادهشده شروع میشوندRead(file path)— اجازه خواندن یک فایل مشخصWrite(file path)— اجازه نوشتن در یک فایل مشخص
قواعد رد: محافظت از فایلهای حساس¶
از دسترسی یا تغییر فایلهای حساس توسط Claude جلوگیری کنید:
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)",
"Write(./.git/**)",
"Bash(rm -rf:*)"
]
}
}
نحو قواعد رد:
- الگوهای مسیر از نویسههای عام
*(یک سطح) و**(چند سطح) پشتیبانی میکنند - قواعد رد اولویت بالاتری از قواعد اجازه دارند
استفاده همزمان از اجازه و رد¶
{
"permissions": {
"defaultMode": "acceptEdits",
"allow": [
"Bash(npm run *)",
"Bash(git status)",
"Bash(git diff)"
],
"deny": [
"Bash(git push:*)",
"Bash(rm -rf:*)",
"Read(./.env*)"
]
}
}
سلسلهمراتب فایلهای پیکربندی¶
Claude Code پیکربندیهای مجوز را به ترتیب اولویت زیر ادغام میکند:
| اولویت | مکان | دامنه |
|---|---|---|
| بالاترین | .claude/settings.local.json (در Git کامیت نشده) |
بازنویسیهای محلی شخصی |
| میانی | .claude/settings.json (کامیتشده در Git) |
پیکربندی مشترک تیم |
| پایینترین | ~/.claude/settings.json |
پیکربندی سراسری کاربر |
نکات همکاری تیمی:
- قواعد اجازه/رد در سطح تیم را در
.claude/settings.jsonقرار دهید و آن را در Git کامیت کنید - تنظیمات مخصوص شخصی را در
.claude/settings.local.jsonقرار دهید و آن را به.gitignoreاضافه کنید
بهترین شیوهها¶
1. محافظت از اعتبارنامههای حساس
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./credentials/**)",
"Read(./.ssh/**)"
]
}
}
2. پیکربندی پروژه فرانتاند
{
"permissions": {
"defaultMode": "acceptEdits",
"allow": [
"Bash(npm run dev)",
"Bash(npm run build)",
"Bash(npm run test:*)",
"Bash(npm run lint:*)"
]
}
}
3. خودکارسازی CI/CD
از Claude Code 2.1.285 به بعد، claude -p و Agent SDK وقتی هیچ حالت مجوزی تنظیم نشده باشد در حالت auto شروع میشوند، در نشستهایی که نمیتوانند پرچمهای ویژگی را دریافت کنند. اتصال به QCode با ANTHROPIC_AUTH_TOKEN هیچ اعتبارنامهای برای دریافت آنها به Claude Code نمیدهد (همین موضوع برای کانتینرهای CI که در هر اجرا از نو شروع میشوند نیز صادق است)، بنابراین این پیشفرض CI شماست. در CI، حالت را صریحاً تنظیم کنید. توصیه میکنیم dontAsk را همراه با فهرست مجاز به کار ببرید: فقط اقدامهایی که به تأیید نیاز ندارند و ابزارهای فهرستشده اجرا میشوند و هر چیز دیگری رد میشود.
claude -p "Run the tests and fix failures" \
--permission-mode dontAsk \
--allowedTools "Read,Edit,Bash(npm test)"
یا در تنظیمات پروژه:
{
"permissions": {
"defaultMode": "dontAsk",
"allow": ["Read", "Edit", "Bash(npm test)"]
}
}
⚠️ هشدار: حالت
bypassPermissionsهمه بررسیهای امنیتی را نادیده میگیرد. فقط در محیطهای کاملاً ایزوله و قابلاعتماد (مانند یک کانتینر یکبارمصرف) از آن استفاده کنید.
با QCode شروع کنید
یک کلید API برای Claude Code، Codex و بیشتر — بر اساس توکن، قیمت هر مدل در qcode.cc/models