Thorfin OpenCode School

الدرس 10

Plugins

وسّع OpenCode بإضافات Plugins تضيف أدوات، وترتبط بالأحداث، وتدمج خدمات خارجية.

في درس الأدوات، أضفت خادم MCP لمنح OpenCode وصولًا إلى أداة خارجية. MCP ممتاز للاتصال بالخدمات — لكن ماذا لو أردت التعمّق أكثر؟ ماذا لو أردت الارتباط بدورة حياة OpenCode، أو تعديل سلوك الأدوات، أو حقن متغيرات بيئة، أو تسجيل أدوات جديدة بالكامل مكتوبة بـ TypeScript؟

هذا هو دور Plugins. الإضافة وحدة JavaScript أو TypeScript يحمّلها OpenCode عند بدء التشغيل. يمكنها الاشتراك في الأحداث، وإضافة أدوات مخصصة، وتغيير طريقة عمل OpenCode — ليس فقط الأدوات التي يصل إليها، بل كيف يستخدمها.

أين تعيش Plugins

يمكن تثبيت Plugins على مستويين:

إضافات على مستوى المشروع توضع في .opencode/plugins/ داخل مشروعك. تكون متاحة فقط عندما تعمل في ذلك المشروع.

إضافات عامة توضع في ~/.config/opencode/plugins/. تكون متاحة في كل مشروع.

يمكنك أيضًا تثبيت Plugins من npm بإضافتها إلى إعدادات opencode.json:

{
  "plugin": ["opencode-helicone-session", "@my-org/custom-plugin"]
}

إذا احتاجت إضافتك إلى حزم خارجية، أضف package.json إلى نفس المجلد (.opencode/package.json لمستوى المشروع، أو ~/.config/opencode/package.json للمستوى العام). يشغّل OpenCode bun install تلقائيًا عند بدء التشغيل لحل الاعتماديات.

ما الذي يمكن أن تفعله Plugins

في أبسط صورها، الإضافة دالة تُرجع كائنًا من الخطافات:

export const MyPlugin = async ({ project, client, $ }) => {
  return {
    "session.idle": async ({ event }) => {
      // Do something when a session finishes
    },
  }
}

يمكن لـ Plugins الاشتراك في عشرات الأحداث — session.idle وtool.execute.before وfile.edited وكثير غيرها. ويمكنها أيضًا تسجيل أدوات مخصصة يستطيع الذكاء الاصطناعي استدعاءها، باستخدام المساعد tool() من حزمة @opencode-ai/plugin:

import { tool } from "@opencode-ai/plugin"

export const MyPlugin = async () => {
  return {
    tool: {
      greet: tool({
        description: "Say hello",
        args: { name: tool.schema.string() },
        async execute(args) {
          return `Hello, ${args.name}!`
        },
      }),
    },
  }
}

تظهر الأدوات المعرّفة بهذه الطريقة إلى جانب أدوات OpenCode المدمجة. يستطيع الذكاء الاصطناعي استدعاءها كلما قرر أنها ذات صلة — تمامًا مثل أدوات MCP التي أعددتها في درس الأدوات.

تأتي بعض Plugins أيضًا بمهارة مرافقة — ملف Markdown في .opencode/skills/ يحقن إرشاد سير العمل في موجّه نظام الوكيل، فيعلّمه كيف يستخدم أدوات الإضافة بفعالية.

لقائمة الأحداث وأنواع الخطافات كاملة، راجع وثائق OpenCode حول Plugins.

ثبّت إضافة Replicate

لنثبّت إضافة حقيقية. تمنح إضافة Replicate OpenCode القدرة على البحث في نماذج التعلم الآلي واستكشافها وتشغيلها على Replicate — مباشرة من الطرفية. تسجّل أربع أدوات (replicate_search وreplicate_schema وreplicate_run وreplicate_whoami) وتتضمن مهارة مرافقة تعلّم الوكيل سير عمل ابحث-ثم-شغّل.

احصل على رمز Replicate API

اذهب إلى replicate.com/account/api-tokens وأنشئ رمزًا. ثم أضفه إلى ملف تعريف الصدفة حتى يكون متاحًا في كل مرة تفتح فيها طرفية:

# Add this line to your ~/.bashrc or ~/.zshrc
export REPLICATE_API_TOKEN=r8_your_token_here

بعد حفظ الملف، افتح طرفية جديدة أو شغّل source ~/.bashrc (أو source ~/.zshrc) لتحميله.

شغّل سكربت التثبيت

من جذر مشروعك، شغّل:

curl -sSL https://raw.githubusercontent.com/lucataco/replicate-opencode-plugin/main/install.sh | bash

هذا ينزّل ثلاثة أشياء إلى مجلد .opencode/:

  • plugins/replicate.ts — الإضافة نفسها، وتسجّل أربع أدوات Replicate
  • skills/replicate/SKILL.md — مهارة مرافقة بإرشاد سير العمل للوكيل
  • package.json — يعلن اعتماد @opencode-ai/plugin (لن يستبدل ملفًا موجودًا)

الإضافة مثبتة على مستوى المشروع. يمكنك أيضًا تثبيتها عامًا بنسخ الملفات إلى ~/.config/opencode/ — راجع README الخاص بالإضافة للتفاصيل.

أعد تشغيل OpenCode

تُحمَّل Plugins عند بدء التشغيل. أغلق OpenCode Desktop وأعد فتحه، ثم استخدم الموجّه أدناه للمتابعة.

جرّبها

بعد العودة، اسأل OpenCode شيئًا مثل:

ما اسم مستخدمي على Replicate؟

يفترض أن يستدعي الوكيل أداة replicate_whoami ويعيد معلومات حسابك. هذا يؤكد أن الإضافة محمّلة وأن رمز API يعمل.

الآن جرّب شيئًا أكثر إثارة:

أنشئ فيديو لقطة ببدلة فضاء

راقب الوكيل وهو يبحث عن نموذج لتوليد الصور، ويتحقق من مخطط مدخلاته، ويشغّل تنبؤًا، ويعرض النتيجة — كل ذلك عبر أدوات الإضافة، موجَّهًا بالمهارة المرافقة.

اعثر على مزيد من Plugins

تسرد صفحة منظومة OpenCode إضافات بناها المجتمع للتسجيل والإشعارات والتحليلات وغيرها. يمكن لأي شخص إنشاء إضافة ومشاركتها — إذا بنيت شيئًا مفيدًا، فكّر في نشره ليستخدمه الآخرون.