گسترش با قابلیتها
افزودن Skills، اتصالهای MCP، و دستورهای سفارشی
Claude Code یک دستیار ایجنتیک است که در ترمینال تو اجرا میشود. با اینکه در کدنویسی میدرخشد، میتواند در هر کاری که از خط فرمان برمیآید کمک کند: نوشتن مستندات، اجرای buildها، جستوجوی فایلها، تحقیق دربارهی موضوعها، و بیشتر.
این راهنما معماریِ هسته، قابلیتهای توکار، و نکتههایی برای کارِ مؤثر را پوشش میدهد. برای راهنماهای گامبهگام، ورکفلوهای رایج را ببین. برای قابلیتهای توسعهپذیری مثل skills، MCP و hooks، توسعهی Claude Code را ببین.
وقتی به Claude یک کار میدهی، آن را در سه فاز پیش میبرد: جمعآوری کانتکست، انجام اقدام، و راستیآزمایی نتایج. این فازها در هم میآمیزند. Claude در سرتاسر کار از ابزارها استفاده میکند، چه برای جستوجوی فایلها برای فهمیدن کدت، چه برای ویرایش برای ایجاد تغییرات، چه برای اجرای تستها برای بررسی کارش.
حلقه با چیزی که میخواهی تطبیق مییابد. یک پرسش دربارهی کدبیست ممکن است فقط به جمعآوری کانتکست نیاز داشته باشد. یک رفع باگ بارها در هر سه فاز چرخ میزند. یک refactor ممکن است راستیآزمایی گستردهای را دربر بگیرد. Claude بر اساس آنچه از گام قبلی آموخته تصمیم میگیرد هر گام به چه چیزی نیاز دارد، دهها اقدام را به هم زنجیر میکند و در طول راه مسیر را اصلاح میکند.
تو هم بخشی از این حلقهای. میتوانی در هر نقطه قطع کنی تا Claude را به سمتی دیگر هدایت کنی، کانتکست بیشتری بدهی، یا از او بخواهی رویکرد دیگری را امتحان کند. Claude مستقل کار میکند ولی به ورودیِ تو پاسخگو میماند.
حلقهی ایجنتیک با دو مؤلفه نیرو میگیرد: مدلها که استدلال میکنند و ابزارها که اقدام میکنند. Claude Code بهعنوان agentic harness پیرامون Claude عمل میکند: ابزارها، مدیریت کانتکست، و محیط اجرایی را فراهم میکند که یک مدل زبانی را به یک ایجنت کدنویسیِ کارآمد تبدیل میکند.
Claude Code از مدلهای Claude برای فهمیدن کدت و استدلال دربارهی کارها استفاده میکند. Claude میتواند کد را در هر زبانی بخواند، بفهمد اجزا چطور به هم وصل میشوند، و تشخیص دهد چه چیزی باید تغییر کند تا به هدفت برسد. برای کارهای پیچیده، کار را به گامها میشکند، اجرایشان میکند، و بر اساس آنچه میآموزد تنظیمشان میکند.
چند مدل با مصالحههای متفاوت در دسترساند. Sonnet بیشترِ کارهای کدنویسی را خوب از پس برمیآید. Opus استدلال قویتری برای تصمیمهای معماریِ پیچیده فراهم میکند. با /model در حین یک نشست جابهجا شو یا با claude --model <name> شروع کن.
وقتی این راهنما میگوید «Claude انتخاب میکند» یا «Claude تصمیم میگیرد»، این مدل است که استدلال میکند.
ابزارها همان چیزیاند که Claude Code را ایجنتیک میکنند. بدون ابزار، Claude فقط میتواند با متن پاسخ دهد. با ابزار، Claude میتواند اقدام کند: کدت را بخواند، فایلها را ویرایش کند، دستورها را اجرا کند، وب را جستوجو کند، و با سرویسهای بیرونی تعامل کند. هر استفاده از یک ابزار اطلاعاتی برمیگرداند که به حلقه بازخورد میدهد و تصمیم بعدیِ Claude را شکل میدهد.
ابزارهای توکار عموماً در پنج دسته قرار میگیرند که هرکدام نوع متفاوتی از عاملیت را نمایندگی میکنند.
| دسته | Claude چه میتواند بکند |
|---|---|
| عملیات فایل | خواندن فایلها، ویرایش کد، ساختن فایلهای جدید، تغییر نام و سازماندهی مجدد |
| جستوجو | یافتن فایلها با الگو، جستوجوی محتوا با regex، کاوش کدبیسها |
| اجرا | اجرای دستورهای shell، راهاندازی سرورها، اجرای تستها، استفاده از git |
| هوش کد | دیدن خطاها و هشدارهای تایپ پس از ویرایشها، پرش به تعاریف، یافتن ارجاعها (به پلاگینهای هوش کد نیاز دارد) |
| وب | جستوجوی وب، واکشی مستندات، جستوجوی پیامهای خطا |
اینها قابلیتهای اصلیاند. Claude ابزارهایی هم برای spawnکردن سابایجنتها، پرسیدن سؤال از تو، و دیگر کارهای هماهنگسازی دارد. برای فهرست کامل ابزارهای در دسترس Claude را ببین.
Claude بر اساس پرامپت تو و آنچه در طول راه میآموزد انتخاب میکند کدام ابزارها را استفاده کند. وقتی میگویی «تستهای شکستخورده را درست کن»، Claude ممکن است:
هر استفاده از یک ابزار اطلاعات تازهای به Claude میدهد که گام بعدی را شکل میدهد. این حلقهی ایجنتیک در عمل است.
گسترش قابلیتهای پایه: ابزارهای توکار شالودهاند. میتوانی آنچه را Claude میداند با skills گسترش دهی، با MCP به سرویسهای بیرونی وصل شوی، با hooks ورکفلوها را خودکار کنی، و کارها را به سابایجنتها بسپاری. این افزونهها لایهای روی حلقهی ایجنتیکِ هسته میسازند. برای راهنمایی دربارهی انتخاب افزونهی درست برای نیازهایت، توسعهی Claude Code را ببین.
این راهنما روی ترمینال تمرکز دارد. Claude Code در VS Code، JetBrains IDEs، و محیطهای دیگر هم اجرا میشود.
وقتی claude را در یک دایرکتوری اجرا میکنی، Claude Code به اینها دسترسی پیدا میکند:
چون Claude کلِ پروژهات را میبیند، میتواند در سرتاسرش کار کند. وقتی از Claude میخواهی «باگ احراز هویت را درست کن»، فایلهای مرتبط را جستوجو میکند، چند فایل را برای فهمیدن کانتکست میخواند، ویرایشهای هماهنگ در سرتاسرشان انجام میدهد، تستها را برای راستیآزمایی رفع اجرا میکند، و اگر بخواهی تغییرات را کامیت میکند. این با دستیارهای کدِ درونخطی که فقط فایل فعلی را میبینند فرق دارد.
حلقهی ایجنتیک، ابزارها، و قابلیتهایی که بالا توصیف شد، هرجا از Claude Code استفاده کنی یکساناند. آنچه تغییر میکند این است که کد کجا اجرا میشود و تو چطور با آن تعامل میکنی.
Claude Code در سه محیط اجرا میشود که هرکدام مصالحههای متفاوتی برای محل اجرای کدت دارند.
| محیط | کد کجا اجرا میشود | مورد استفاده |
|---|---|---|
| محلی | دستگاه تو | پیشفرض. دسترسی کامل به فایلها، ابزارها و محیطت |
| ابری | VMهای مدیریتشده توسط Anthropic | سپردن کارها، کار روی مخزنهایی که محلی نداری |
| Remote Control | دستگاه تو، کنترلشده از یک مرورگر | استفاده از رابط وب در حالی که همهچیز محلی میماند |
میتوانی از طریق ترمینال، اپلیکیشن دسکتاپ، افزونههای IDE، claude.ai/code، Remote Control، Slack، و پایپلاینهای CI/CD به Claude Code دسترسی پیدا کنی. رابط تعیین میکند چطور Claude را میبینی و با آن تعامل میکنی، ولی حلقهی ایجنتیکِ زیربنایی یکسان است. برای فهرست کامل استفاده از Claude Code در همهجا را ببین.
Claude Code گفتوگوی تو را در حین کار بهصورت محلی ذخیره میکند. هر پیام، استفاده از ابزار، و نتیجه در یک فایل JSONL متنیِ ساده زیر ~/.claude/projects/ نوشته میشود، که بازگشت به عقب، ازسرگیری و forkکردن نشستها را ممکن میکند. پیش از اینکه Claude تغییرات کد ایجاد کند، از فایلهای متأثر هم اسنپشات میگیرد تا در صورت نیاز بتوانی برگردانی. برای مسیرها، نگهداری، و نحوهی پاککردن این داده، دادهی اپلیکیشن در ~/.claude را ببین.
نشستها مستقلاند. هر نشست جدید با یک کانتکست ویندوی تازه شروع میشود، بدون تاریخچهی گفتوگو از نشستهای قبلی. Claude میتواند آموختهها را در سراسر نشستها با حافظهی خودکار حفظ کند، و تو میتوانی دستورالعملهای ماندگارِ خودت را در CLAUDE.md اضافه کنی.
هر گفتوگوی Claude Code یک نشست است که به دایرکتوری فعلیات گره خورده. انتخابگرِ /resume بهصورت پیشفرض نشستهای worktree فعلی را نشان میدهد، با میانبرهای صفحهکلید برای گسترش فهرست به worktreeها یا پروژههای دیگر. برای فهرست کامل میانبرهای انتخابگر و نحوهی کار حلِ نام، مدیریت نشستها را ببین.
Claude فایلهای شاخهی فعلیات را میبیند. وقتی شاخه عوض میکنی، Claude فایلهای شاخهی جدید را میبیند، ولی تاریخچهی گفتوگویت همان میماند. Claude حتی پس از جابهجایی بهخاطر دارد چه چیزی را بحث کردهاید.
چون نشستها به دایرکتوریها گره خوردهاند، میتوانی با استفاده از git worktrees نشستهای Claude را بهصورت موازی اجرا کنی، که دایرکتوریهای جداگانهای برای شاخههای مجزا میسازند.
ازسرگیری یک نشست با claude --continue یا claude --resume آن را زیر همان session ID دوباره باز میکند و پیامهای جدید را به گفتوگوی موجود میافزاید. forkکردن با --fork-session یا /branch تاریخچه را در یک session ID جدید کپی میکند و نسخهی اصلی را دستنخورده میگذارد.
برای پرچمهای ازسرگیری، انتخابگر /resume، نامگذاری، و اینکه وقتی همان نشست در دو ترمینال باز است چه میشود، مدیریت نشستها را ببین.
کانتکست ویندوی Claude تاریخچهی گفتوگو، محتوای فایلها، خروجی دستورها، CLAUDE.md، حافظهی خودکار، skillهای بارگذاریشده، و دستورالعملهای سیستمی را نگه میدارد. در حین کار، کانتکست پر میشود. Claude بهصورت خودکار فشردهسازی میکند، ولی دستورالعملهای اوایل گفتوگو میتوانند گم شوند. قواعد ماندگار را در CLAUDE.md بگذار، و /context را اجرا کن تا ببینی چه چیزی فضا اشغال میکند.
برای یک راهنمای تعاملی از آنچه و زمانی که بارگذاری میشود، کاوش کانتکست ویندو را ببین.
Claude Code در حین نزدیکشدن به حد، کانتکست را بهصورت خودکار مدیریت میکند. اول خروجیهای قدیمیترِ ابزارها را پاک میکند، بعد در صورت نیاز گفتوگو را خلاصه میکند. درخواستهایت و قطعهکدهای کلیدی حفظ میشوند؛ دستورالعملهای تفصیلیِ اوایل گفتوگو ممکن است گم شوند. قواعد ماندگار را در CLAUDE.md بگذار، نه اینکه به تاریخچهی گفتوگو تکیه کنی.
برای کنترل آنچه در حین فشردهسازی حفظ میشود، یک بخش «Compact Instructions» به CLAUDE.md اضافه کن یا /compact را با یک تمرکز اجرا کن (مثل /compact focus on the API changes).
اگر یک فایل یا خروجیِ ابزارِ واحد آنقدر بزرگ باشد که کانتکست بلافاصله پس از هر خلاصه دوباره پر شود، Claude Code پس از چند تلاش از فشردهسازیِ خودکار دست میکشد و بهجای حلقهزدن، یک خطا نشان میدهد. برای گامهای بازیابی، فشردهسازی خودکار با خطای thrashing متوقف میشود را ببین.
/context را اجرا کن تا ببینی چه چیزی فضا اشغال میکند. تعاریف ابزارهای MCP بهصورت پیشفرض موکول میشوند و در صورت نیاز از طریق tool search بارگذاری میشوند، پس تا وقتی Claude از یک ابزار خاص استفاده کند فقط نام ابزارها کانتکست مصرف میکنند. /mcp را اجرا کن تا هزینهی هر سرور را بررسی کنی.
فراتر از فشردهسازی، میتوانی از قابلیتهای دیگر برای کنترل آنچه در کانتکست بارگذاری میشود استفاده کنی.
Skills در صورت نیاز بارگذاری میشوند. Claude توصیفهای skillها را در آغاز نشست میبیند، ولی محتوای کامل فقط هنگام استفاده از یک skill بارگذاری میشود. برای skillهایی که دستی فرامیخوانی، disable-model-invocation: true را تنظیم کن تا توصیفها تا وقتی به آنها نیاز نداری از کانتکست بیرون بمانند. برای skillهایی که خودت ننوشتهای، از skillOverrides استفاده کن تا همین کار را از تنظیمات انجام دهی.
سابایجنتها کانتکست تازهی خودشان را میگیرند، کاملاً جدا از گفتوگوی اصلیات. کارشان کانتکستت را متورم نمیکند. وقتی تمام شد، یک خلاصه برمیگردانند. همین جداسازی است که باعث میشود سابایجنتها در نشستهای طولانی کمک کنند.
برای اینکه هر قابلیت چه هزینهای دارد هزینههای کانتکست را ببین، و برای نکتههایی دربارهی مدیریت کانتکست کاهش مصرف توکن را ببین.
Claude دو سازوکار ایمنی دارد: checkpoints به تو اجازه میدهند تغییرات فایل را واگرد (undo) کنی، و دسترسیها کنترل میکنند Claude بدون پرسیدن چه میتواند بکند.
هر ویرایش فایل برگشتپذیر است. پیش از اینکه Claude هر فایلی را ویرایش کند، از محتوای فعلی اسنپشات میگیرد. اگر چیزی خراب شد، دو بار Esc را فشار بده تا به یک حالت قبلی برگردی، یا از Claude بخواه واگرد کند.
checkpointها محلی به نشستتاند، جدا از git. فقط تغییرات فایل را پوشش میدهند. اقدامهایی که روی سیستمهای راهدور اثر میگذارند (دیتابیسها، APIها، استقرارها) را نمیتوان checkpoint کرد، و به همین دلیل Claude پیش از اجرای دستورهایی با اثرات جانبیِ بیرونی میپرسد.
Shift+Tab را فشار بده تا میان حالتهای دسترسی چرخ بزنی:
mkdir و mv را بدون پرسیدن اجرا میکند، ولی برای دستورهای دیگر همچنان میپرسدمیتوانی دستورهای خاصی را هم در .claude/settings.json مجاز کنی تا Claude هر بار نپرسد. این برای دستورهای مورد اعتماد مثل npm test یا git status مفید است. تنظیمات میتوانند از سیاستهای سطح-سازمان تا ترجیحات شخصی دامنهبندی شوند. برای جزئیات دسترسیها را ببین.
این نکتهها کمکت میکنند نتایج بهتری از Claude Code بگیری.
Claude Code میتواند به تو یاد بدهد چطور از آن استفاده کنی. سؤالهایی مثل «چطور hooks را راهاندازی کنم؟» یا «بهترین راه ساختاردهی به CLAUDE.mdام چیست؟» بپرس و Claude توضیح میدهد.
دستورهای توکار هم تو را در راهاندازی راهنمایی میکنند:
/init تو را در ساختن یک CLAUDE.md برای پروژهات راهنمایی میکند/agents کمکت میکند سابایجنتهای سفارشی را پیکربندی کنی/doctor مشکلات رایج نصبت را تشخیص میدهدClaude Code گفتوگومحور است. به پرامپتهای بینقص نیاز نداری. با آنچه میخواهی شروع کن، بعد پالایش کن:
Fix the login bug[Claude بررسی میکند، چیزی را امتحان میکند]
That's not quite right. The issue is in the session handling.[Claude رویکرد را تنظیم میکند]
وقتی تلاش اول درست نباشد، از نو شروع نمیکنی. تکرار میکنی.
میتوانی Claude را در هر نقطه بدون انتظار برای تمامشدن نوبت یا شروع از نو، دوباره هدایت کنی:
Esc را فشار بده تا Claude بلافاصله متوقف شود. فراخوانی ابزارِ در حال اجرا لغو میشود و Claude منتظر دستور بعدیات میماند.Enter را بزن تا بدون متوقفکردن ابزارِ در حال اجرا ارسالش کنی. Claude بهمحض تکمیل اقدام فعلی آن را میخواند و پیش از تصمیمگیری برای گام بعدی تنظیم میکند.هرچه پرامپت اولیهات دقیقتر باشد، به اصلاحهای کمتری نیاز خواهی داشت. به فایلهای خاص ارجاع بده، محدودیتها را ذکر کن، و به الگوهای نمونه اشاره کن.
The checkout flow is broken for users with expired cards.Check src/payments/ for the issue, especially token refresh.Write a failing test first, then fix it.پرامپتهای مبهم کار میکنند، ولی زمان بیشتری صرف هدایت خواهی کرد. پرامپتهای دقیق مثل آن بالا اغلب در همان تلاش اول موفق میشوند.
Claude وقتی بتواند کار خودش را بررسی کند بهتر عمل میکند. موارد تست را بگنجان، اسکرینشاتهای UI مورد انتظار را بچسبان، یا خروجیِ مورد نظرت را تعریف کن.
Implement validateEmail. Test cases: 'user@example.com' → true,'invalid' → false, 'user@.com' → false. Run the tests after.برای کار بصری، یک اسکرینشات از طراحی بچسبان و از Claude بخواه پیادهسازیاش را با آن مقایسه کند.
برای مسائل پیچیده، تحقیق را از کدنویسی جدا کن. از plan mode (دو بار Shift+Tab) استفاده کن تا اول کدبیس را تحلیل کنی:
Read src/auth/ and understand how we handle sessions.Then create a plan for adding OAuth support.طرح را بررسی کن، از طریق گفتوگو پالایشش کن، بعد بگذار Claude پیادهسازی کند. این رویکرد دومرحلهای نتایج بهتری از پریدن مستقیم به کد میدهد.
به سپردن کار به یک همکار کارآمد فکر کن. کانتکست و جهت بده، بعد به Claude اعتماد کن که جزئیات را پیدا کند:
The checkout flow is broken for users with expired cards.The relevant code is in src/payments/. Can you investigate and fix it?لازم نیست مشخص کنی کدام فایلها را بخواند یا چه دستورهایی را اجرا کند. Claude خودش آن را پیدا میکند.
گسترش با قابلیتها
افزودن Skills، اتصالهای MCP، و دستورهای سفارشی
ورکفلوهای رایج
راهنماهای گامبهگام برای کارهای معمول