رفتن به محتوا

راه‌اندازیِ نشست از لینک

دیپ‌لینک یک URL از نوع claude-cli:// است که Claude Code را در یک پنجره‌ی ترمینالِ تازه باز می‌کند. این URL می‌تواند یک دایرکتوریِ کاری و یک پرامپتِ از پیش‌پرشده را با خودش حمل کند.

این کار به تو اجازه می‌دهد یک نقطه‌ی شروعِ تک‌کلیکی برای یک کار به اشتراک بگذاری: هر کسی که Claude Code را نصب دارد و روی لینک کلیک می‌کند، نشستی را می‌بیند که پرامپتش از پیش تایپ شده است. پرامپت پر می‌شود اما تا وقتی Enter را نزده‌ای، ارسال نمی‌شود.

چون دیپ‌لینک یک URL است، می‌توانی آن را هر جایی که یک لینک می‌تواند برود قرار دهی:

  • مرحله‌ای در یک runbookِ حادثه که مخزنِ سرویسِ آسیب‌دیده را با یک پرامپتِ تشخیصی باز می‌کند
  • یک هشدار یا داشبوردِ مانیتورینگ که به یک پرامپتِ بررسیِ یک متریکِ مشخص لینک می‌شود
  • یک README یا صفحه‌ی ویکی که پروژه را با یک پرامپتِ onboarding باز می‌کند
  • یک اعلانِ شکستِ CI که نامِ jobِ شکست‌خورده را از پیش پر می‌کند

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

پیشوندِ claude-cli:// یک طرحِ URLِ سفارشی است که Claude Code آن را در سیستم‌عاملت ثبت می‌کند، شبیه به اینکه چطور لینک‌های mailto: کلاینتِ ایمیلت را باز می‌کنند. لینک می‌تواند روی یک صفحه‌ی وب، در یک ویکی، در یک پیامِ Slack، یا در هر اپی که لینک‌ها را نمایش می‌دهد زندگی کند. وقتی روی یکی کلیک می‌کنی:

  1. مرورگر یا اپ، URL را به سیستم‌عاملت تحویل می‌دهد.
  2. سیستم‌عامل پیشوندِ claude-cli:// را تشخیص می‌دهد و Claude Code را روی دستگاهت اجرا می‌کند.
  3. یک پنجره‌ی ترمینالِ تازه باز می‌شود که Claude Code در آن در دایرکتوریِ مشخص‌شده‌ی لینک در حال اجراست، و متنِ پرامپتِ لینک از پیش در جعبه‌ی ورودی قرار دارد.
  4. پرامپت را می‌خوانی، اگر خواستی ویرایشش می‌کنی، و Enter را می‌زنی تا ارسال شود.

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

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

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

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

وقتی نشست باز می‌شود، یک خطِ هشدار زیرِ جعبه‌ی ورودی می‌نویسد Prompt from an external link و تا وقتی پرامپت را ارسال یا پاک نکنی نمایان می‌ماند. برای پرامپت‌های بیش از ۱٬۰۰۰ کاراکتر، هشدار شاملِ شمارشِ کاراکترها می‌شود و به تو می‌گوید پیش از زدنِ Enter اسکرول کن و کلِ متن را مرور کن، چون پرامپت‌های طولانی می‌توانند دستورها را از صفحه بیرون برانند. قواعدِ دسترسی، CLAUDE.md، و پرامپت‌های اعتماد برای دایرکتوریِ انتخاب‌شده دقیقاً مثلِ هر نشستِ دیگری اعمال می‌شوند.

هر دیپ‌لینک با claude-cli://open شروع می‌شود، که تنها مسیری است که هندلر می‌پذیرد، و سپس پارامترهای کوئریِ اختیاری می‌آیند. کمینه‌ترین شکل، Claude Code را در دایرکتوریِ خانگی‌ات با یک پرامپتِ خالی باز می‌کند:

claude-cli://open

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

پارامترتوضیح
qمتنی که در جعبه‌ی پرامپت از پیش پر شود. مقدار را URL-encode کن. برای شکستِ خط در پرامپت‌های چندخطی از %0A استفاده کن. حداکثر ۵٬۰۰۰ کاراکتر.
cwdمسیرِ مطلق برای استفاده به‌عنوانِ دایرکتوریِ کاری. مسیرهای شبکه‌ای و UNC رد می‌شوند.
repoیک اسلاگِ GitHub به شکلِ owner/name. Claude Code آن را به یک کلونِ محلی که قبلاً دیده resolve می‌کند و از همان‌جا شروع می‌کند. اگر کلونِ منطبقی نداری، نشست به‌جایش در دایرکتوریِ خانگی‌ات باز می‌شود.

cwd و repo دو راهِ تنظیمِ دایرکتوریِ کاری هستند. اگر هر دو را پاس بدهی، cwd اولویت دارد و repo نادیده گرفته می‌شود، حتی اگر مسیرِ cwd وجود نداشته باشد.

لینکِ زیر به مخزنی به نامِ acme/payments با یک پرامپتِ تشخیصیِ دوخطی اشاره می‌کند. وقتی خودت لینک می‌سازی، acme/payments را با اسلاگِ owner/nameِ مخزنِ خودت جایگزین کن:

claude-cli://open?repo=acme/payments&q=Investigate%20the%20failed%20deploy%20of%20payments-api.%0ACheck%20recent%20commits%20to%20main%20and%20the%20last%20successful%20build.

کلیک روی آن، یک پنجره‌ی ترمینالِ تازه باز می‌کند، Claude Code را در کلونِ محلیِ تو از acme/payments اجرا می‌کند، و جعبه‌ی پرامپت را با متنِ رمزگشایی‌شده پر می‌کند:

Investigate the failed deploy of payments-api.
Check recent commits to main and the last successful build.

می‌توانی پرامپت را پیش از زدنِ Enter برای ارسال ویرایش کنی. اگر کلونِ محلی‌ای از مخزن نداری، نشست به‌جایش در دایرکتوریِ خانگی‌ات باز می‌شود. برای اینکه ببینی وقتی چند کلون یا worktree داری مسیرِ محلی چطور انتخاب می‌شود، بین cwd و repo انتخاب کن را ببین.

از cwd وقتی استفاده کن که همه‌ی کسانی که روی لینک کلیک می‌کنند پروژه را در همان مسیرِ مطلق دارند، مثلِ یک devcontainer یا image VMِ استانداردشده.

از repo وقتی استفاده کن که لینک به اشتراک گذاشته می‌شود و هر کس در محلِ متفاوتی کلون می‌کند. Claude Code اسلاگ را به این صورت به یک مسیرِ محلی resolve می‌کند:

  • هر بار که claude را در یک مخزنِ Git اجرا می‌کنی، مسیرِ فایل‌سیستمیِ آن دایرکتوری در برابرِ اسلاگِ owner/nameِ GitHubِ مخزن ثبت می‌شود.
  • وقتی یک دیپ‌لینک می‌رسد، repo هر کدام از مسیرهای منطبق را که اخیراً بیشتر از همه استفاده کرده‌ای باز می‌کند. چند کلون و worktree جداگانه ردیابی می‌شوند، پس همانی را که آخرین بار در آن کار کرده‌ای انتخاب می‌کند.
  • این جست‌وجو فقط مسیرهایی را پیدا می‌کند که قبلاً دستِ‌کم یک بار Claude Code را در آن‌ها اجرا کرده‌ای.
  • لینک تغییری در اینکه کدام شاخه checkout شده ایجاد نمی‌کند. نشست در هر وضعیتی که آن دایرکتوری اکنون در آن است باز می‌شود.

سرتیترِ خوش‌آمدگویی نشان می‌دهد کدام مسیر را انتخاب کرده تا بتوانی تأیید کنی کلونِ درست باز شده است.

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

یک لینک را در یک runbook جاسازی کن

Section titled “یک لینک را در یک runbook جاسازی کن”

یک دیپ‌لینک در یک runbook به هر کسی که در حالِ triage است یک راهِ تک‌کلیکی می‌دهد تا بررسی را در مخزنِ درست با یک پرامپتِ آماده شروع کند. پلتفرمی که runbook را رندر می‌کند باید طرح‌های URLِ سفارشی را مجاز کند. Markdownِ رندرشده‌ی GitHub، claude-cli:// را مجاز نمی‌کند، پس یک دیپ‌لینک در یک README، issue، یا ویکیِ GitHub فقط برچسبش را بدونِ هیچ لینکِ قابلِ‌کلیکی نشان می‌دهد. برای یک راه‌حل، یادداشتِ عیب‌یابی را ببین.

پرامپت بخشی از URL است و باید URL-encode شود. برای تولیدِ مقدارِ encode‌شده، متنِ پرامپتت را از طریقِ encodeURIComponent در کنسولِ مرورگر یا هر URL encoderی عبور بده.

نمونه‌ی زیر یک نقطه‌ی ورودِ بررسی را به یک runbookِ حادثه برای سرویسی به نامِ web-gateway اضافه می‌کند:

## High 5xx rate on web-gateway
1. Acknowledge the page in PagerDuty.
2. [Open Claude Code in the gateway repo](claude-cli://open?repo=acme/web-gateway&q=5xx%20rate%20is%20elevated%20on%20web-gateway.%20Check%20recent%20deploys%2C%20error%20logs%20from%20the%20last%2030%20minutes%2C%20and%20open%20incidents%20in%20Linear.)
3. Post initial findings in #incident.

برای استفاده از این در runbookِ خودت، acme/web-gateway را با اسلاگِ مخزنِ سرویست جایگزین کن. این به مهندس‌هایی که Claude Code را نصب دارند و یک کلونِ محلی از آن مخزن دارند اجازه می‌دهد روی مرحله‌ی ۲ کلیک کنند و بررسی را با پرامپتِ آماده‌ی ارسال شروع کنند.

به‌جای کلیک، می‌توانی یک دیپ‌لینک را از یک اسکریپتِ شل، alias، یا اتوماسیون هم باز کنی. دستورِ بازکردنِ URLِ سیستم‌عاملت را با لینک به‌عنوانِ آرگومان فراخوانی کن.

دستورِ داخلیِ open، URL را به هندلرِ ثبت‌شده‌ی claude-cli:// پاس می‌دهد:

Terminal window
open "claude-cli://open?repo=acme/payments&q=review%20open%20PRs"

ثبت و پلتفرم‌های پشتیبانی‌شده

Section titled “ثبت و پلتفرم‌های پشتیبانی‌شده”

Claude Code هندلرِ claude-cli:// را اولین باری که یک نشستِ تعاملی را روی macOS، Linux و Windows اجرا می‌کنی در سیستم‌عاملت ثبت می‌کند. لازم نیست یک دستورِ نصبِ جداگانه اجرا کنی. ثبت فقط در محل‌های سطحِ کاربر نوشته می‌شود:

پلتفرممحلِ هندلر
macOS~/Applications/Claude Code URL Handler.app
Linuxclaude-code-url-handler.desktop زیرِ $XDG_DATA_HOME/applications، با پیش‌فرضِ ~/.local/share/applications
WindowsHKEY_CURRENT_USER\Software\Classes\claude-cli

هندلر، Claude Code را در یک شبیه‌سازِ ترمینالِ تشخیص‌داده‌شده اجرا می‌کند. روی macOS، Claude Code ترمینالِ آخرین نشستِ تعاملی‌ات را به یاد می‌سپارد و دوباره از آن استفاده می‌کند، با پشتیبانی از iTerm2، Ghostty، kitty، Alacritty، WezTerm و Terminal.app. روی Linux به متغیرِ محیطیِ $TERMINAL، سپس x-terminal-emulator، و سپس فهرستی از شبیه‌سازهای رایج احترام می‌گذارد. روی Windows، Windows Terminal را ترجیح می‌دهد، سپس PowerShell، و سپس cmd.exe.

برای جلوگیریِ کاملِ از ثبت، disableDeepLinkRegistration را در settings.json روی "disable" تنظیم کن. برای اجباری‌کردنِ این در سراسرِ یک سازمان طوری که کاربران نتوانند دوباره فعالش کنند، آن را به‌جایش در تنظیماتِ مدیریت‌شده تنظیم کن.

به‌جای ترمینال، یک تبِ VS Code باز کن

Section titled “به‌جای ترمینال، یک تبِ VS Code باز کن”

افزونه‌ی VS Code هندلرِ خودش را در vscode://anthropic.claude-code/open ثبت می‌کند که به‌جای یک پنجره‌ی ترمینال، یک تبِ ویرایشگرِ Claude Code باز می‌کند. برای پارامترهای آن URL، راه‌اندازیِ یک تبِ VS Code از ابزارهای دیگر را ببین.

کلیک روی لینک کاری نمی‌کند

Section titled “کلیک روی لینک کاری نمی‌کند”

احتمالاً هندلر هنوز ثبت نشده است. یک بار یک نشستِ تعاملیِ claude را روی آن دستگاه اجرا کن، از آن خارج شو، و دوباره لینک را امتحان کن. اگر روی Linux بدونِ محیطِ دسکتاپ هستی، ممکن است xdg-open چیزی برای dispatch‌کردن نداشته باشد.

لینک به‌جای قابلِ‌کلیک‌بودن، به‌صورتِ متنِ ساده رندر می‌شود

Section titled “لینک به‌جای قابلِ‌کلیک‌بودن، به‌صورتِ متنِ ساده رندر می‌شود”

بعضی رندرکننده‌های Markdown فقط لینک‌های http و https را مجاز می‌کنند و سایرِ طرح‌های URL را حذف می‌کنند. GitHub این کار را در READMEها، issueها، pull requestها و ویکی‌ها انجام می‌دهد: [label](claude-cli://...) فقط به‌صورتِ label رندر می‌شود، بدونِ هیچ لینکی و با URLِ حذف‌شده. روی این پلتفرم‌ها، دیپ‌لینک را در یک بلاکِ کد بگذار تا خواننده‌ها بتوانند URL را ببینند و در نوارِ آدرسِ مرورگرشان paste کنند.

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

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

پارامترِ repo فقط به کلون‌هایی resolve می‌شود که Claude Code قبلاً دیده است. یک بار claude را داخلِ کلون اجرا کن تا مسیرش ثبت شود، یا لینک را به استفاده از cwd با یک مسیرِ مطلق تغییر بده.

لینک ترمینالِ اشتباهی را باز می‌کند

Section titled “لینک ترمینالِ اشتباهی را باز می‌کند”

روی macOS، یک بار claude را در ترمینالِ موردِ علاقه‌ات اجرا کن تا دیپ‌لینکِ بعدی از آن استفاده کند. روی Linux، متغیرِ محیطیِ $TERMINAL را روی نامِ دستورِ شبیه‌سازِ موردِ علاقه‌ات تنظیم کن. روی Windows، ترتیب ثابت است: اگر می‌خواهی لینک‌ها به‌جای پنجره‌ی PowerShell یا cmd.exe در Windows Terminal باز شوند، آن را نصب کن.

این صفحه‌ها راه‌های مرتبطِ راه‌اندازی یا گسترشِ نشست‌های Claude Code را پوشش می‌دهند:

  • Skills: یک پرامپتِ طولانیِ runbook را به‌عنوانِ یک /skill در مخزن ذخیره کن تا پارامترِ qِ دیپ‌لینک فقط لازم باشد آن را نام ببرد
  • حالتِ غیرتعاملی: Claude را از یک اسکریپت اجرا کن و خروجی را بدونِ بازکردنِ یک ترمینال ضبط کن