رفتن به محتوا

شروع کار با Claude Code on the web

Claude Code on the web به‌جای دستگاهِ تو روی زیرساختِ ابریِ مدیریت‌شده‌ی Anthropic اجرا می‌شود. کارها را از claude.ai/code در مرورگرت یا در اپلیکیشنِ موبایلِ Claude ارسال کن.

برای شروع به یک مخزنِ GitHub نیاز داری. Claude آن را در یک ماشینِ مجازیِ ایزوله clone می‌کند، تغییرها را اعمال می‌کند، و یک شاخه برایت push می‌کند تا بازبینی کنی. نشست‌ها بین دستگاه‌ها پایدار می‌مانند، پس کاری که روی لپ‌تاپت شروع کرده‌ای بعداً از روی موبایلت آماده‌ی بازبینی است.

Claude Code on the web برای این موارد خوب کار می‌کند:

  • کارهای موازی: چند کارِ مستقل را هم‌زمان اجرا کن، هرکدام در نشست و شاخه‌ی خودش، بدونِ مدیریتِ چند worktree
  • مخزن‌هایی که محلی نداری: Claude مخزن را هر نشست از نو clone می‌کند، پس لازم نیست check out کرده باشی‌اش
  • کارهایی که نیازِ هدایتِ مکرر ندارند: یک کارِ خوش‌تعریف ارسال کن، کارِ دیگری انجام بده، و وقتی Claude تمام کرد نتیجه را بازبینی کن
  • پرسش و کاوشِ کد: یک کدبیس را بفهم یا ردِ پیاده‌سازیِ یک قابلیت را بزن بدونِ یک check outِ محلی

برای کاری که به پیکربندی، ابزارها یا محیطِ محلی‌ات نیاز دارد، اجرای محلیِ Claude Code یا استفاده از Remote Control انتخابِ بهتری است.

نشست‌ها چطور اجرا می‌شوند

Section titled “نشست‌ها چطور اجرا می‌شوند”

وقتی یک کار ارسال می‌کنی:

  1. Clone و آماده‌سازی: مخزنت به یک VM مدیریت‌شده‌ی Anthropic کلون می‌شود، و اگر اسکریپتِ راه‌اندازی‌ات پیکربندی شده باشد اجرا می‌شود.
  2. پیکربندیِ شبکه: دسترسیِ اینترنت بر اساسِ سطحِ دسترسیِ محیطت تنظیم می‌شود.
  3. کار: Claude کد را تحلیل می‌کند، تغییر می‌دهد، تست‌ها را اجرا می‌کند، و کارش را بررسی می‌کند. می‌توانی در سراسرِ کار تماشا و هدایت کنی، یا کنار بروی و وقتی تمام شد برگردی.
  4. Push شاخه: وقتی Claude به یک نقطه‌ی توقف می‌رسد، شاخه‌اش را به GitHub push می‌کند. تو diff را بازبینی می‌کنی، نظرهای درون‌خطی می‌گذاری، یک PR می‌سازی، یا یک پیامِ دیگر می‌فرستی تا ادامه دهد.

نشست با push‌شدنِ شاخه بسته نمی‌شود. ساختِ PR و ویرایش‌های بعدی همه در همان مکالمه اتفاق می‌افتند.

مقایسه‌ی شیوه‌های اجرای Claude Code

Section titled “مقایسه‌ی شیوه‌های اجرای Claude Code”

Claude Code همه‌جا یکسان رفتار می‌کند. آنچه تغییر می‌کند این است که کد کجا اجرا می‌شود و آیا پیکربندیِ محلی‌ات در دسترس است یا نه. اپلیکیشنِ Desktop هم نشست‌های محلی و هم ابری را ارائه می‌دهد، پس پاسخ‌هایش در جدولِ زیر بسته به انتخابِ تو فرق می‌کند:

روی وبRemote ControlTerminal CLIاپلیکیشن Desktop
کد اجرا می‌شود رویVM ابریِ Anthropicدستگاهِ تودستگاهِ تودستگاهِ تو یا VM ابری
چت می‌کنی ازclaude.ai یا اپ موبایلclaude.ai یا اپ موبایلترمینالترابطِ کاربریِ Desktop
از پیکربندیِ محلی‌ات استفاده می‌کندنه، فقط مخزنبلهبلهبرای محلی بله، برای ابری نه
به GitHub نیاز داردبله، یا یک مخزنِ محلی را bundle کن با --remoteنهنهفقط برای نشست‌های ابری
اگر قطع شوی به اجرا ادامه می‌دهدبلهتا وقتی ترمینال باز بماندنهبسته به نوعِ نشست
حالت‌های دسترسیAccept edits، Plan، AutoAsk، Auto accept edits، Planهمه‌ی حالت‌هابسته به نوعِ نشست
دسترسیِ شبکهبرای هر محیط قابل‌پیکربندیشبکه‌ی دستگاهِ توشبکه‌ی دستگاهِ توبسته به نوعِ نشست

برای راه‌اندازیِ این‌ها، مستنداتِ شروعِ سریعِ ترمینال، اپلیکیشن Desktop یا Remote Control را ببین.

اتصالِ GitHub و ساختِ یک محیط

Section titled “اتصالِ GitHub و ساختِ یک محیط”

راه‌اندازی یک فرایندِ یک‌باره است. اگر از قبل از GitHub CLI استفاده می‌کنی، می‌توانی این کار را از ترمینالت انجام بدهی به‌جای مرورگر.

به claude.ai/code برو

به claude.ai/code برو و با حسابِ Anthropicت وارد شو.

نصبِ Claude GitHub App

پس از ورود، claude.ai/code از تو می‌خواهد GitHub را وصل کنی. درخواست را دنبال کن تا Claude GitHub App را نصب کنی و به آن دسترسی به مخزن‌هایت بدهی. نشست‌های ابری با مخزن‌های موجودِ GitHub کار می‌کنند، پس برای شروعِ یک پروژه‌ی جدید، اول یک مخزنِ خالی روی GitHub بساز.

ساختِ محیطت

پس از اتصالِ GitHub، از تو خواسته می‌شود یک محیطِ ابری بسازی. محیط کنترل می‌کند که Claude حین نشست‌ها چه دسترسیِ شبکه‌ای دارد و وقتی یک نشستِ جدید ساخته می‌شود چه چیزی اجرا می‌شود. برای دیدنِ آنچه بدونِ هیچ پیکربندی‌ای در دسترس است، ابزارهای نصب‌شده را ببین.

این فرم این فیلدها را دارد:

  • Name: یک برچسبِ نمایشی. وقتی چند محیط برای پروژه‌ها یا سطوحِ دسترسیِ مختلف داری مفید است.
  • Network access: کنترل می‌کند که نشست به چه چیزی در اینترنت دسترسی دارد. پیش‌فرض، Trusted، اتصال به رجیستری‌های رایجِ بسته مثلِ npm، PyPI و RubyGems را اجازه می‌دهد درحالی‌که دسترسیِ عمومی به اینترنت را مسدود می‌کند.
  • Environment variables: متغیرهای اختیاری که در هر نشست در دسترس‌اند، با فرمتِ .env. مقادیر را داخلِ گیومه نگذار، چون گیومه‌ها به‌عنوان بخشی از مقدار ذخیره می‌شوند. این‌ها برای هرکسی که می‌تواند این محیط را ویرایش کند قابل‌دیدن‌اند.
  • Setup script: یک اسکریپتِ Bash اختیاری که پیش از راه‌اندازیِ Claude Code اجرا می‌شود. از آن برای نصبِ ابزارهای سیستمی‌ای که VM ابری ندارد استفاده کن، مثلِ apt install -y gh. نتیجه cache می‌شود، پس اسکریپت در هر نشست دوباره اجرا نمی‌شود. برای مثال‌ها و نکاتِ عیب‌یابی، اسکریپت‌های راه‌اندازی را ببین.

برای پروژه‌ی اول، پیش‌فرض‌ها را همان‌طور بگذار و Create environment را بزن. می‌توانی بعداً ویرایشش کنی یا محیط‌های بیشتری بسازی برای پروژه‌های مختلف.

اگر از قبل از GitHub CLI (gh) استفاده می‌کنی، می‌توانی Claude Code on the web را بدونِ بازکردنِ مرورگر راه بیندازی. این به Claude Code CLI نیاز دارد. /web-setup توکنِ محلیِ gh تو را می‌خواند، آن را به حسابِ Claude تو پیوند می‌دهد، و اگر محیطِ ابری نداشته باشی یک محیطِ پیش‌فرض می‌سازد.

احراز هویت با GitHub CLI

در شِلت، اگر هنوز نکرده‌ای GitHub CLI را احراز هویت کن:

Terminal window
gh auth login

ورود به Claude

در Claude Code CLI، برای ورود با حسابِ claude.ai خود /login را اجرا کن. اگر از قبل وارد شده‌ای از این گام بگذر.

اجرای /web-setup

در Claude Code CLI، این را اجرا کن:

/web-setup

این توکنِ gh تو را با حسابِ Claude تو همگام می‌کند. اگر هنوز محیطِ ابری نداری، /web-setup یکی با دسترسیِ شبکه‌ی Trusted و بدونِ اسکریپتِ راه‌اندازی می‌سازد. می‌توانی بعداً محیط را ویرایش کنی یا متغیر اضافه کنی. وقتی /web-setup تمام شد، می‌توانی نشست‌های ابری را از ترمینالت با --remote شروع کنی یا با /schedule کارهای تکرارشونده راه بیندازی.

با GitHubِ وصل‌شده و محیطِ ساخته‌شده، آماده‌ی ارسالِ کارها هستی.

انتخابِ یک مخزن و شاخه

از claude.ai/code یا تبِ Code در اپلیکیشنِ موبایلِ Claude، روی انتخابگرِ مخزن زیرِ باکسِ ورودی کلیک کن و یک مخزن برای کارِ Claude انتخاب کن. هر مخزن یک انتخابگرِ شاخه نشان می‌دهد. آن را تغییر بده تا Claude را به‌جای شاخه‌ی پیش‌فرض از یک شاخه‌ی feature شروع کنی. می‌توانی چند مخزن اضافه کنی تا در یک نشست روی همه‌شان کار کنی.

انتخابِ یک حالتِ دسترسی

منوی کشوییِ حالت کنارِ ورودی به‌طور پیش‌فرض روی Accept edits است، که در آن Claude تغییرها را اعمال و یک شاخه را بدونِ توقف برای تأیید push می‌کند. اگر می‌خواهی Claude یک رویکرد پیشنهاد بدهد و پیش از ویرایشِ فایل‌ها منتظرِ چراغ‌سبزِ تو بماند، به Plan mode برو. نشست‌های ابری دسترسی‌های Ask یا Bypass را ارائه نمی‌دهند. برای فهرستِ کامل، حالت‌های دسترسی را ببین.

توصیفِ کار و ارسال

توصیفی از آنچه می‌خواهی تایپ کن و Enter بزن. دقیق باش:

  • نامِ فایل یا تابع را بگو: «Add a README with setup instructions» یا «Fix the failing auth test in tests/test_auth.py» بهتر از «fix tests» است
  • اگر خروجیِ خطا داری، آن را paste کن
  • رفتارِ موردِانتظار را توصیف کن، نه فقط نشانه را

Claude مخزن‌ها را clone می‌کند، اگر اسکریپتِ راه‌اندازی‌ات پیکربندی شده باشد اجرایش می‌کند، و شروع به کار می‌کند. هر کار نشست و شاخه‌ی خودش را می‌گیرد، پس لازم نیست منتظرِ پایانِ یکی بمانی تا دیگری را شروع کنی.

می‌توانی پرامپت، مخزن‌ها و محیطِ یک نشستِ جدید را با افزودنِ پارامترهای query به URL آدرسِ claude.ai/code پیش‌پُر کنی. از این برای ساختِ یکپارچه‌سازی‌هایی مثلِ یک دکمه در issue trackerت استفاده کن که Claude Code را با توصیفِ issue به‌عنوانِ پرامپت باز می‌کند.

پارامترتوضیح
promptمتنِ پرامپت برای پیش‌پُرکردن در باکسِ ورودی. نام‌مستعارِ q هم پذیرفته می‌شود.
prompt_urlURLی که متنِ پرامپت از آن گرفته می‌شود، برای پرامپت‌هایی که برای جاسازی در یک query string خیلی بلندند. این URL باید درخواست‌های cross-origin را اجازه بدهد. وقتی prompt هم تنظیم شده باشد نادیده گرفته می‌شود.
repositoriesفهرستِ ویرگول‌جداشده‌ی اسلاگ‌های owner/repo برای پیش‌انتخاب. نام‌مستعارِ repo هم پذیرفته می‌شود.
environmentنام یا شناسه‌ی محیط برای پیش‌انتخاب.

هر مقدار را URL-encode کن. مثالِ زیر فرم را با یک پرامپت و یک مخزنِ از‌پیش‌انتخاب‌شده باز می‌کند:

https://claude.ai/code?prompt=Fix%20the%20login%20bug&repositories=acme/webapp

وقتی Claude تمام کرد، تغییرها را بازبینی کن، روی خطوطِ مشخص بازخورد بگذار، و ادامه بده تا diff درست شود.

بازکردنِ نمای diff

یک نشانگرِ diff خطوطِ افزوده و حذف‌شده در سراسرِ نشست را نشان می‌دهد، مثلاً +42 -18. آن را انتخاب کن تا نمای diff باز شود، با فهرستِ فایل‌ها در چپ و تغییرها در راست.

گذاشتنِ نظرهای درون‌خطی

هر خطی را در diff انتخاب کن، بازخوردت را تایپ کن، و Enter بزن. نظرها صف می‌بندند تا پیامِ بعدی‌ات را بفرستی، بعد همراهِ آن بسته می‌شوند. Claude «در src/auth.ts:47، خطا را اینجا catch نکن» را در کنارِ دستورِ اصلی‌ات می‌بیند، پس لازم نیست توصیف کنی مشکل کجاست.

ساختِ یک pull request

وقتی diff درست به نظر رسید، در بالای نمای diff گزینه‌ی Create PR را انتخاب کن. می‌توانی آن را به‌صورتِ یک PR کامل، یک draft، یا با پرش به صفحه‌ی composeِ GitHub با یک عنوان و توصیفِ تولیدشده باز کنی.

ادامه‌ی تکرار پس از PR

نشست پس از ساختِ PR زنده می‌ماند. خروجیِ شکستِ CI یا نظرهای بازبین را در چت paste کن و از Claude بخواه به آن‌ها رسیدگی کند. برای اینکه Claude به‌صورتِ خودکار PR را پایش کند، رفعِ خودکارِ pull requestها را ببین.

پس از اتصالِ GitHub هیچ مخزنی ظاهر نمی‌شود

Section titled “پس از اتصالِ GitHub هیچ مخزنی ظاهر نمی‌شود”

یک نشستِ ابری می‌تواند از هر مخزنی که حسابِ GitHubِ وصل‌شده می‌بیند استفاده کند، صرف‌نظر از اینکه Claude GitHub App روی کدام مخزن‌ها نصب است. اگر مخزنی غایب است، تأیید کن که حسابِ GitHubِ وصل‌شده روی GitHub به آن دسترسی دارد. اگر برای یک مخزن رفعِ خودکار هم می‌خواهی، App را روی آن نصب کن: در github.com، Settings ← Applications ← Claude ← Configure را باز کن و تأیید کن که مخزن زیرِ Repository access فهرست شده است. مخزن‌های خصوصی به همان مجوزِ مخزن‌های عمومی نیاز دارند.

صفحه فقط یک دکمه‌ی ورودِ GitHub نشان می‌دهد

Section titled “صفحه فقط یک دکمه‌ی ورودِ GitHub نشان می‌دهد”

نشست‌های ابری به یک حسابِ GitHubِ وصل‌شده نیاز دارند. از طریقِ جریانِ مرورگرِ بالا وصل شو، یا اگر از GitHub CLI استفاده می‌کنی /web-setup را از ترمینالت اجرا کن. اگر ترجیح می‌دهی اصلاً GitHub را وصل نکنی، Remote Control را ببین تا Claude Code را روی دستگاهِ خودت اجرا کنی و از وب پایشش کنی.

«Not available for the selected organization»

Section titled “«Not available for the selected organization»”

سازمان‌های Enterprise ممکن است نیاز داشته باشند یک ادمین Claude Code on the web را فعال کند. با تیمِ حسابِ Anthropicت تماس بگیر.

/web-setup پیامِ «Unknown command» می‌دهد

Section titled “/web-setup پیامِ «Unknown command» می‌دهد”

/web-setup داخلِ Claude Code CLI اجرا می‌شود، نه شِلت. اول claude را راه بینداز، بعد در پرامپت /web-setup را تایپ کن.

اگر آن را داخلِ Claude Code تایپ کردی و باز هم خطا می‌بینی، CLI تو قدیمی‌تر از v2.1.80 است یا به‌جای یک اشتراکِ claude.ai با یک کلیدِ API یا ارائه‌دهنده‌ی شخصِ ثالث احراز هویت کرده‌ای. claude update را اجرا کن، بعد /login تا با حسابِ claude.ai خود وارد شوی.

«Could not create a cloud environment» یا «No cloud environment available» هنگامِ استفاده از --remote یا ultraplan

Section titled “«Could not create a cloud environment» یا «No cloud environment available» هنگامِ استفاده از --remote یا ultraplan”

قابلیت‌های نشستِ راه‌دور اگر محیطِ ابری نداشته باشی به‌صورتِ خودکار یکی می‌سازند. اگر «Could not create a cloud environment» می‌بینی، ساختِ خودکار شکست خورده است. اگر «No cloud environment available» می‌بینی، CLI تو از ساختِ خودکار قدیمی‌تر است. در هر صورت، /web-setup را در Claude Code CLI اجرا کن تا یکی را دستی بسازی، یا به claude.ai/code برو و گامِ Create your environment بالا را دنبال کن.

اسکریپتِ راه‌اندازی شکست خورد

Section titled “اسکریپتِ راه‌اندازی شکست خورد”

اسکریپتِ راه‌اندازی با وضعیتِ ناصفر خارج شد، که شروعِ نشست را مسدود می‌کند. علت‌های رایج:

  • یک نصبِ بسته شکست خورد چون رجیستری در سطحِ دسترسیِ شبکه‌ی تو نیست. Trusted بیشترِ package managerها را پوشش می‌دهد؛ None همه را مسدود می‌کند.
  • اسکریپت به فایل یا مسیری ارجاع می‌دهد که در یک cloneِ تازه وجود ندارد.
  • دستوری که محلی کار می‌کند روی Ubuntu به فراخوانیِ متفاوتی نیاز دارد.

برای عیب‌یابی، set -x را به بالای اسکریپت اضافه کن تا ببینی کدام دستور شکست خورده است. برای دستورهای غیرحیاتی، || true را به انتها اضافه کن تا شروعِ نشست را مسدود نکنند.

نشست‌های جدید هنگامِ راه‌اندازی هنگ می‌کنند یا تایم‌اوت می‌شوند

Section titled “نشست‌های جدید هنگامِ راه‌اندازی هنگ می‌کنند یا تایم‌اوت می‌شوند”

اگر نشست‌های جدید روی گامِ اسکریپتِ راه‌اندازی گیر می‌کنند یا پیش از پایانِ اسکریپت با یک خطای عمومیِ container شکست می‌خورند، اسکریپت احتمالاً از بودجه‌ی زمانیِ تقریباً پنج‌دقیقه‌ایِ ساختِ environment cache فراتر می‌رود. گام‌های سنگین مثلِ کشیدنِ ایمیج‌های بزرگِ Docker، همگام‌سازیِ کاملِ درختِ وابستگی‌ها، یا دانلودِ وزن‌های مدل اغلب کل را از حد فراتر می‌برند، به‌ویژه وقتی پشتِ‌سرِ‌هم اجرا می‌شوند.

برای رفعِ این، اسکریپت را طوری کوتاه کن که مطمئناً در کمتر از پنج دقیقه تمام شود:

  • نصب‌های مستقل را به‌موازات با & و یک wait نهایی اجرا کن، به‌جای اجرای پشتِ‌سرِ‌هم.
  • بزرگ‌ترین دانلودها را از اسکریپتِ راه‌اندازی به یک SessionStart hook منتقل کن که آن‌ها را در پس‌زمینه راه می‌اندازد، تا نشست همان‌جا که آن‌ها تمام می‌شوند قابلِ‌استفاده شود.
  • sleepهای طولانیِ retry را از اسکریپتِ راه‌اندازی حذف کن، چون یک حلقه‌ی retryِ گیرکرده به‌حسابِ بودجه گذاشته می‌شود.

نشست پس از بستنِ تب همچنان اجرا می‌شود

Section titled “نشست پس از بستنِ تب همچنان اجرا می‌شود”

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

حالا که می‌توانی کار ارسال و بازبینی کنی، این صفحات آنچه را که در ادامه می‌آید پوشش می‌دهند: شروعِ نشست‌های ابری از ترمینالت، زمان‌بندیِ کارهای تکرارشونده، و دادنِ دستورالعمل‌های ثابت به Claude.

  • استفاده از Claude Code on the web: مرجعِ کامل، شاملِ teleport‌کردنِ نشست‌ها به ترمینالت، اسکریپت‌های راه‌اندازی، متغیرهای محیطی و پیکربندیِ شبکه
  • Routines: خودکارسازیِ کار روی یک زمان‌بندی، با یک فراخوانیِ API، یا در پاسخ به رویدادهای GitHub
  • CLAUDE.md: دادنِ دستورالعمل‌ها و کانتکستِ پایدار به Claude که در شروعِ هر نشست بارگذاری می‌شوند
  • اپلیکیشنِ موبایلِ Claude را برای iOS یا Android نصب کن تا نشست‌ها را از موبایلت پایش کنی. از Claude Code CLI، /mobile یک QR code نشان می‌دهد.