پرش به محتوای اصلی
پرش به محتوای مقاله

درون سازوکار CLAUDE_CONFIG_DIR برای جداسازی اعتبارنامه‌های کاربران

·۸ مرداد ۱۴۰۵۱۱ دقیقه مطالعه۳ بازدید
راهنما
چند حساب Claude Code روی یک دستگاه: راهنمای پیکربندی و جابجایی سریع بین حساب‌های کاربری مختلف در سال ۲۰۲۶
چند حساب Claude Code روی یک دستگاه: راهنمای پیکربندی و جابجایی سریع بین حساب‌های کاربری مختلف در سال ۲۰۲۶
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

کشف و به اشتراک‌گذاری متغیر محیطی CLAUDE_CONFIG_DIR برای ایزوله‌سازی کامل پروفایل‌های کاربر در Claude Code؛ قابلیتی که پیش از این به‌طور رسمی توسط آنتروپیک پشتیبانی نمی‌شد.

تصور کنید در دو ترمینال مختلف، دو حساب مختلف از Claude Code را باز کرده‌اید و هر کدام روی پروژه‌ای متفاوت کار می‌کنند، بدون اینکه یکی باعث خروج دیگری شود. اگر تا امروز هر بار با ورود به حساب دوم، از حساب اول بیرون انداخته می‌شدید، این راهکار دقیقاً برای پایان دادن به این چالش طراحی شده است.

طبق گزارش فنی منتشر شده در ۲۹ ژوئیه ۲۰۲۶ در وب‌سایت dev.to، مشکل اصلی در اینجا سیستم مدیریت هویت آنتروپیک (Anthropic) است. این شرکت توکن‌های OAuth را در یک فایل واحد به نام .credentials.json در پوشه پیش‌فرض ذخیره می‌کند. از آن‌جا که هر کاربر به‌طور پیش‌فرض تنها یک پوشه پیکربندی (در macOS/Linux مسیر ~/.claude و در ویندوز %USERPROFILE%\.claude) دارد، ورود به حساب دوم، توکن حساب اول را بازنویسی می‌کند و باعث قطع اتصال فعال در پنجره‌های دیگر می‌شود.

همان‌طور که در تحلیل قبلی ما درباره‌ی قابلیت‌های شبیه‌ساز Claude Opus 5 اشاره کردیم، بهینه‌سازی گردش‌کار برای استفاده از عامل‌های سطح بالا در محیط‌های حرفه‌ای حیاتی است. بسیاری از کاربران برای مدیریت سهمیه‌های مختلف (Quota) یا جداسازی هویت پروژه‌ها به این قابلیت نیاز دارند. اما یک نکته کلیدی وجود دارد: تاریخچه جلسات بر اساس مسیر پروژه ذخیره می‌شود، نه حساب کاربری. این یعنی اگر از یک حساب خارج شوید و با حساب دیگری در همان پوشه دستور claude --continue را بزنید، دقیقاً از همان‌جایی ادامه می‌دهید که حساب قبلی رها کرده بود؛ زیرا قفل محلی برای تاریخچه بر اساس حساب وجود ندارد.

دو حساب کلود کد روی یک کامپیوتر: راهنمای ۲۰۲۶

پیاده‌سازی ایزولاسیون

برای جداسازی حساب‌ها، باید متغیر CLAUDE_CONFIG_DIR را قبل از اجرای ابزار به یک پوشه جدید ارجاع دهید. بر اساس مستندات فنی، این فرآیند در سه گام ساده انجام می‌شود:

گام اول: ایجاد پوشه
یک پوشه منحصر‌به‌فرد بسازید؛ برای مثال: mkdir -p ~/.claude-work.

گام دوم: یکپارچه‌سازی با شل (Shell)
برای اینکه هر بار متغیر را تایپ نکنید، آن را در قالب یک تابع تعریف کنید. در macOS یا لینوکس، افزودن کد زیر به .zshrc یا .bashrc باعث می‌شود متغیر فقط برای همان فراخوانی اعمال شود:
claude2() { CLAUDE_CONFIG_DIR="$HOME/.claude-work" command claude "$@" }

برای کاربران ویندوز (PowerShell)، به دلیل نبود پیشوند متغیر محیطی در خط فرمان، باید تابع را در $PROFILE تعریف کنند. در این اسکریپت، استفاده از بلوک finally حیاتی است تا حتی در صورت بستن برنامه با Ctrl+C، متغیر محیطی پاک شود و پنجره به طور اتفاقی روی حساب دوم باقی نماند. همچنین استفاده از Remove-Item به این دلیل است که در پاورشل ۵.۱، اختصاص رشته خالی متغیر را حذف نمی‌کند، بلکه آن را «خالی» نگه می‌دارد.

گام سوم: تایید صحت
با دستور claude2 جلسه دوم را شروع کرده و وارد شوید. سپس با دستور md5sum فایل‌های .credentials.json دو پوشه را مقایسه کنید. اگر هش‌ها متفاوت بودند، یعنی ایزولاسیون با موفقیت برقرار شده است. در داخل جلسه، دستور /status تنها راه قابل‌اعتماد برای شناسایی حساب فعال است.

دو حساب کلود کد روی یک کامپیوتر: راهنمای ۲۰۲۶

چالش «وضعیت تهی»

نکته مهم این است که با تغییر مسیر پیکربندی، محیط شما کاملاً نو می‌شود. هر آنچه باعث شخصی‌سازی محیط شما شده است — از جمله پلاگین‌ها، سرورهای پروتکل زمینه مدل (MCP) — شبیه به جابه‌جایی به یک دفتر کار جدید است که میز آن کاملاً خالی است. تمام تنظیمات در پوشه پیکربندی ذخیره می‌شوند، نه در حساب کاربری؛ بنابراین حساب دوم شما هیچ‌کدام از تنظیمات حساب اول را نمی‌بیند.

چند حساب Claude Code روی یک دستگاه (۲۰۲۶)

تفکیک اجزای قابل انتقال

هنگام راه‌اندازی پوشه دوم، باید بدانید چه چیزهایی را نباید کپی کنید:

  • موارد غیرقابل انتقال (کپی نکنید):
    • پلاگین‌ها: مسیرهای نصب در installed_plugins.json به‌صورت مطلق ذخیره شده‌اند و کپی آن‌ها باعث خطا در آدرس‌دهی می‌شود.
    • توکن‌های OAuth: کپی فایل .credentials.json صرفاً باعث کلون کردن حساب می‌شود.
    • پروفایل‌های هویت: شامل userID و machineID در فایل .claude.json است.
  • موارد قابل انتقال (کپی دستی):
    • سرورهای MCP: تنظیمات در .mcp.json.
    • مهارت‌های کاربر: فایل‌های موجود در پوشه skills/.
    • هوک‌ها (Hooks): تعاریف موجود در settings.json.
    • حافظه پروژه و تاریخچه: فایل‌های .jsonl در پوشه projects/.

در یک تست مهاجرتی، حجم بخش‌های قابل انتقال (شامل تنظیمات و حافظه‌ها) تنها ۰.۱۳ مگابایت بود، در حالی که ۳۳۲ مگابایت تاریخچه جلسات و ۸.۵ مگابایت کش پلاگین‌ها به دلیل حجم بالا رها شدند. برای نصب مجدد پلاگین‌ها در حساب دوم، از دستور claude plugin install استفاده کنید.

تله‌ی هوک‌ها (The Hook Trap)

خطرناک‌ترین حالت زمانی رخ می‌دهد که شما تنظیمات را کپی می‌کنید اما اسکریپت‌های هوک شما دارای مسیرهای سخت‌افزاری (Hard-coded) هستند. اگر اسکریپتی مسیری مثل ~/.claude/task_state.json را مستقیماً صدا بزند، هر دو حساب به‌طور مخفیانه روی یک فایل وضعیت می‌نویسند. این تداخل هیچ خطایی نمی‌دهد و باعث می‌شود داده‌های حساب B در جلسه حساب A تزریق شود.

راه حل این است که مسیرها را از متغیر محیطی استخراج کنید:
$configDir = if ($env:CLAUDE_CONFIG_DIR) { $env:CLAUDE_CONFIG_DIR } else { "$env:USERPROFILE\.claude" }

مدیریت سهمیه و حافظه

باید توجه داشت که CLAUDE_CONFIG_DIR فقط اعتبارنامه‌ها را ایزوله می‌کند، نه سهمیه (Quota) را. اگر یک حساب را در دو پوشه مختلف باز کنید، هر دو ترمینال از یک مخزن مشترک مصرف می‌کنند. طبق داده‌های منتشر شده، سهمیه‌های فعلی برای پلن‌های Max ($۲۰۰/ماه) حدود ۹۰۰ پیام در هر پنج ساعت است. همچنین، هر جلسه Claude Code پردازش‌های MCP خود را جداگانه اجرا می‌کند که می‌تواند اثر حافظه (RAM) سیستم را ۲ تا ۳ برابر افزایش دهد.

دو حساب Claude Code روی یک کامپیوتر: راهنمای پیکربندی چند کاربری در سال ۲۰۲۶

تحلیل: موازی‌سازی در برابر جایگزینی

این روش تفاوت میان «جایگزینی متوالی» و «موازی‌سازی واقعی» را روشن می‌کند. در جایگزینی متوالی، شما فقط برای تغییر سهمیه، یک بار خارج و دوباره وارد می‌شوید و چون تاریخچه‌ها مستقل هستند، گفتگو ادامه می‌یابد. اما در موازی‌سازی واقعی، دو جریان کاری مجزا دارید. توصیه می‌شود در حالت موازی، برای هر جلسه از یک git worktree مجزا استفاده کنید تا از تداخل ویرایش‌ها جلوگیری شود.

گام بعدی شما

  • اگر از چندین حساب برای پروژه‌های مختلف استفاده می‌کنید، متغیر CLAUDE_CONFIG_DIR را در فایل پروفایل شل خود تعریف کنید.
  • تمام اسکریپت‌های کمکی و هوک‌های خود را برای حذف مسیرهای سخت‌افزاری ~/.claude بازبینی کنید.
  • از دستور /status برای تایید هویت حساب در هر ترمینال استفاده نمایید.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این تکنیک تجربه توسعه‌دهندگانی را که نیاز به جداسازی محیط‌های کاری یا دور زدن محدودیت‌های سهمیه‌ای دارند، به‌طور کامل تغییر می‌دهد. اعتبار این روش بر پایه تحلیل رفتار فایل‌سیستمی ابزار Claude Code است و یک راهکار عملی برای افزایش بهره‌وری در محیط‌های سازمانی محسوب می‌شود.

تأثیر برای ایران

به‌دلیل محدودیت‌های دسترسی به API و نیاز به حساب‌های تاییدشده، این روش برای توسعه‌دهندگان ایرانی که از حساب‌های اشتراکی یا متعددی برای مدیریت سهمیه‌ها استفاده می‌کنند، بسیار کاربردی است.

·نگاه ما
تحریریه دات‌هوش

این روش اثبات می‌کند که Anthropic در حال حاضر اولویت را بر سادگی تجربه کاربر تک‌حسابی گذاشته و زیرساخت‌های لازم برای «چند-حسابی بودن» (Multi-tenancy) را در سطح کلاینت پیاده نکرده است. تکیه کاربران بر متغیرهای مستندنشده نشان‌دهنده شکاف میان نیاز توسعه‌دهندگان حرفه‌ای و نقشه راه رسمی محصول است. احتمالاً در نسخه‌های آینده شاهد انتقال مدیریت پروفایل از سطح فایل‌سیستم به لایه‌های احقاق هویت ابری خواهیم بود.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.