المدونة

كيفية التحكم في Claude Code من هاتفك عبر Telegram في 2026

Markdown

خطوة بخطوة: أنشئ بوتًا على Telegram، وثبّت إضافة Claude Code Channels، وأمّنها بقائمة سماح، وشغّلها على مدار الساعة طوال أيام الأسبوع على VPS. دليل جاهز للتنفيذ مع الأوامر.

قراءة المقال كاملًا

أهم النقاط

Claude Code Channels هي الإضافة الرسمية من Anthropic اعتبارًا من 20 مارس 2026. أنشئ بوتًا عبر BotFather، وثبّت الإضافة بأمر واحد، وأعد تشغيل Claude مع الخيار --channels، ثم أرسل رسائل إلى البوت من هاتفك. يقرأ Claude الرسائل مباشرة في جلستك المحلية، ويكتب التغييرات في ملفاتك، ويرد عبر Telegram. لتشغيله على مدار الساعة طوال أيام الأسبوع، انقل الجلسة إلى VPS خاص بك واستخدم systemd.

تجد المزيد من المواد حول إعداد الأدوات في توثيق Ailoot.

ما Claude Code Channels ولماذا تحتاج إليه

أهم النقاط

Channels إضافة MCP تُمرّر الرسائل من Telegram أو Discord أو iMessage إلى جلسة Claude Code قيد التشغيل بالفعل. ترى الجلسة الرسالة كأنها طلب مستخدم عادي، وتعمل على ملفاتك المحلية، ثم ترد في الدردشة نفسها. يبقى حاسوبك المحمول مفتوحًا بينما تنشغل بأمورك باستخدام هاتفك.

في 20 مارس 2026، أطلقت Anthropic إضافة Claude Code Channels الرسمية لربط جلسة Claude بتطبيقات المراسلة. وهي تدعم Telegram وDiscord وiMessage. الميزة في مرحلة المعاينة البحثية: تجد التوثيق على code.claude.com/docs/en/channels، أما الشيفرة المصدرية للإضافة ففي المستودع المفتوح anthropics/claude-plugins-official.

باختصار، إنها «جسر دردشة» بين هاتفك وجلسة Claude Code. أرسل إلى البوت: «تابع إعادة كتابة جدول الأسعار؛ حدّث تواريخ الدفعة القادمة في business/products/practicum/README.md»، فينقل البوت الرسالة إلى الجلسة على VPS الخاص بي. يسترجع Claude السياق، ويعدّل الملف، ويُجري commit للتغييرات، ثم يرد على Telegram: «تم، راجع الـ commit». ويبقى الحاسوب المحمول مغلقًا في المنزل.

⚠️ القيد الرئيسي في المعاينة البحثية: Channels جسر MCP. يجب أن تكون الجلسة قيد التشغيل على جهازك أو VPS. عند إغلاق الجلسة، لن يتلقى أحد أي رسائل. لذلك يجب إعداد التشغيل على مدار الساعة بشكل منفصل (راجع قسم VPS أدناه).

كيف تختلف Channels عن الطرق الأخرى للعمل عن بُعد

تقدم Anthropic في توثيقها الرسمي جدول مقارنة مباشرًا. إليك نسخة معدّلة:

الميزةما تفعلهمتى تختارها
Claude Code على الويبتشغّل مهمة في بيئة سحابية معزولة جديدة، وتستنسخ مستودعًا من GitHubفوّض مهمة مستقلة تعمل في الخلفية وتفقّدها لاحقًا
تكامل Slackيبدأ جلسة ويب في سلسلة محادثات عند ذكر @Claudeابدأ المهام مباشرة من محادثات الفريق
خادم MCP (عادي)يستدعيه Claude أثناء المهمة؛ ولا يرسل أي شيء إلى الجلسةامنح Claude وصولًا عند الطلب إلى الأنظمة الخارجية
Remote Controlتتحكم في جلسة محلية من claude.ai أو تطبيق الهاتفأدر جلسة موجودة من شاشة هاتفك
Channels ⭐تدفع الأحداث من مصادر غير Claude إلى جلسة محلية قيد التشغيل بالفعلأرسل سؤالًا من هاتفك واحصل على رد في الدردشة؛ أو استقبل webhook من CI

الفرق الرئيسي بين Channels وRemote Control هو أن Remote Control يجعل «هاتفك نافذة على الطرفية»؛ إذ ترى المؤشر حرفيًا وتضغط الأزرار. أما Channels فهو روبوت دردشة دماغه جلسة Claude المحلية لديك. مع Remote Control أنظر إلى الطرفية. ومع Channels أراسل من يقرأ ملفاتي.

إذا كنت تحتاج إلى التحكم الكامل من الشاشة، فاستخدم Remote Control. وإذا أردت «إرسال سؤال ومتابعة يومك وتلقي رد»، فاستخدم Channels. أستخدم كليهما: Remote Control عندما أحتاج إلى الموافقة على تغييرات مهمة، وChannels عندما أثق بالمهمة وأريد استعادة أمسيتي.

ما تحتاج إليه قبل البدء

أهم النقاط

Claude Code v2.1.80 أو أحدث، ومصادقة claude.ai مدعومة أو مفتاح Anthropic Console API، وBun مثبت، والوصول إلى Telegram. وللتشغيل على مدار الساعة، تحتاج إلى VPS يعمل بنظام Ubuntu أو Debian. يعمل كل شيء بالطريقة نفسها على macOS وLinux وWSL.

قبل الانتقال إلى الأوامر، تحقّق من هذه القائمة:

  1. حساب Anthropic. تحتاج إلى Pro أو Max أو Team أو Enterprise. لا تتوفر Channels في الخطة المجانية. يعمل مفتاح Anthropic Console API أيضًا؛ وإذا طبقت مؤسسة Console إعدادات مُدارة، فتحقق من تفعيل القنوات فيها.
  2. Claude Code v2.1.80 أو أحدث. تحقّق باستخدام claude --version. إذا كان أقدم، فحدّثه باستخدام claude update أو npm install -g @anthropic-ai/claude-code@latest.
  3. Bun. إضافات Channels هي سكربتات Bun وليست سكربتات Node. تحقّق باستخدام bun --version. إذا لم يكن مثبتًا، فنفّذ curl -fsSL https://bun.sh/install | bash، ثم source ~/.bashrc.
  4. حساب Telegram. يصلح أي حساب؛ المهم أن تكون مسجلًا الدخول إليه على هاتفك.
  5. إذا كنت تستخدم خطة Team/Enterprise، فاطلب من المسؤول تفعيل channelsEnabled في الإعدادات المُدارة أو عبر admin-settings/claude-code. تكون الميزة معطّلة افتراضيًا للمؤسسات.

لا تقلق بشأن Bun إذا كنت تسمع به للمرة الأولى. Bun بيئة تشغيل JavaScript بديلة، مثل Node. اختارته Anthropic لإضافات Channels لأنه يبدأ بسرعة أكبر ويسهل تجميعه في ملف ثنائي واحد. ثبّته مرة واحدة وانس أمره.

⚠️ لا تعمل Channels بعد مع Bedrock / Google Vertex / Azure Foundry الخاص بالشركات. تعمل فقط مع مصادقة claude.ai أو Anthropic Console.

الخطوة 1. أنشئ بوت Telegram عبر BotFather

أهم النقاط

افتح @BotFather في Telegram، وأرسل الأمر /newbot، واختر اسمًا واسم مستخدم (يجب أن ينتهي اسم المستخدم بـ bot)، وستحصل على رمز بالشكل 12345678:AAH.... احتفظ بالرمز بأمان: فهو كلمة مرور البوت. يمكن لأي شخص يراه أن يكتب باسم البوت، وربما يعترض رسائلك إلى Claude.

يتولى BotFather كل العمل؛ ما عليك سوى الضغط على خمسة أزرار. إليك الخطوات:

  1. افتح @BotFather في Telegram (يمكنك استخدام هاتفك؛ كما يمكنك إجراء بقية الإعداد من الهاتف أيضًا).
  2. اضغط «Start» إن كانت هذه أول مرة.
  3. أرسل الأمر /newbot.
  4. سيسألك BotFather: «حسنًا، بوت جديد. ما الاسم الذي سنطلقه عليه؟» أدخل الاسم المعروض، مثل مساعدي - Claude Code.
  5. بعد ذلك سيطلب اسم مستخدم. يجب أن يكون فريدًا في Telegram وأن ينتهي بـ bot. مثلًا: my_claude_bot أو my_dev_bot.
  6. سيرد BotFather برسالة شبيهة بهذه:
Done! Congratulations on your new bot. You will find it at
'<OFFICIAL_URL>'.

Use this token to access the HTTP API:
1234567890:AAHzlAU...

Keep your token secure and store it safely, it can be used by anyone to control your bot.

انسخ الرمز. ستحتاج إليه بعد دقيقتين.

⚠️ أمان الرمز. يمنح رمز البوت تحكمًا كاملًا به. إذا تسرّب، فسيتمكن أي شخص من الكتابة باسم بوتك، وربما اعتراض الرسائل التي ترسلها إلى Claude. لا تنشره في المستودعات، ولا تلصقه في الشيفرة، ولا ترسله في الدردشات. أحفظ الرموز في ~/.claude/channels/telegram/.env؛ وستضعها الإضافة هناك في الخطوة التالية.

الخطوة 2. ثبّت إضافة Telegram في Claude Code

أهم النقاط

شغّل Claude Code كالمعتاد، ثم أدخل /plugin install telegram@claude-plugins-official في الجلسة. إذا لم يُعثر على الإضافة، فأضف السوق الرسمي أولًا باستخدام /plugin marketplace add anthropics/claude-plugins-official. بعد التثبيت، شغّل /reload-plugins لتفعيل أوامر الإضافة في الجلسة الحالية.

افتح طرفية في أي مجلد تعمل فيه عادةً مع Claude، ونفّذ:

claude

أدخل أمر الشرطة المائلة في الجلسة:

/plugin install telegram@claude-plugins-official

إذا رد Claude: «Plugin not found in any marketplace»، فهذا يعني أن العميل لا يعرف السوق الرسمي. أضفه:

/plugin marketplace add anthropics/claude-plugins-official

أو حدّثه إذا كنت قد أضفته سابقًا:

/plugin marketplace update claude-plugins-official

بعد نجاح التثبيت، أعد تحميل الإضافات لتفعيل أوامرها:

/reload-plugins

يفترض أن تظهر الآن أوامر شرطة مائلة مثل /telegram:configure و/telegram:access. للتحقق، أدخل /help؛ ويجب أن تتضمن القائمة قسم telegram.

الخطوة 3. اربط الرمز بالإضافة

أهم النقاط

في جلسة Claude، أدخل /telegram:configure <token> مع الرمز الذي حصلت عليه في الخطوة 1. يحفظ الأمر الرمز في ~/.claude/channels/telegram/.env (ولا يمكن الوصول إليه إلا من حسابك). أو عيّن متغير البيئة TELEGRAM_BOT_TOKEN في الصدفة قبل تشغيل Claude. أستخدم الخيار الثاني في بيئة الإنتاج: إدارته أسهل عبر systemd، كما يتجنب إدراج ~/.claude/ في المستودع.

في جلسة Claude:

/telegram:configure 1234567890:AAHzlAU...

سيضع الأمر الرمز في ~/.claude/channels/telegram/.env. لا يمكن الوصول إلى الملف إلا من حسابك (chmod 600)، لذلك لا داعي للقلق بشأنه.

بدلًا من ذلك، عيّن الرمز عبر متغير بيئة. يفيد هذا إذا كنت تنشر Claude باستخدام systemd أو Docker ولا تريد استخدام أوامر تفاعلية:

export TELEGRAM_BOT_TOKEN="1234567890:AAHzlAU..."
claude --channels plugin:telegram@claude-plugins-official

⚠️ في بيئة الإنتاج، أستخدم دائمًا متغيرات البيئة بدلًا من ملف .env في مجلد المنزل ~/. يسهل ذلك إدارة الأسرار عبر systemd (Environment=TELEGRAM_BOT_TOKEN=...) ويمنع إدراج ~/.claude/ في المستودع عن طريق الخطأ.

الخطوة 4. أعد تشغيل Claude مع الخيار --channels

أهم النقاط

اخرج من الجلسة (exit أو Ctrl+D)، ثم شغّلها مجددًا مع الخيار --channels plugin:telegram@claude-plugins-official. يفعّل هذا الخيار الإضافة ويطلب من Claude استطلاع Telegram API بحثًا عن رسائل جديدة. من دون الخيار، يكون البوت موجودًا لكنه صامت: الإضافة خاملة ولم يبدأ الاستطلاع.

هذه أهم نقطة، وهي ما يوقع الجميع في الخطأ عند التشغيل لأول مرة. تثبيت الإضافة وحده لا يكفي. لكي يبدأ البوت باستقبال الرسائل فعلًا، يجب تشغيل Claude مع خيار صريح:

claude --channels plugin:telegram@claude-plugins-official

من دون الخيار، تعمل الجلسة كالمعتاد لكن إضافة Telegram تكون خاملة. ومعه، يشغّل Claude خادم MCP الخاص بالإضافة، ويبدأ استطلاع Telegram API، ويرد على الرسائل المرسلة إلى البوت.

بعد التشغيل، يجب أن ترى شيئًا شبيهًا بهذا في الطرفية:

✻ Welcome to Claude Code 2.1.80
  Channels: telegram@claude-plugins-official (active)
  Polling for messages...

إذا لم يظهر سطر عن channels، فهذا يعني أن الخيار لم يُلتقط. تحقّق من أن إصدار Claude Code هو 2.1.80+ وأن الإضافة مثبتة بالفعل (/plugin list داخل الجلسة).

⚠️ نصيحة مفيدة. أضفت اسمًا مستعارًا في ~/.zshrc:

alias claude-tg="claude --channels plugin:telegram@claude-plugins-official"

بعدها لا أفعل سوى تشغيل claude-tg. يمكنك تمرير إضافات متعددة تفصل بينها مسافات: --channels plugin:telegram@... plugin:discord@....

الخطوة 5. أقرن الحساب وأحظر الجميع سواه

أهم النقاط

افتح بوتك في Telegram وأرسل إليه أي رسالة. سيرد البوت برمز إقران من ستة أرقام. عُد إلى الطرفية وأدخل /telegram:access pair <code>. ثم احرص على تقييد الوصول باستخدام قائمة سماح: /telegram:access policy allowlist. اعتمد رموز إقران من تقصد تفويضهم فقط؛ فتضبط قائمة المرسلين من يستطيع الوصول إلى الجلسة.

تتعلق هذه الخطوة بالأمان. يستطيع مرسل معتمد مطالبة Claude بالتصرف في ملفات الجلسة وأدواتها المتاحة. أقرن الحساب المقصود وحده وأحكم سياسة المرسلين قبل الاعتماد على البوت.

الخطوات:

  1. افتح بوتك في Telegram. ابحث عنه باسم المستخدم @my_claude_bot أو عبر الرابط في رد BotFather. اضغط «Start».
  2. أرسل إلى البوت أي رسالة. مثلًا hi.
  3. سيرد البوت برمز إقران. وسيبدو مثل هذا:
Hi! To pair this account, run in your Claude Code session:
/telegram:access pair 847291

This code is valid for 5 minutes.
  1. عُد إلى الطرفية. في جلسة Claude، أدخل الأمر الوارد في الرد:
/telegram:access pair 847291

سيرد Claude: «تم إقران الحساب». أصبح حساب Telegram الخاص بك قادرًا على إرسال الأوامر.

  1. فعّل سياسة allowlist. فهي تحظر الجميع باستثناء الحسابات التي سبق إقرانها:
/telegram:access policy allowlist

بعد ذلك، سيتم تجاهل الرسائل الواردة من الحسابات الأخرى بصمت. لن تظهر في الطرفية ولن يرد البوت، وكأنها لم تصل قط.

⚠️ من المهم جدًا تفعيل allowlist فور الإقران. لا تؤجل ذلك. لا تعتمد طلبات إقران غير مألوفة أثناء الإعداد، ولا تفترض أن ردًا ناجحًا يثبت صحة سياسة المرسلين. في المرة الأولى، ظل بوتي يعمل من دون allowlist لعشر دقائق، وتمكن مستخدمان عشوائيان على Telegram من إرسال «hi» خلال تلك الفترة. لحسن الحظ، لم أكن أسمح للأوامر بكتابة الملفات آنذاك.

إذا احتجت إلى إضافة شخص آخر (مثل شريك في المشروع):

/telegram:access pair <code from their account>

عليه أن يراسل البوت أولًا ويحصل على رمز ثم يرسله إليك. هذه هي الطريقة الوحيدة لإضافته.

تجد مزيدًا من الأدلة في توثيق Ailoot.

كيفية تشغيل Claude على VPS الخاص بك على مدار الساعة

أهم النقاط

تعمل الجلسة المحلية ما دام حاسوبك المحمول مفتوحًا؛ أغلق الغطاء وسيتوقف البوت عن الرد. لكي يرد Claude في أي وقت، انقل الجلسة إلى VPS خاص بك: ثبّت Claude Code وBun، وصادق وثبّت الإضافة وأقرنها تحت مستخدم Unix المخصص نفسه، وأدر الجلسة عبر systemd مع إعادة التشغيل التلقائي. ويمكن لخادم Coolify تشغيله بلا مشاكل.

إذا أردت أن يكون البوت «حيًا على مدار الساعة» بدلًا من «فتح الحاسوب المحمول لساعة والعبث به قليلًا»، فيجب أن تظل الجلسة قيد التشغيل. يمكنك فعل ذلك محليًا باستخدام tmux، لكن VPS أبسط وأكثر موثوقية.

في أحد أمثلة الإعداد يُستخدم VPS من Coolify يستضيف موقعًا إلكترونيًا أيضًا (التفاصيل في دليل النشر عبر Coolify). يمكنك استخدام الخادم نفسه؛ فـ Claude لا يستهلك إلا قدرًا قليلًا من الذاكرة. إذا لم يكن لديك VPS، فاختر الأرخص بسعر 4–5 يورو شهريًا، مثل Hetzner CX11 / Yandex Cloud / Selectel.

الخطوة 1: ثبّت النظام على VPS

أنشئ أولًا حساب Unix المخصص ومساحة العمل بصلاحية المسؤول. لا تعِد استخدام حساب قائم إلا بعد فحص مجلده وملكيته:

sudo useradd --create-home --shell /bin/bash claude
sudo install -d -o claude -g claude /home/claude/workspace
sudo -iu claude

تابع في صدفة دخول claude هذه، وليس في مجلد root. ثبّت Bun بمثبته الرسمي وClaude Code عبر مسار التثبيت الأصلي:

curl -fsSL https://bun.sh/install | bash
curl -fsSL https://claude.ai/install.sh | bash

افتح صدفة دخول جديدة للمستخدم نفسه لتطبيق PATH من المثبت. افحص الحساب ومسارات البرامج:

whoami
printf '%s\n' "$HOME"
command -v bun
command -v claude
bun --version
claude --version
cd /home/claude/workspace
claude

يجب أن يعرض whoami اسم claude وأن يكون HOME هو /home/claude. سجّل المسارات المطلقة التي يعيدها command -v؛ واستخدم مسار Claude الحقيقي في ExecStart ودليل Bun في PATH الخدمة. توقف إن غاب أي برنامج.

الخطوة 2: صادق وثبّت وأقرن كمستخدم الخدمة

في جلسة claude التفاعلية نفسها، أكمل الدخول ثم كرر الخطوات 2–5 أعلاه تحت مستخدم Unix نفسه: ثبّت إضافة Telegram في نطاق المستخدم، واضبط الرمز، وأعد التشغيل مع --channels، وأقرن حسابك، وعيّن policy allowlist. اختبر رسالة وردًا قبل تهيئة الخدمة. لا تنسخ إعدادات Claude أو اعتمادات root إلى هذا المجلد.

تُدعم مصادقة اشتراك claude.ai ومفتاح Anthropic Console API معًا. تتطلب Team/Enterprise تفعيل المؤسسة؛ ويجب أن تستوفي مؤسسات Console المُدارة إعدادات القناة أيضًا. يحاسب وصول Console عبر API وليس ضمن اشتراك claude.ai. احتفظ بالحساب وطريقة المصادقة المختارين عند الانتقال من الصدفة التفاعلية إلى الخدمة.

الخطوة 3: أدر الجلسة عبر systemd

اخرج من صدفة مستخدم الخدمة وأنشئ الوحدة كمسؤول. تفترض الوحدة أدناه أن الفحص أعاد /home/claude/.local/bin/claude و/home/claude/.bun/bin/bun؛ استبدلهما بالناتج الحقيقي إن اختلف. وفر بيئة المصادقة ورمز البوت المختارين نفسيهما، واجعل الوحدة مقروءة لمسؤولها فقط، ولا تضع الأسرار في Git. أنشئ ملف خدمة للبدء وإعادة التشغيل بعد التعطل:

cat > /etc/systemd/system/claude-code.service <<'EOF'
[Unit]
Description=Claude Code with Telegram channel
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=claude
WorkingDirectory=/home/claude/workspace
Environment="HOME=/home/claude"
Environment="TELEGRAM_BOT_TOKEN=1234567890:AAH..."
Environment="PATH=/home/claude/.local/bin:/home/claude/.bun/bin:/usr/local/bin:/usr/bin:/bin"
ExecStart=/home/claude/.local/bin/claude --channels plugin:telegram@claude-plugins-official --dangerously-skip-permissions
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable claude-code
systemctl start claude-code

إليك ما فعّلته:

  • Type=simple — وضع بسيط؛ يعتبر systemd العملية قد بدأت بمجرد تشغيلها.
  • User=claude — تعمل العملية تحت مستخدم منفصل، وليس root. وهذا أكثر أمانًا.
  • WorkingDirectory=/home/claude/workspace — مساحة العمل المجهزة المملوكة لمستخدم الخدمة. ضع المستودع المقصود فيها قبل البدء؛ ولا تترك نسخة يملكها root أو تشغل من مجلده.
  • Environment=TELEGRAM_BOT_TOKEN=... — يُمرّر الرمز مباشرة إلى العملية. لا حاجة إلى ملف .env.
  • --dangerously-skip-permissions — ضروري للتشغيل من دون متابعة. من دون هذا الخيار، ينتظر Claude جوابك «نعم/لا» في الطرفية قبل كل إجراء، وستتوقف الجلسة. تحدد قائمة السماح المرسلين؛ ولا تجعل أوامرهم آمنة. استخدم التجاوز فقط داخل بيئة معزولة بملفات واعتمادات وشبكة محدودة عمدًا.
  • Restart=on-failure — إذا تعطلت العملية (تعطل Claude أو انقطعت الشبكة)، فسيعيد systemd تشغيلها بعد 10 ثوانٍ.

اعرض السجلات باستخدام:

journalctl -u claude-code -f

إذا حدث خطأ ما، فسيعرض journalctl -u claude-code -n 100 آخر 100 سطر.

الخطوة 4: تحقّق من أن البوت يعمل

ابدأ الخدمة بعد أن ينتج الإعداد التفاعلي رد Telegram حقيقيًا فقط. أرسل للبوت نفسه رسالة غير حساسة من الحساب المقترن وأكد الرد وسجلات الخدمة. إذا عمل تفاعليًا وفشل عبر systemd، فقارن مستخدم Unix وHOME ومساحة العمل ومسار البرنامج وPATH وبيئة المصادقة أولًا.

لتغيير الإقران لاحقًا، أوقف الخدمة وشغّل sudo -iu claude، وادخل /home/claude/workspace وشغّل القناة نفسها تفاعليًا. أقرن وفعّل السماح هناك، ثم اخرج وأعد الخدمة. لا تشغل مستقصيًا ثانيًا للبوت نفسه مع الأول. يقرأ journalctl السجلات ولا يوفر موجه Claude تفاعليًا.

5 مشكلات في خادم الإنتاج وكيفية تجنبها

أهم النقاط

جمعت هذه المشكلات من أسبوع من إعداد بيئات الإنتاج: لا يظهر Bun في systemd، وينقطع long polling بعد فترة خمول طويلة، وتنتهي حدود خطة Max في منتصف اليوم، وقد يؤدي --dangerously-skip-permissions إلى تسريب، كما يُنسى إعداد allowlist بعد إعادة التثبيت. يمكن معالجة كل مشكلة بإعداد من سطر واحد، لكنك ستواجهها خلال يومين إن لم تعرفها مسبقًا.

1. Bun غير موجود في PATH الخاص بـ systemd

يشغّل systemd العمليات في بيئة محدودة؛ فلا يرى المتغيرات الموجودة في ~/.bashrc. إذا ثُبت Bun في مجلد root فقط بينما الخدمة User=claude، فلن ترث تثبيته أو PATH صدفته.

الحل. إما تثبيت Bun على مستوى النظام (/usr/local/bin/bun) أو تمرير PATH صراحةً:

Environment="PATH=/home/claude/.bun/bin:/usr/local/bin:/usr/bin:/bin"

2. تفقد الجلسة اتصال TCP بـ Telegram API بعد خمول طويل

بعد 6–12 ساعة من الخمول، قد «يصمت» البوت؛ إذ تُرسل الرسائل إلى Telegram لكن الإضافة لا تتلقاها. هذه إحدى مشكلات long polling.

الحل. أضف إعادة تشغيل دورية إلى systemd (كل 24 ساعة):

Restart=always
RuntimeMaxSec=86400

أو أعد إعداد مهمة cron: 0 5 * * * systemctl restart claude-code (إعادة التشغيل عند الخامسة صباحًا).

3. تنتهي حدود Claude Max في منتصف اليوم

إذا كنت تستخدم Claude بكثافة عبر Telegram، فقد تصل إلى الحد خلال 4–6 ساعات مع خطة Max 5x (~$100 شهريًا). لا تختلف طلبات Telegram عن الطلبات في الطرفية العادية؛ فهي تستهلك الميزانية نفسها.

الحل. اضبط تذكيرًا: «البوت لا يرد — تحقّق من /stats». إذا بلغت الحد، فانتظر حتى يُعاد ضبطه أو رقِّ إلى Max 20x ($200 شهريًا). قد يفيدك دليل توفير الرموز ودليل نماذج Sonnet وOpus.

4. يظل --dangerously-skip-permissions خطيرًا حتى مع وجود allowlist

يعطّل هذا الخيار جميع التأكيدات. سيُنفّذ أي أمر ترسله عبر Telegram دون أسئلة: حذف الملفات، وإرسال طلبات خارجية، وأي شيء آخر. طلبت من Claude مرةً «إزالة عبارات console.log غير الضرورية»، فاندفع إلى تنظيف الشيفرة وحذف نصف سجلات تصحيح الأخطاء من سكربت إنتاج. أعدتها عبر git، لكن الضرر كان قد وقع.

الحل. لا تفعّل --dangerously-skip-permissions إذا كنت تعمل على مشروع مهم. استخدم بدلًا منه Remote Control لتشغيل الجلسات؛ إذ تصل طلبات الأذونات إلى هاتفك وتوافق عليها يدويًا. استخدم Channels مع --dangerously-skip-permissions للمسودات الأولية وإعادة الهيكلة والاختبارات.

5. «تتعطل» allowlist بعد إعادة التثبيت

تُخزّن allowlist في ~/.claude/channels/telegram/. إذا انتقلت إلى VPS جديد أو أعدت تثبيت Claude أو غيّرت المستخدم، فلن تُحمّل بيانات الإقران القديمة. قائمة المرسلين القديمة غائبة؛ فلا تفترض احتفاظ النسخة الجديدة بسياسة الوصول السابقة.

الحل. قبل الانتقال، أنشئ نسخة احتياطية من ~/.claude/channels/telegram/. وبعدها أعدها إلى مكانها. أو أعد الإقران فور إعادة التثبيت، ولا تترك حتى دقيقة واحدة بين تشغيل البوت وتعيين policy allowlist.

Channels أم Remote Control — أيهما تختار؟

أهم النقاط

تعني Channels أن جلسة Claude ترد في الدردشة وأنك ترسل المطالبات من هاتفك. أما Remote Control فيعرض شاشة الطرفية على هاتفك وتدير الجلسة باستخدام الأزرار. Channels أكثر ملاءمة لـ«اسأل وتابع يومك»، بينما يناسب Remote Control الخطوات المهمة التي تحتاج فيها إلى رؤية ما يفعله Claude والموافقة على كل إجراء ينطوي على مخاطر.

أطلقت Anthropic الميزتين في وقت متقارب: Remote Control في 25 فبراير 2026، وChannels في 20 مارس 2026. إنهما لا تؤديان الوظيفة نفسها؛ فكل منهما تحل مشكلة مختلفة.

السيناريوChannelsRemote Control
السؤال «ما الـ commits التي أُجريت أمس؟» أثناء وجودك خارج المنزل✅ مثاليةمبالغ فيها — تحتاج إلى الشاشة كاملة
الموافقة على تغيير ملف⚠️ موافقة عمياء عبر --dangerously-skip-permissions✅ ترى ما يريد Claude فعله
تشغيل Claude على مدار الساعة✅ إعداد VPS + systemd⚠️ يتطلب بقاء الحاسوب المحمول مفتوحًا
إرسال بضع مطالبات من الهاتف فحسب⚠️ مبالغ فيها — تحتاج إلى بوت ورمز وإضافة✅ رمز QR واحد
استقبال webhook من CI / Sentry✅ حالة استخدام أصلية❌ ليست لهذا الغرض
فريق يضم عدة أشخاص✅ قائمة سماح لعدة حسابات⚠️ مالك الجلسة فقط
إبقاء الملفات خارج سحابة Anthropic✅ نص فقط عبر MCP✅ نص فقط أيضًا

هكذا أقسم استخدامهما: أستخدم Channels للعمل غير المتزامن عندما أكون بعيدًا عن حاسوبي المحمول، وإشعارات CI، والتكاملات. وأستخدم Remote Control عندما أحتاج إلى رؤية ما يفعله Claude أو الموافقة على خطوة محفوفة بالمخاطر.

يمكنك استخدامهما معًا في الوقت نفسه. يمنحك بوت Telegram قناة سريعة لـ«اسأل واحصل على إجابة»، ويمنحك Remote Control قناة لـ«التحكم في الأمور المهمة». يستخدمان حد Claude نفسه.

الأسئلة الشائعة

أهم النقاط

سبعة من أكثر الأسئلة شيوعًا حول Channels: ربط عدة بوتات، وما يحدث عند إغلاق الطرفية، واستقبال webhooks من CI، والفرق بين Telegram وDiscord، وقيود خطة Team، وما يستطيع Claude رؤيته من هاتفك، والخطة المجانية. تتوفر مواد إضافية في توثيق Ailoot.

هل يمكنني ربط عدة بوتات في الوقت نفسه؟

نعم. يقبل الخيار --channels قائمة تفصل عناصرها مسافات: --channels plugin:telegram@claude-plugins-official plugin:discord@claude-plugins-official. وترد جلسة Claude واحدة في كلتا الدردشتين.

ماذا يحدث إذا أغلقت الطرفية؟

تُغلق الجلسة وتتوقف الإضافة ويصمت البوت. على VPS، يواصل systemd تشغيل الجلسة. وعلى جهاز محلي، أغلق الحاسوب المحمول وسينقطع اتصال claude مع SIGHUP خلال بضع ثوانٍ.

هل يمكنني تلقي إشعارات من CI أو Sentry؟

نعم. Channels قناة ثنائية الاتجاه. يمكنك كتابة إضافتك الخاصة لتمرير webhooks إلى الجلسة باستخدام مرجع Channels. سيرى Claude الأحداث في الوقت الفعلي ويرد عليها.

هل Telegram أكثر محدودية من Discord بأي شكل؟

الإمكانات الأساسية متساوية. يتطلب Discord تفعيل Message Content Intent في إعدادات البوت. لا يعمل iMessage إلا على macOS ويقرأ قاعدة البيانات ~/Library/Messages/chat.db مباشرةً. أما Telegram فيعمل على جميع المنصات.

إذا كنت أستخدم خطة Team، فما الذي ينبغي عليّ فعله؟

يجب على مسؤول المؤسسة تفعيل channelsEnabled: true في الإعدادات المُدارة أو عبر admin-settings/claude-code. ومن دون ذلك، سيتصل المكوّن الإضافي لكن الرسائل لن تُمرر، وسيظهر تحذير بدء التشغيل في الطرفية.

ما الذي يستطيع Claude رؤيته من هاتفي، أي محادثة Telegram نفسها؟

لا شيء من ذلك. لا يرى Claude سوى الرسالة التي أرسلتها إلى البوت. ولا يمكنه الوصول إلى سجل محادثات Telegram أو قائمة الدردشات أو جهات الاتصال. تقرأ إضافة MCP الرسائل المرسلة إلى البوت عبر Telegram Bot API فقط.

هل يمكنني تشغيل Claude عبر Channels دون اشتراك Pro/Max؟

نعم، يُدعم مفتاح Anthropic Console API أيضًا ويحاسب استخدامه على مؤسسة Console. خطة claude.ai المجانية ليست مسار الاشتراك الموضح. يجب أن تستوفي Team/Enterprise ومؤسسات Console المُدارة إعدادات تفعيل القنوات.

ما الخطوة التالية

أهم النقاط

تم إعداد البوت، وتفعيل allowlist، وتشغيل الجلسة على VPS. حان الوقت لإدخال Channels في روتينك اليومي: اربط webhooks من GitHub Actions وSentry، واستخدمها مع Routines للمهام المنتظمة، وأعد مراقبًا لصحة البوت. تستغرق كل خطوة 15–30 دقيقة وتسُد فجوة واحدة في قابلية المراقبة.

بعد أن يبدأ البوت بالعمل باستقرار، إليك بعض الخطوات التالية لتحقيق أقصى استفادة من Channels:

  1. اربط webhooks من CI. إذا كنت تستخدم GitHub Actions / GitLab CI، فيمكنك إعداد إضافة Channels لتمرير نتائج البناء مباشرةً إلى الجلسة. سيرى Claude عبارة «فشل الاختبار» فور إجراء push ويقترح حلًا. راجع توثيق channels-reference.
  2. استخدمها مع Routines. يمكنك تشغيل Routines في الجلسة نفسها للمهام المنتظمة. في الصباح، يرسل البوت من تلقاء نفسه «صباح الخير، إليك ملخص المشروع»، وترد عليه من هاتفك: «أعد تقريرًا عن الإيرادات».
  3. أعد مراقبًا للبوت. أريد أن أعرف إذا صمت البوت. يرسل سكربت cron صغير على VPS إشارة إلى بوت Telegram مرة كل ساعة. وإذا لم يرد البوت، يرسل تنبيهًا إلى قناة منفصلة. من دون ذلك قد يتوقف البوت عند الرابعة صباحًا، ولن تعرف حتى الظهر.
  4. فكّر في استخدام hooks. تستجيب Hooks لأحداث Claude (بدء أداة، اكتمال رسالة). يتيح الجمع بين Hooks وChannels إرسال إشعارات Telegram تلقائيًا مثل «أكمل Claude المهمة N».

لا تُضف Channels إلى كل شيء. إنها طريقة ملائمة لمتابعة مهمة أثناء وجودك خارج المنزل أو في مقهى. وعندما تحتاج إلى التفكير بجدية، افتح حاسوبك المحمول واجلس للعمل. تخفف Channels عنك التفكير «أوه، لا يزال عليّ أن أطلب منه هذا، ويجب أن أفتح الحاسوب المحمول» عندما تكون خارج المنزل أو مسافرًا.

لمزيد من المواد حول العمل بالأدوات، راجع توثيق Ailoot.

المزيد من التفاصيل

أسئلة شائعة

لماذا يعمل بوت Telegram يدويًا ويفشل كخدمة؟

قارن مستخدم Unix وHOME ومساحة العمل ومسار Claude وBun PATH وبيئة المصادقة بالتشغيل التفاعلي الناجح. ثبّت واضبط وأقرن تحت مستخدم الخدمة نفسه؛ فإضافات root وحالة إقرانه إعداد مختلف.

هل يحل مفتاح Console API محل دخول Pro أو Max في Channels؟

نعم. تُدعم مصادقة Anthropic Console API وتحاسب على Console. افحص إعدادات قنوات المؤسسة حيث تلزم، وأكمل رمز البوت والإقران وقائمة المرسلين تحت الحساب الذي يشغل الجلسة.

جميع المقالات