Membuat plugin
Buat, uji, dan distribusikan plugin untuk ChatGPT
Halaman ini ditujukan bagi pembuat plugin. Jika Anda ingin menelusuri, menginstal, dan menggunakan plugin dengan ChatGPT Work di web atau dengan ChatGPT Work maupun Codex di aplikasi desktop ChatGPT, lihat Plugin. Jika Anda masih mengembangkan satu repo atau satu alur kerja pribadi, mulailah dengan skill lokal. Buat plugin saat Anda ingin membagikan alur kerja tersebut ke berbagai tim, menggabungkan konektor atau konfigurasi MCP, mengemas hook siklus hidup, atau menerbitkan paket yang stabil.
Plugin dapat menyertakan skill, aplikasi berbasis MCP, atau keduanya. Jika plugin Anda perlu terhubung ke layanan atau menyediakan alat melalui server MCP, lihat Membuat aplikasi.
Untuk contoh publik lengkap, periksa Figma, Notion, dan Membuat aplikasi web.
Membuat plugin dengan @plugin-creator
Untuk penyiapan tercepat, gunakan skill bawaan @plugin-creator.
Skill ini membuat kerangka manifes .codex-plugin/plugin.json yang diperlukan dan juga dapat
membuat entri marketplace lokal untuk pengujian. Jika Anda sudah memiliki folder
plugin, Anda tetap dapat menggunakan @plugin-creator untuk menghubungkannya ke
marketplace lokal.
Membuat dan menguji plugin secara lokal yang mengarah ke aplikasi mode pengembangan berbasis server MCP
Anda juga dapat menggunakan skill plugin-creator jika ingin menguji plugin secara lokal yang menyertakan aplikasi berbasis server MCP. Plugin tetap memerlukan folder dan manifes plugin lokal, tetapi aplikasinya sendiri dimulai dalam mode pengembang ChatGPT.
Pertama, aktifkan mode pengembang di ChatGPT:
- Buka ChatGPT.
- Buka Pengaturan.
- Pilih Keamanan dan login.
- Aktifkan Mode pengembang.
Kemudian buat aplikasi dalam mode pengembang:
- Buka Pengaturan → Plugin atau halaman Plugin.
- Pilih tombol plus.
- Lengkapi dialog untuk membuat aplikasi mode pengembang bagi server MCP Anda.
- Setelah ChatGPT membuatnya, salin ID aplikasi dari URL browser. ID tersebut diawali
dengan
plugin_asdk_app.
Berikan ID plugin_asdk_app... tersebut kepada @plugin-creator dalam chat ChatGPT Work
atau $plugin-creator di Codex. Misalnya, dengan ChatGPT Work:
Prompt Plugin Creator@plugin-creator create a Codex plugin for my ChatGPT app.
Use plugin_asdk_app_6a4c0062f3b88191855c0a80eac5d53d and name it Acme Support.
Include a personal marketplace entry so I can test it locally.Skill plugin-creator akan membuat folder plugin, membuat
.codex-plugin/plugin.json yang diperlukan, dan menambahkan penghubung aplikasi untuk aplikasi ChatGPT. Jika Anda memintanya
membuat entri marketplace pribadi, plugin akan muncul di bawah sumber lokal Anda
dalam Direktori Plugin untuk pengujian.
Setelah skill plugin-creator membuat plugin:
- Tinjau
.app.jsondan pastikan file tersebut mengarah ke IDplugin_asdk_app...yang benar. - Tinjau
.codex-plugin/plugin.jsondan pastikan bidangappsmengarah ke./.app.json. - Tambahkan skill yang disertakan di bawah
skills/jika plugin harus menyertakan alur kerja yang dapat diulang bersama aplikasi. - Jika skill tersebut membuat entri marketplace pribadi, muat ulang ChatGPT dan instal plugin dari sumber lokal Anda di Direktori Plugin. Kemudian uji plugin dalam chat baru.
Untuk bentuk manifes dan tata letak file, lihat Struktur plugin dan Aturan jalur.
Membuat daftar plugin pilihan Anda sendiri
Marketplace adalah katalog plugin dalam format JSON. @plugin-creator dapat membuatnya
untuk satu plugin, dan Anda dapat terus menambahkan entri ke marketplace yang sama
untuk membuat daftar pilihan bagi repo, tim, atau alur kerja pribadi.
Di ChatGPT Work atau Codex dalam aplikasi desktop ChatGPT, setiap marketplace muncul sebagai
sumber yang dapat dipilih di Direktori Plugin. Gunakan
$REPO_ROOT/.agents/plugins/marketplace.json untuk daftar dengan cakupan repo atau
~/.agents/plugins/marketplace.json untuk daftar pribadi. Tambahkan satu entri per
plugin di bawah plugins[], arahkan setiap source.path ke folder plugin dengan jalur berawalan
./ yang relatif terhadap root marketplace, lalu tetapkan
interface.displayName ke label yang ingin Anda tampilkan di pemilih
marketplace dalam aplikasi. Kemudian mulai ulang aplikasi desktop ChatGPT. Setelah itu, buka Direktori
Plugin, pilih marketplace Anda, lalu telusuri atau instal plugin dalam
daftar pilihan tersebut.
Anda tidak memerlukan marketplace terpisah untuk setiap plugin. Satu marketplace dapat menyediakan satu plugin saat Anda melakukan pengujian, lalu berkembang menjadi katalog pilihan yang lebih besar saat Anda menambahkan lebih banyak plugin.
Menambahkan marketplace dari CLI
Gunakan codex plugin marketplace add untuk menambahkan dan melacak sumber marketplace
alih-alih mengedit config.toml secara manual. Perintah ini mendukung penulisan plugin dan
penyiapan katalog. Gunakan aplikasi desktop ChatGPT untuk menginstal dan menguji plugin lokal.
codex plugin marketplace add owner/repo
codex plugin marketplace add owner/repo --ref main
codex plugin marketplace add https://github.com/example/plugins.git --sparse .agents/plugins
codex plugin marketplace add ./local-marketplace-rootSumber marketplace dapat berupa bentuk singkat GitHub (owner/repo atau
owner/repo@ref), URL Git HTTP atau HTTPS, URL Git SSH, atau direktori root
marketplace lokal. Gunakan --ref untuk menetapkan Git ref, dan ulangi --sparse PATH untuk menggunakan
sparse checkout bagi repo marketplace berbasis Git. --sparse hanya valid untuk
sumber marketplace Git.
Untuk memeriksa, memuat ulang, atau menghapus marketplace yang telah dikonfigurasi:
codex plugin marketplace list
codex plugin marketplace upgrade
codex plugin marketplace upgrade marketplace-name
codex plugin marketplace remove marketplace-namecodex plugin marketplace list menampilkan setiap marketplace yang dipertimbangkan Codex
dan jalur root yang dihasilkannya, termasuk marketplace lokal default dan
snapshot marketplace yang dikonfigurasi.
Membuat plugin secara manual
Mulailah dengan plugin minimal yang mengemas satu skill.
- Buat folder plugin dengan manifes di
.codex-plugin/plugin.json.
mkdir -p my-first-plugin/.codex-pluginmy-first-plugin/.codex-plugin/plugin.json
{
"name": "my-first-plugin",
"version": "1.0.0",
"description": "Reusable greeting workflow",
"skills": "./skills/"
}Gunakan name plugin yang stabil dalam kebab-case. Codex menggunakannya sebagai pengenal
plugin dan namespace komponen.
- Tambahkan skill di bawah
skills/<skill-name>/SKILL.md.
mkdir -p my-first-plugin/skills/hellomy-first-plugin/skills/hello/SKILL.md
---
name: hello
description: Greet the user with a friendly message.
---
Greet the user warmly and ask how you can help.- Tambahkan plugin ke marketplace. Gunakan
@plugin-creatoruntuk membuatnya, atau ikuti Membuat daftar plugin pilihan Anda sendiri untuk menghubungkan plugin ke Codex secara manual.
Dari sini, Anda dapat menambahkan konfigurasi MCP, konektor, atau metadata marketplace sesuai kebutuhan.
Menginstal plugin lokal secara manual
Gunakan marketplace repo atau marketplace pribadi, tergantung siapa yang harus dapat mengakses plugin atau daftar pilihan tersebut.
Repo
Tambahkan file marketplace di `$REPO_ROOT/.agents/plugins/marketplace.json`
dan simpan plugin Anda di bawah `$REPO_ROOT/plugins/`.
**Contoh marketplace repo**
Langkah 1: Salin folder plugin ke `$REPO_ROOT/plugins/my-plugin`.mkdir -p ./plugins
cp -R /absolute/path/to/my-plugin ./plugins/my-pluginLangkah 2: Tambahkan atau perbarui `$REPO_ROOT/.agents/plugins/marketplace.json` agar
`source.path` mengarah ke direktori plugin tersebut dengan jalur relatif berawalan `./`:{
"name": "local-repo",
"plugins": [
{
"name": "my-plugin",
"source": {
"source": "local",
"path": "./plugins/my-plugin"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
}
]
}Langkah 3: Mulai ulang aplikasi desktop ChatGPT dan pastikan plugin muncul.Pribadi
Tambahkan file marketplace di `~/.agents/plugins/marketplace.json` dan simpan
plugin Anda di bawah `~/.codex/plugins/`.
**Contoh marketplace pribadi**
Langkah 1: Salin folder plugin ke `~/.codex/plugins/my-plugin`.mkdir -p ~/.codex/plugins
cp -R /absolute/path/to/my-plugin ~/.codex/plugins/my-pluginLangkah 2: Tambahkan atau perbarui `~/.agents/plugins/marketplace.json` agar
`source.path` milik entri plugin mengarah ke direktori tersebut.
Langkah 3: Mulai ulang aplikasi desktop ChatGPT dan pastikan plugin muncul.File marketplace mengarah ke lokasi plugin, sehingga direktori tersebut merupakan
contoh dan bukan persyaratan tetap. Codex menyelesaikan source.path relatif
terhadap root marketplace, bukan relatif terhadap folder .agents/plugins/. Lihat
Metadata marketplace untuk mengetahui format file.
Setelah Anda mengubah plugin, perbarui direktori plugin yang ditunjuk oleh entri marketplace Anda dan mulai ulang aplikasi desktop ChatGPT agar instalasi lokal menggunakan file baru.
Membagikan plugin lokal dengan ruang kerja Anda
Setelah membuat plugin, tambahkan plugin tersebut dari aplikasi desktop ChatGPT. Pilih ChatGPT dan beralih ke Work melalui pemilih, atau pilih Codex, lalu buka Plugin. Setelah itu, Anda dapat membagikannya dengan anggota lain di ruang kerja ChatGPT Anda.
- Buka Plugin di aplikasi desktop ChatGPT.
- Buka Dibuat oleh Anda dan buka halaman detail plugin.
- Pilih Bagikan.
- Tambahkan anggota atau grup ruang kerja, atau salin tautan berbagi.
- Pilih siapa yang memiliki akses, lalu kirim undangan atau tautan.
Orang yang menerima akses dapat menemukan plugin di bawah Dibagikan kepada Anda dalam Direktori Plugin. Membagikan plugin lokal dengan ruang kerja Anda tidak akan menerbitkannya ke Direktori Plugin publik. Plugin yang dibagikan tetap berada dalam batas ruang kerja dan organisasi Anda; akun yang tidak login ke ruang kerja tersebut tidak dapat mengaksesnya. Gunakan grup jika suatu tim atau peran harus memiliki akses plugin yang sama. Gunakan marketplace jika Anda menginginkan distribusi melalui repo atau CLI, dan gunakan berbagi ruang kerja jika Anda ingin rekan tim tertentu menginstal plugin dari aplikasi desktop ChatGPT.
Admin ruang kerja dapat menonaktifkan berbagi plugin melalui persyaratan yang dikelola cloud dengan
menambahkan features.plugin_sharing = false ke requirements.toml:
features.plugin_sharing = falseMetadata marketplace
Jika Anda mengelola marketplace repo, definisikan marketplace tersebut di
$REPO_ROOT/.agents/plugins/marketplace.json. Untuk marketplace pribadi, gunakan
~/.agents/plugins/marketplace.json. File marketplace mengontrol urutan plugin
dan kebijakan instalasi di aplikasi desktop ChatGPT. File ini dapat merepresentasikan satu
plugin saat Anda melakukan pengujian atau daftar pilihan plugin yang ingin Anda tampilkan
bersama-sama di aplikasi dengan satu nama marketplace. Sebelum menambahkan plugin ke
marketplace, pastikan version, metadata penerbit, dan teks pada antarmuka
instalasinya siap dilihat oleh pengembang lain.
{
"name": "local-example-plugins",
"interface": {
"displayName": "Local Example Plugins"
},
"plugins": [
{
"name": "my-plugin",
"source": {
"source": "local",
"path": "./plugins/my-plugin"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
},
{
"name": "research-helper",
"source": {
"source": "local",
"path": "./plugins/research-helper"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
}
]
}- Gunakan
nametingkat atas untuk mengidentifikasi marketplace. - Gunakan
interface.displayNameuntuk judul marketplace yang ditampilkan di aplikasi desktop ChatGPT. - Tambahkan satu objek per plugin di bawah
pluginsuntuk membuat daftar pilihan yang ditampilkan aplikasi di bawah judul marketplace tersebut. - Arahkan
source.pathsetiap entri plugin ke direktori plugin yang ingin dimuat Codex. Untuk instalasi repo, direktori tersebut sering berada di bawah./plugins/. Untuk instalasi pribadi, pola yang umum adalah./.codex/plugins/<plugin-name>. - Pertahankan
source.pathagar relatif terhadap root marketplace, awali dengan./, dan pastikan tetap berada di dalam root tersebut. - Untuk entri lokal,
sourcejuga dapat berupa jalur string biasa seperti"./plugins/my-plugin". - Selalu sertakan
policy.installation,policy.authentication, dancategorypada setiap entri plugin. - Gunakan nilai
policy.installationsepertiAVAILABLE,INSTALLED_BY_DEFAULT, atauNOT_AVAILABLE. - Gunakan
policy.authenticationuntuk menentukan apakah autentikasi dilakukan saat instalasi atau penggunaan pertama.
Marketplace mengontrol lokasi tempat Codex memuat plugin. source.path lokal
dapat mengarah ke tempat lain jika plugin Anda berada di luar direktori
contoh tersebut. File marketplace dapat berada di repo tempat Anda
mengembangkan plugin atau di repo marketplace terpisah, dan satu file marketplace
dapat mengarah ke satu atau banyak plugin.
Entri marketplace juga dapat mengarah ke sumber plugin berbasis Git. Gunakan
"source": "url" jika plugin berada di root repositori, atau
"source": "git-subdir" jika plugin berada di subdirektori:
{
"name": "remote-helper",
"source": {
"source": "git-subdir",
"url": "https://github.com/example/codex-plugins.git",
"path": "./plugins/remote-helper",
"ref": "main"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
}Entri berbasis Git dapat menggunakan pemilih ref atau sha. Jika Codex tidak dapat menyelesaikan
sumber entri marketplace, Codex akan melewati entri plugin tersebut tanpa menggagalkan
seluruh marketplace.
Entri marketplace juga dapat menginstal plugin dari registri paket JavaScript:
{
"name": "npm-helper",
"source": {
"source": "npm",
"package": "@example/codex-plugin",
"version": "^1.2.0",
"registry": "https://registry.npmjs.org"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
}package wajib diisi dan dapat menyertakan cakupan registri. version bersifat opsional
dan menerima versi paket, tag distribusi, serta rentang versi, tetapi tidak
menerima pemilih jalur atau URL.
registry bersifat opsional dan harus berupa URL HTTPS tanpa kredensial tersemat,
kueri, atau fragmen. Codex mengunduh paket tanpa menjalankan skrip siklus
hidup. CLI npm harus terinstal, dan autentikasi registri berasal
dari konfigurasinya.
Cara aplikasi desktop ChatGPT menggunakan marketplace
Marketplace plugin adalah katalog plugin dalam format JSON yang dapat dibaca dan diinstal oleh aplikasi desktop ChatGPT.
Aplikasi dapat membaca file marketplace dari:
- marketplace pilihan yang mendukung Direktori Plugin resmi
- marketplace repo di
$REPO_ROOT/.agents/plugins/marketplace.json - marketplace yang kompatibel dengan versi lama di
$REPO_ROOT/.claude-plugin/marketplace.json - marketplace pribadi di
~/.agents/plugins/marketplace.json
Anda dapat menginstal setiap plugin yang tersedia melalui marketplace. Aplikasi menginstal
plugin ke
~/.codex/plugins/cache/$MARKETPLACE_NAME/$PLUGIN_NAME/$VERSION/. Untuk plugin
lokal, $VERSION adalah local, dan aplikasi memuat salinan yang terinstal dari
jalur cache tersebut, bukan langsung dari entri marketplace.
Anda dapat mengaktifkan atau menonaktifkan setiap plugin secara terpisah. Aplikasi menyimpan status aktif
atau nonaktif setiap plugin dalam ~/.codex/config.toml.
Mengemas dan mendistribusikan plugin
Struktur plugin
Setiap plugin memiliki manifes di .codex-plugin/plugin.json. Plugin juga dapat menyertakan
direktori skills/, direktori hooks/ untuk hook siklus hidup, file .app.json
yang mengarah ke satu atau beberapa konektor, file .mcp.json yang
mengonfigurasi server MCP, serta aset yang digunakan untuk menampilkan plugin di berbagai
antarmuka yang didukung.
my-plugin/
├── .codex-plugin/
│ └── plugin.json # Required: plugin manifest
├── skills/
│ └── my-skill/
│ └── SKILL.md # Optional: skill instructions
├── hooks/
│ └── hooks.json # Optional: lifecycle hooks
├── .app.json # Optional: app or connector mappings
├── .mcp.json # Optional: MCP server configuration
└── assets/ # Optional: icons, logos, screenshotsHanya plugin.json yang berada di dalam .codex-plugin/. Pertahankan skills/, hooks/,
assets/, .mcp.json, dan .app.json di root plugin.
Plugin yang diterbitkan biasanya menggunakan manifes yang lebih lengkap daripada contoh minimal yang muncul dalam kerangka mulai cepat. Manifes memiliki tiga fungsi:
- Mengidentifikasi plugin.
- Mengarah ke komponen yang disertakan, seperti skill, konektor, server MCP, atau hook.
- Menyediakan metadata antarmuka instalasi, seperti deskripsi, ikon, dan tautan hukum.
Berikut contoh manifes lengkap:
{
"name": "my-plugin",
"version": "0.1.0",
"description": "Bundle reusable skills and connectors.",
"author": {
"name": "Your team",
"email": "team@example.com",
"url": "https://example.com"
},
"homepage": "https://example.com/plugins/my-plugin",
"repository": "https://github.com/example/my-plugin",
"license": "MIT",
"keywords": ["research", "crm"],
"skills": "./skills/",
"mcpServers": "./.mcp.json",
"apps": "./.app.json",
"hooks": "./hooks/hooks.json",
"interface": {
"displayName": "My Plugin",
"shortDescription": "Reusable skills and connectors",
"longDescription": "Distribute skills and connectors together.",
"developerName": "Your team",
"category": "Productivity",
"capabilities": ["Read", "Write"],
"websiteURL": "https://example.com",
"privacyPolicyURL": "https://example.com/privacy",
"termsOfServiceURL": "https://example.com/terms",
"defaultPrompt": [
"Use My Plugin to summarize new CRM notes.",
"Use My Plugin to triage new customer follow-ups."
],
"brandColor": "#10A37F",
"composerIcon": "./assets/icon.png",
"logo": "./assets/logo.png",
"screenshots": ["./assets/screenshot-1.png"]
}
}.codex-plugin/plugin.json adalah titik masuk yang wajib. Bidang manifes lainnya
bersifat opsional, tetapi plugin yang diterbitkan umumnya menggunakannya.
Bidang manifes
Gunakan bidang tingkat atas untuk menentukan metadata paket dan mengarah ke komponen yang disertakan:
name,version, dandescriptionmengidentifikasi plugin.author,homepage,repository,license, dankeywordsmenyediakan metadata penerbit dan penemuan.skills,mcpServers,apps, danhooksmengarah ke komponen yang disertakan secara relatif terhadap root plugin.interfacemengontrol cara antarmuka instalasi menampilkan plugin.
Gunakan objek interface untuk metadata antarmuka instalasi:
displayName,shortDescription, danlongDescriptionmengontrol judul dan teks deskriptif.developerName,category, dancapabilitiesmenambahkan metadata penerbit dan kemampuan.websiteURL,privacyPolicyURL, dantermsOfServiceURLmenyediakan tautan eksternal.defaultPrompt,brandColor,composerIcon,logo, danscreenshotsmengontrol prompt awal dan tampilan visual.
Aturan jalur
- Pertahankan jalur manifes agar relatif terhadap root plugin dan awali dengan
./. - Simpan aset visual seperti
composerIcon,logo, danscreenshotsdi bawah./assets/jika memungkinkan. - Gunakan
skillsuntuk folder skill yang disertakan,appsuntuk.app.json,mcpServersuntuk.mcp.json, danhooksuntuk hook siklus hidup. - Plugin yang diaktifkan dapat menyertakan hook siklus hidup bersama skill, server MCP, dan konektor.
- Jika plugin Anda menyimpan hook di
./hooks/hooks.json, Anda tidak memerlukan entrihooksdalam.codex-plugin/plugin.json; Codex memeriksa file default tersebut secara otomatis.
Server MCP dan hook siklus hidup yang disertakan
mcpServers dapat mengarah ke file .mcp.json yang berisi pemetaan
server langsung atau objek mcp_servers yang dibungkus.
Pemetaan server langsung:
{
"docs": {
"command": "docs-mcp",
"args": ["--stdio"]
}
}Pemetaan server yang dibungkus:
{
"mcp_servers": {
"docs": {
"command": "docs-mcp",
"args": ["--stdio"]
}
}
}Setelah instalasi, pengguna dapat mengaktifkan atau menonaktifkan server MCP yang disertakan dan menyesuaikan
kebijakan persetujuan alat dari konfigurasi Codex mereka tanpa mengedit plugin. Gunakan
plugins.<plugin>.mcp_servers.<server> untuk kebijakan server MCP dengan cakupan plugin:
[plugins."my-plugin".mcp_servers.docs]
enabled = true
default_tools_approval_mode = "prompt"
enabled_tools = ["search"]
[plugins."my-plugin".mcp_servers.docs.tools.search]
approval_mode = "approve"Saat plugin Anda diaktifkan, Codex dapat memuat hook siklus hidup dari plugin Anda bersama hook pengguna, proyek, dan terkelola.
Menginstal atau mengaktifkan plugin tidak otomatis memercayai hook-nya. Hook yang disertakan dalam plugin merupakan hook tidak terkelola, sehingga Codex melewatinya sampai pengguna meninjau dan memercayai definisi hook saat ini.
File hook plugin default adalah hooks/hooks.json:
{
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${PLUGIN_ROOT}/hooks/session_start.py",
"statusMessage": "Loading plugin context"
}
]
}
]
}
}Jika Anda menentukan hooks dalam .codex-plugin/plugin.json, Codex menggunakan entri
manifes tersebut sebagai pengganti hooks/hooks.json default. Bidang manifes dapat berupa
satu jalur, larik jalur, objek hook sebaris, atau larik objek
hook sebaris.
{
"name": "repo-policy",
"hooks": ["./hooks/session.json", "./hooks/tools.json"]
}Jalur hook mengikuti aturan jalur manifes yang sama dengan skills, apps, dan
mcpServers: awali dengan ./, selesaikan secara relatif terhadap root plugin, dan pastikan
tetap berada di dalam root plugin.
Perintah hook plugin menerima variabel lingkungan khusus Codex
PLUGIN_ROOT dan PLUGIN_DATA. PLUGIN_ROOT mengarah ke root plugin yang terinstal,
dan PLUGIN_DATA mengarah ke direktori data plugin yang dapat ditulisi. Codex
juga menetapkan CLAUDE_PLUGIN_ROOT dan CLAUDE_PLUGIN_DATA agar kompatibel dengan
hook plugin yang sudah ada.
Hook plugin menggunakan skema peristiwa yang sama dengan hook biasa. Lihat Hook untuk peristiwa, input, output, peninjauan kepercayaan, dan batasan saat ini yang didukung.
Menerbitkan plugin publik resmi
Untuk menerbitkan plugin agar dapat digunakan secara publik, kirimkan plugin melalui portal pengajuan plugin. Lihat Mengajukan plugin untuk mengetahui proses peninjauan dan penerbitan selengkapnya.