استخدام Remote Control مع ccam
تُرجمت هذه الصفحة آليًا من الإنجليزية. التصحيحات مرحب بها. عدّل هذه الصفحة على GitHub
يشغّل ccam work rc ميزة Remote Control في Claude Code بالحساب work، فتتحكم في الجلسات على هذا الحاسوب من claude.ai/code أو من تطبيق Claude على الهاتف. وهو يعمل مثل claude rc مع فرق واحد: إذا كان الحساب يشارك خوادم MCP، يسألك ccam مرة واحدة هل ينسخها إلى ملف .claude.json الخاص بالحساب، لأن جلسات Remote Control لا تقرأ الخوادم من أي مكان آخر.
التشغيل
ccam work rc # Remote Control as the account work
ccam 2 rc # the account with number 2 (see ccam list)
ccam work remote-control # the long name of the same command
ccam work rc --name laptop # options after rc go to Remote Control
ccam work rc --spawn worktree # each new session in its own git worktree
ccam --dry-run work rc # print the command instead of running itيعمل الأمر المختصر بالطريقة نفسها: ccwork rc هو ccam work rc. شغّل الأمر في المجلد الذي تريد العمل فيه، ثم افتح claude.ai/code أو تطبيق Claude بعد تسجيل الدخول بحساب Claude نفسه الذي يستخدمه work.
الخيارات
يلتقي هنا نوعان من الخيارات: خيارات ccam نفسه، التي توضع قبل اسم الحساب أو تكون في إعدادات ccam، وخيارات Remote Control، التي توضع بعد rc وتصل إلى Claude Code دون تغيير.
خيارات ccam وإعداداته
| الخيار أو الإعداد | ما يفعله | القيمة الافتراضية |
|---|---|---|
--dry-run (قبل الحساب) |
يطبع البيئة والأمر، وإشعار MCP إن وُجد. لا يسأل ولا ينسخ | معطّل |
Copy them into .claude.json (a backup is kept)? [y/N] |
يُطرح عندما يشارك الحساب خوادم MCP ولا يحتوي ملف .claude.json الخاص به على القائمة الحالية للمجموعة. y ينسخها، وN أو Enter يبدأ بدونها |
N |
mcp_strategy = "sync" في ~/.config/ccam/config.toml |
ينسخ خوادم المجموعة إلى .claude.json قبل كل تشغيل، سواء أكان Remote Control أم لا، فلا يُطرح أي سؤال أبدًا |
"flag" |
ccam share work --mcp off |
يوقف مشاركة خوادم MCP مع الحساب؛ فتبدأ Remote Control بخوادم الحساب نفسه فقط ولا يُطرح أي سؤال | مفعّل |
خيارات Remote Control
كل ما يأتي بعد rc يخص Claude Code. هذه هي خيارات claude remote-control في Claude Code 2.1.304؛ ويطبع ccam work rc --help القائمة الخاصة بإصدارك.
| الخيار | ما يفعله |
|---|---|
--name <name> |
اسم الجلسة كما يظهر في claude.ai/code |
--remote-control-session-name-prefix <prefix> |
بادئة لأسماء الجلسات المولَّدة (الافتراضي: اسم المضيف) |
-c، --continue |
يعيد الاتصال بالجلسة التي سجّلتها Remote Control أخيرًا لهذا المجلد، خلال نحو 4 ساعات |
--session-id <id> |
يعيد الاتصال بجلسة محددة |
--permission-mode <mode> |
وضع الأذونات للجلسات الجديدة: acceptEdits أو auto أو bypassPermissions أو default أو dontAsk أو plan |
--spawn <mode> |
same-dir (الافتراضي)، أو worktree (شجرة عمل git لكل جلسة)، أو session (جلسة واحدة، ويخرج عند انتهائها) |
--capacity <N> |
أقصى عدد من الجلسات في وقت واحد في الوضعين same-dir وworktree (الافتراضي 32) |
--[no-]create-session-in-dir |
ينشئ جلسة أولى في المجلد الحالي عند البدء (مفعّل افتراضيًا) |
--[no-]chrome |
Claude in Chrome للجلسات الجديدة (معطّل افتراضيًا) |
-d، --debug، --debug-file <path>، -v، --verbose |
مخرجات التصحيح والمخرجات المفصّلة |
ضع rc مباشرة بعد اسم الحساب. يعدّ ccam أول وسيط لا يبدأ بـ - أمرًا لـ Claude Code، ففي ccam work rc --name laptop يرى rc، أما في ccam work --model opus rc فيرى opus.
ما يفعله ccam
يسلك التشغيل المسار المعتاد (تشغيل Claude Code) مع تغيير واحد في خطوة MCP:
يجد ccam الحساب، ويفحص روابط المشاركة الخاصة به، ويحدد
claude، كما في أي تشغيل.يرى أن الأمر هو
rcأوremote-controlفلا يضيف--mcp-config.إذا كان الحساب يشارك خوادم MCP، يقارن ملف
mcp.jsonالخاص بالمجموعة معsync-stampفي~/.local/state/ccam/mcp/work/. وعندما يحتوي.claude.jsonبالفعل على الخوادم الحالية، أو لا تكون لدى المجموعة أي خوادم، ينتقل مباشرة إلى الخطوة 6.وإلا يسمّي الخوادم التي ستفتقدها الجلسات:
$ ccam work rc ccam: Remote Control sessions only get MCP servers stored in account work's .claude.json, not the shared MCP servers (ctx, fs). Copy them into .claude.json (a backup is kept)? [y/N]عند
yيحفظ نسخة احتياطية من.claude.json، ويأخذ قفل Claude Code نفسه، ويضيف خوادم المجموعة إلىmcpServersمع الإبقاء على خوادم الحساب الأخرى. وعندN، أو دون طرفية، أو بينما الحساب يعمل، لا يغيّر شيئًا ويخبرك بذلك:Starting without them. To copy them before every launch instead, set mcp_strategy = "sync" in ~/.config/ccam/config.tomlيسجّل الجلسة، ويعيّن
CLAUDE_CONFIG_DIRإلى مجلد الحساب، ويستبدل نفسه بـclaude rcعبرexec.
بعد ذلك تظل Remote Control تعمل بوصفها خادمًا. وكل جلسة تبدؤها لك هي عملية فرعية من تلك العملية، فتعمل بالحساب work: بتسجيل دخول work وإعداداته وسجل محادثاته، وتُحتسب من حد استخدام work. وما دام الخادم يعمل، يعدّ ccam الحساب قيد التشغيل.
يُظهر التشغيل التجريبي الفرق. التشغيل العادي يحمل خوادم المجموعة بوصفها وسيطًا، أما Remote Control فلا:
$ ccam --dry-run work
CLAUDE_CONFIG_DIR=/home/me/.local/share/ccam/profiles/work /home/me/.local/bin/claude --mcp-config=/home/me/.local/share/ccam/groups/default/mcp.json
$ ccam --dry-run work rc
ccam: Remote Control sessions only get MCP servers stored in account work's .claude.json, not the shared MCP servers (ctx, fs).
Starting without them. To copy them before every launch instead, set mcp_strategy = "sync" in ~/.config/ccam/config.toml
CLAUDE_CONFIG_DIR=/home/me/.local/share/ccam/profiles/work /home/me/.local/bin/claude rcلماذا يعمل بهذه الطريقة
لا تأخذ Remote Control الخيار --mcp-config. في عمليات التشغيل العادية يسلّم ccam خوادم المجموعة إلى Claude Code بالشكل --mcp-config=<path> ولا يكتب أبدًا في ملفات Claude Code. يرفض claude remote-control هذا الخيار قبل اسم أمره ولا يقبل أيًّا منه بعده، لذلك كان ccam work rc يفشل قبل ccam 0.6.0 مع كل حساب يشارك خوادم MCP. والآن يحذف ccam هذا الخيار.
لا تقرأ جلساتها الخوادم إلا من .claude.json. الجلسات التي تبدؤها Remote Control لا ترث الخيارات من سطر الأوامر. والمكان الوحيد الذي تجد فيه خوادم MCP الخاصة بالمستخدم هو ملف .claude.json الخاص بالحساب. ويحتوي هذا الملف أيضًا على تفاصيل تسجيل دخول الحساب وحالة كل مجلد، لذلك لا يستطيع ccam ربطه بنسخة مشتركة كما يفعل مع settings.json. ونسخ الخوادم إليه هو الطريقة الوحيدة لإعطاء الجلسات القائمة المشتركة.
يسأل ccam قبل الكتابة. مع استراتيجية الخيار الافتراضية، يتعهد ccam بترك .claude.json دون تغيير. وRemote Control هي الحالة الوحيدة التي يضطر فيها إلى الكتابة هناك، لذلك يسأل أولًا، ويحتفظ بنسخة احتياطية، ولا يمس شيئًا سوى mcpServers.
لا يكتب بينما الحساب يعمل. يعيد Claude Code كتابة .claude.json في أثناء الجلسة، والتغيير الذي يأتي من الخارج سيضيع أو يُكتب فوقه. لهذا يتخطى ccam النسخ عندما تعمل أي جلسة للحساب، بما في ذلك خادم Remote Control آخر.
يسأل مرة واحدة لكل تغيير. بعد النسخ، يحتفظ sync-stamp بوقت تعديل ملف mcp.json الخاص بالمجموعة. ولا يسأل ccam مرة أخرى إلا عندما يتغير ذلك الملف، مثلًا بعد ccam mcp add. وإذا أجبت N، فلا توجد نسخة بعد، لذلك يسأل عند كل تشغيل لـ Remote Control.
يُبقي ccam mcp النسخ محدّثة. يتقدم المدخل الموجود في .claude.json على --mcp-config عند تعارض الأسماء، فالنسخة القديمة ستخفي تعريفًا أحدث في عمليات التشغيل العادية أيضًا. لذلك تحدّث الأوامر ccam mcp add وadd-json وremove وimport النسخ في كل حساب لا يعمل:
$ ccam mcp add ctx --url https://mcp.context7.com/mcp
✓ ctx added in group default — applies from the next launch
✓ Updated the copy in account work's .claude.json (made for Remote Control)دون طرفية يكون الجواب لا. كثيرًا ما تعمل Remote Control من سكربت أو خدمة أو nohup، حيث لا يوجد من يجيب. فيبدأ ccam حينها دون الخوادم بدلًا من الانتظار.
المشكلات وحلولها
خوادم MCP المشتركة مفقودة في جلسات Remote Control
كانت الإجابة عن السؤال N، أو لم تكن هناك طرفية، أو كان الحساب يعمل. أوقف Remote Control، وأغلق جلسات الحساب الأخرى، وشغّل ccam work rc مرة أخرى في طرفية؛ وأجب y. ولكي لا تُسأل أبدًا، عيّن mcp_strategy = "sync" في ~/.config/ccam/config.toml. والخوادم الموجودة في جلسة لا تتغير ما دامت تعمل، لذلك ابدأ جلسة جديدة بعد النسخ.
"Account work is running, so its .claude.json is left alone"
ما زالت جلسة لـ work مفتوحة: ccam work عادي، أو أمر مختصر، أو خادم Remote Control آخر. اخرج منها وشغّل ccam work rc مرة أخرى. ولا تُحتسب الجلسات التي يشغّلها حساب آخر.
يسأل ccam في كل مرة
لم تنسخ الخوادم بعد. أجب y مرة واحدة، أو عيّن mcp_strategy = "sync". وإذا كنت لا تريد الخوادم في Remote Control أبدًا، فأوقف مشاركة MCP مع الحساب: ccam share work --mcp off.
يفشل ccam work rc فورًا مع خطأ يتعلق بـ --mcp-config
إصدار ccam لديك أقدم من 0.6.0 ويمرّر --mcp-config إلى Remote Control. شغّل ccam update. أما الخطأ نفسه مع إصدار حديث من ccam فيعني أن خيارًا له قيمة جاء قبل rc، كما في ccam work --model opus rc، فعدّ ccam القيمة opus هي الأمر؛ ضع rc مباشرة بعد اسم الحساب.
التغيير الذي أُجري باستخدام ccam mcp لا يصل إلى Remote Control
لا يحدّث ccam mcp add وremove النسخ إلا في الحسابات التي لا تعمل، ويخبرانك بذلك: Note: account work is running, so the copy in its .claude.json stays as it was until its next Remote Control launch. أوقف Remote Control وشغّلها مرة أخرى؛ فيرى ccam أن mcp.json تغيّر ويسأل مجددًا.
استبدل النسخ خادمًا خاصًا بي
إذا كان للحساب خادم خاص يحمل اسم خادم من المجموعة نفسه، فقد استبدله النسخ. يوجد ملف .claude.json السابق في ~/.local/state/ccam/mcp/work/backups/، الذي يحتفظ بأحدث خمس نسخ. ولتحتفظ بنسختك لكل الحسابات، انقلها إلى المجموعة باستخدام ccam mcp import work <server> --force قبل تشغيل Remote Control التالي.
أريد إزالة الخوادم المنسوخة
يزيل ccam mcp remove <server> الخادم من المجموعة ومن كل نسخة. وللعودة إلى الحالة التي سبقت النسخ، استعد أحدث نسخة احتياطية من ~/.local/state/ccam/mcp/work/backups/ بينما لا تعمل أي جلسة للحساب.
تسأل Remote Control هل تثق بالمجلد، أو تخرج دون طرفية
تُخزَّن الثقة بالمجلدات لكل حساب في .claude.json، فالمجلد الذي وثقت به بالحساب personal جديد على work. شغّل ccam work مرة واحدة في ذلك المجلد ووافق، ثم ابدأ Remote Control هناك.
"You must be logged in with a Claude account that has a subscription"
تحتاج Remote Control إلى تسجيل دخول باشتراك Claude. تحقق من البريد الإلكتروني للحساب في ccam list، وسجّل الدخول مرة أخرى باستخدام ccam login work إن لزم الأمر.
لا تظهر الجلسة على الهاتف
تطبيق Claude أو claude.ai/code مسجَّل الدخول بحساب Claude مختلف. قارنه بالبريد الإلكتروني الذي يعرضه ccam list للحساب work.
يحذّر ccam من أن نسخة أخرى من Claude Code تشارك سجل المحادثات في هذا المجلد
يعمل حساب آخر من مجموعة السجل نفسها في المجلد نفسه. والجلسات التي تكمل المحادثة نفسها من الحسابين قد تخلط السجل. أجب y فقط إذا كانا سيعملان على محادثات مختلفة، أو ابدأ Remote Control في مجلد آخر.