Cline AI چیست؟ آموزش نصب در VS Code و استفاده امن از Agent کدنویسی
در این راهنمای عملی Cline را در VS Code نصب و راهاندازی میکنید، تفاوت Plan و Act را میآموزید، مجوزها و Checkpointها را امن تنظیم میکنید و یک تغییر واقعی را مرحلهبهمرحله تحویل میدهید.
یک تکمیلکننده کد معمولاً چند خط کنار Cursor پیشنهاد میدهد؛ اما Agent کدنویسی میتواند ساختار پروژه را بررسی کند، چند فایل مرتبط را تغییر دهد، فرمان Test را اجرا کند و از خروجی خطا برای مرحله بعد استفاده کند. این قدرت زمانی مفید است که مرز دسترسی، نقطه تأیید و روش بازگشت از تغییر اشتباه روشن باشد.
Cline یک Agent کدنویسی متنباز برای IDE و Terminal است. در این مقاله روی افزونه VS Code تمرکز میکنیم: نصب، اتصال Provider، استفاده از Plan و Act، بررسی Diff، مدیریت Checkpoint و تعریف Rule پروژه. سناریوی عملی ما افزودن Validation به یک API کوچک است؛ اما Workflow برای بیشتر Stackها یکسان میماند.
Cline AI چیست؟
Cline میتواند فایلهای Workspace را بخواند، تغییر چندفایلی پیشنهاد کند، فرمان Terminal اجرا کند و خطاهای Build یا Linter را ببیند. تجربه VS Code آن در پنل گفتگو ارائه میشود و ویرایشها بهصورت Diff قابل بررسیاند. برخلاف Chat جدا از Repository، Context از پروژه واقعی میآید و کاربر لازم نیست تمام فایلها را در پیام کپی کند.
این دسترسی مسئولیت تازهای ایجاد میکند. بخشی از کد یا Context ممکن است به Provider انتخابی فرستاده شود؛ بنابراین پیش از بازکردن Repository سازمانی، سیاست داده، قرارداد Provider و وجود Secret در Workspace را بررسی کنید. Cline تضمین نمیکند خروجی همیشه درست یا امن باشد؛ Review و Test همچنان وظیفه توسعهدهنده است.
Cline چه کارهایی انجام میدهد؟
- کاوش فایلها و یافتن ارتباط میان بخشهای پروژه
- ساخت یا ویرایش چند فایل همراه با Diff قابل بررسی
- اجرای Build، Test، Linter و فرمانهای توسعه
- جداسازی برنامهریزی و اجرا با Plan و Act
- ثبت Checkpoint برای مقایسه یا بازگردانی فایلها
- پشتیبانی از Providerها و مدلهای گوناگون
- اعمال Ruleهای اختصاصی Repository برای سبک و Workflow تیم
| معیار | تکمیلکننده کد | Cline بهعنوان Agent |
|---|---|---|
| دامنه Context | فایل و Cursor جاری | چند فایل و ساختار Workspace |
| نوع خروجی | پیشنهاد خط یا تابع | Plan، Diff چندفایلی و اجرای فرمان |
| چرخه بازخورد | پذیرش دستی پیشنهاد | خواندن خروجی Build و ادامه اصلاح |
| ریسک | محدود به کد پذیرفتهشده | وابسته به مجوز فایل، Terminal، Browser و MCP |
| روش کنترل | مرور Inline | Approval، Diff، Checkpoint و Test |
برای تکمیل یک شرط ساده، Inline Completion سریعتر است. برای Refactor چندفایلی یا Feature دارای معیار پذیرش روشن، Agent میتواند رفتوبرگشت را کم کند. ابزار را بر اساس اندازه و ریسک کار انتخاب کنید، نه فقط تازگی آن.
پیشنیاز نصب Cline در VS Code
نسخه بهروز VS Code، یک پوشه پروژه و Git را آماده کنید. Checkpoint جای Commit تیمی را نمیگیرد و Git نیز جای Snapshot مرحلهای Agent نیست؛ هر دو لایه ارزش دارند. پیش از شروع Branch جدا بسازید و Baseline تست را ثبت کنید تا شکست قبلی با خروجی Agent مخلوط نشود.
git statusgit switch -c feature/validate-profilenpm testnpm run lintفرمانها را با Script واقعی پروژه جایگزین کنید. اگر Test پیش از ورود Agent شکست میخورد، نتیجه را ثبت کنید. Secretها، فایلهای Environment، Backup و Dump پایگاه داده را نیز از Workspace آموزشی خارج کنید.
نصب افزونه Cline
- در VS Code پنل Extensions را باز کنید.
- عبارت Cline را جستوجو و Publisher افزونه را بررسی کنید.
- افزونه رسمی را نصب و پنل Cline را از Activity Bar باز کنید.
- روش اتصال Provider یا ورود ارائهشده در تنظیمات را انتخاب کنید.
- یک پروژه کمریسک را باز و نخستین Task را در Plan Mode آغاز کنید.
Cline فقط به یک Provider محدود نیست. انتخاب Provider مشخص میکند چه مدلی پاسخ میدهد، داده به کدام سرویس ارسال میشود و هزینه یا Context چگونه محاسبه میشود. قبل از اتصال پروژه سازمانی، شرایط داده و سیاست Provider را با مقررات تیم تطبیق دهید.
مدیریت امن API Key
اگر Provider از API Key استفاده میکند، کلید را در Source، Rule، Prompt، Screenshot یا Repository نگذارید. از روش ذخیرهسازی افزونه و Secret Store سیستم استفاده کنید. Scope و سقف هزینه را محدود کنید و اگر کلید در Log یا Commit دیده شد، آن را فوراً باطل و جایگزین کنید.
مدل محلی میتواند خروج داده را کاهش دهد، ولی بهتنهایی امنیت را تضمین نمیکند. Server محلی نباید بیدلیل روی شبکه عمومی Listen کند. برای شروع میتوانید آموزش نصب امن Ollama در ویندوز را بخوانید.
Plan Mode و Act Mode
در Plan Mode، Cline Repository را بررسی و راهحل را با شما طراحی میکند، اما فایلها را تغییر نمیدهد و فرمان اجرایی نمیزند. این حالت برای شناخت Codebase، یافتن فایلهای اثرپذیر، تعیین Edge Case و توافق بر معیار پذیرش مناسب است.
در Act Mode، Agent برنامه توافقشده را اجرا میکند: فایل میسازد یا ویرایش میکند، فرمان میزند و بر اساس نتیجه پیش میرود. Context هنگام جابهجایی Mode حفظ میشود؛ بنابراین توضیحات را از ابتدا تکرار نمیکنید.
| سناریو | Mode مناسب | دلیل |
|---|---|---|
| شناخت Repository ناآشنا | Plan | بررسی بدون تغییر فایل |
| تصمیم معماری | Plan | مقایسه Trade-off پیش از اجرا |
| رفع Typo روشن | Act | دامنه کوچک و راهحل مشخص |
| افزودن Endpoint چندفایلی | Plan سپس Act | نیاز به قرارداد و Test |
| رفع خطای Build پس از تغییر | Act | چرخه اصلاح مشخص |
Plan خوب باید فایلهای احتمالی، قرارداد ورودی و خروجی، موارد خارج از Scope، Testهای لازم و خطر Compatibility را مشخص کند. اگر فقط میگوید «کد را بهتر میکنم»، پیش از Act سؤال دقیقتر بپرسید.
سناریوی عملی: Validation برای API
فرض کنید API پروفایل کاربر را بهروزرسانی میکند. نام خالی باید رد شود، طول نام محدود باشد، رفتار سایر Fieldها تغییر نکند و Test اضافه شود. Prompt باید Outcome و محدودیت را تعریف کند، نه اینکه همه راهحل را دیکته کند.
در Plan Mode مسیر update profile را پیدا کن.نام خالی یا فقط شامل فاصله باید با 400 رد شود.حداکثر طول نام 80 کاراکتر است.قرارداد سایر فیلدها و Schema دیتابیس تغییر نکند.ابتدا فایلهای اثرپذیر و Testهای لازم را فهرست کن.پیش از Act هیچ فایل یا Dependency را تغییر نده.پس از Plan بررسی کنید Agent مسیر واقعی درخواست و Test Framework پروژه را پیدا کرده باشد. اگر نصب Library تازه پیشنهاد میدهد، بپرسید آیا Validator موجود کافی است. Dependency جدید هزینه نگهداری و سطح حمله را افزایش میدهد.
معیار پذیرش قابل سنجش
- نام خالی و Whitespace با Status مشخص رد شود.
- نام 80 کاراکتری پذیرفته و 81 کاراکتری رد شود.
- پیام خطا ساختار موجود API را حفظ کند.
- Testهای قبلی بدون تغییر غیرضروری سبز بمانند.
- هیچ Migration یا تغییر Configuration ایجاد نشود.
وقتی معیار پذیرش قابل اجراست، Cline میتواند Build و Test را بهعنوان شواهد بیاورد. عبارت مبهم «Validation حرفهای کن» دامنه کار را باز میگذارد و مرور را دشوار میکند.
بررسی Diff پیش از تأیید
هر ویرایش را مانند Pull Request مرور کنید. سبزبودن Syntax کافی نیست. مسیر Error، سازگاری API، Logging حساس، Query اضافه، رفتار Concurrent و پوشش Test را بسنجید.
| بخش Diff | پرسش مرور | نشانه خطر |
|---|---|---|
| Dependency | آیا لازم و معتبر است؟ | Package ناشناخته برای کار ساده |
| Route | آیا Contract قبلی حفظ شده؟ | تغییر پاسخ نامرتبط |
| Validation | Boundaryها پوشش داده شدهاند؟ | فقط Happy Path |
| Log | Token یا PII چاپ میشود؟ | ثبت Body کامل |
| Test | رفتار را میسنجد؟ | Mock زیاد و Assertion ضعیف |
اگر تغییر درست نیست، Reject کنید و دلیل مشخص بدهید؛ مثلاً «Dependency جدید را حذف کن و از Validator موجود استفاده کن». بازخورد دقیق مانع تکرار کل Task میشود.
Checkpoint چگونه کار میکند؟
Cline پس از Tool Useهایی مانند ویرایش یا اجرای فرمان، Snapshot فایلها را میسازد. Snapshotها در Shadow Git جدا از Repository اصلی نگهداری میشوند؛ History اصلی آلوده نمیشود و فایل Trackنشده هم میتواند ثبت شود.
Compare تفاوت مرحله را در Diff Viewer نشان میدهد. Restore Files فایلها را برمیگرداند و گفتگو را حفظ میکند. Restore Task Only پیامهای بعدی را کنار میگذارد ولی فایلها را نگه میدارد. Restore Files & Task هر دو را برمیگرداند.
Checkpoint، Backup دائمی نیست. برای تحویل تیمی همچنان Branch، Commit، Pull Request و Pipeline لازم است. در Workspace چندریشهای طبق مستندات رسمی Checkpoint محدودیت دارد و ممکن است غیرفعال باشد؛ در این حالت بیشتر به Git تکیه کنید.
Auto Approve و اصل حداقل دسترسی
Auto Approve تعیین میکند کدام Toolها بدون سؤال اجرا شوند: خواندن، ویرایش، Terminal، Browser یا MCP. فعالکردن همه دستهها سرعت را بالا میبرد اما مرز کنترل انسانی را حذف میکند.
| دسترسی | پیشفرض پیشنهادی | زمان گسترش |
|---|---|---|
| Read project files | فعال برای پروژه غیرحساس | تحلیل Codebase |
| Read all files | غیرفعال | فقط با مسیر روشن |
| Edit project files | نیازمند تأیید | Branch ایزوله و Task تکراری |
| Edit all files | غیرفعال | تقریباً هیچگاه |
| Execute commands | نیازمند تأیید | Build و Test شناختهشده |
| Browser و MCP | غیرفعال | Tool و مقصد مورد اعتماد |
YOLO Mode همه تأییدها را کنار میگذارد و میتواند ویرایش، فرمان، Browser و MCP را خودکار کند. آن را روی سیستم اصلی، Repository دارای Secret یا محیط متصل به Production فعال نکنید. برای Demo فقط محیط دورریختنی و بدون Credential مناسب است.
تعریف Rule پروژه
Ruleها Context پایدار درباره Convention و Workflow میدهند. فرمان Test، ممنوعیت Migration، سبک Error Handling و فایلهای Generated را در Rule کوتاه بنویسید. Rule نباید Secret داشته باشد.
# Project rules- Inspect existing tests before editing.- Do not add dependencies without approval.- Do not modify database migrations.- Keep API errors backward compatible.- Run npm test and npm run lint.- Never print secrets or full request bodies.- Summarize files and verification evidence.Rule خوب کوتاه، قابل آزمون و خاص Repository است. سیاست امنیتی بحرانی را علاوه بر Rule در CI، Permission، Branch Protection و Review انسانی Enforcement کنید؛ Prompt کنترل امنیتی قطعی نیست.
Workflow پیشنهادی روزانه
- Branch و Baseline سالم بسازید.
- Task را با یک Goal، محدودیت و معیار پذیرش تعریف کنید.
- در Plan Mode فایلها و خطرها را شناسایی کنید.
- Plan و موارد خارج از Scope را اصلاح کنید.
- در Act هر Diff و فرمان را بخوانید.
- Test هدفمند و سپس Suite مرتبط را اجرا کنید.
- Git Diff نهایی را مستقل از خلاصه Agent مرور کنید.
- Commit کوچک بسازید و Pull Request را به Review انسانی بدهید.
برای مرز میان کمک Agent و مسئولیت مهندس، راهنمای وایب کدینگ امن را ببینید. اگر کار شما در Terminal است، آموزش Codex CLI در ویندوز مسیر مکملی است.
خطرهای امنیتی مهم
Prompt Injection از فایل یا وب
متن Issue، README، Comment یا صفحه وب میتواند از Agent بخواهد Secret را بخواند یا فرمان نامرتبط بزند. این متنها دادهاند، نه دستور مورد اعتماد. Task اصلی و Rule باید مرجع باشند و هر Tool Call حساس جداگانه بررسی شود.
انتشار ناخواسته Secret
Agent ممکن است برای Debug فایل Environment، Header یا Log را بخواند و بخشی از آن وارد Context Provider شود. فایل حساس را از Workspace خارج، دسترسی را محدود و Log را Redact کنید. اگر Credential افشا شد، پاککردن پیام کافی نیست؛ آن را Rotate کنید.
فرمان مخرب و Supply Chain
پیش از فرمان، مسیر هدف و Flag را بخوانید. حذف Recursive، نصب Global، Push یا اتصال Production کنترل ویژه میخواهد. نام Package پیشنهادی را در Registry رسمی بررسی کنید؛ خطای املایی کوچک میتواند Typosquatting باشد.
خطاهای رایج
| نشانه | علت | راه اصلاح |
|---|---|---|
| فایل نامرتبط تغییر میکند | Scope مبهم | فایل و خارج از Scope را در Plan مشخص کنید |
| Context سریع مصرف میشود | Task بزرگ | یک Goal در هر Task |
| فرمان متوقف میشود | Approval یا ورودی تعاملی | اثر فرمان را بررسی کنید |
| Checkpoint کند است | Repository بزرگ | فایل Generated را مدیریت کنید |
| پاسخ با Library سازگار نیست | Context قدیمی | Version و مستندات رسمی را بدهید |
| Test سبز ولی Feature خراب است | معیار ناقص | Boundary و Failure واقعی اضافه کنید |
چکلیست پذیرش خروجی
- Diff فقط فایلهای لازم را تغییر داده است.
- Dependency جدید دلیل و منبع معتبر دارد.
- Secret، Token، PII یا Log حساس اضافه نشده است.
- Error و Boundary با Test پوشش داده شدهاند.
- Migration یا تنظیم Production بدون درخواست ایجاد نشده است.
- Build و Test واقعی اجرا شدهاند.
- Test جدید با Failure کنترلشده اعتبارسنجی شده است.
- Git Diff مستقل از خلاصه Agent مرور شده است.
- Commit کوچک و قابل Revert است.
- Reviewer میتواند دلیل تغییر را توضیح دهد.
جمعبندی
Cline فاصله گفتگو و اجرای واقعی در Repository را کم میکند: پروژه را میخواند، Plan میسازد، Diff پیشنهاد میدهد، فرمان اجرا میکند و با Checkpoint بازگشت را ممکن میسازد. همین تواناییها ضرورت کنترل مجوز، حفاظت Secret و Review مستقل را بیشتر میکنند.
شروع مطمئن ساده است: Repository آزمایشی، Branch جدا، Plan Mode، Auto Approve محدود، Rule کوتاه و معیار پذیرش قابل اجرا. پس از هر تغییر، Diff و Test را خودتان بررسی کنید و شواهد را بپذیرید، نه اطمینان لفظی Agent را.
یک Task کوچک و قابل آزمون انتخاب کن، آن را ابتدا در Plan Mode به Cline بده و فقط پس از بررسی فایلهای اثرپذیر وارد Act Mode شو.