Programtillegg
Skriv dine egne programtillegg for å utvide OpenCode.
Plugins lar deg utvide OpenCode ved å koble til ulike hendelser og tilpasse atferd. Du kan lage plugins for å legge til nye funksjoner, integrere med eksterne tjenester eller endre standardoppførselen til OpenCode.
For eksempler, sjekk ut plugins opprettet av fellesskapet.
Bruk av en plugin
Det er to måter å laste inn plugins.
Fra lokale filer
Plasser JavaScript- eller TypeScript-filer i plugin-katalogen.
.opencode/plugins/- Programtillegg på prosjektnivå~/.config/opencode/plugins/- Globale plugins
Filer i disse katalogene lastes automatisk ved oppstart.
Fra npm
Spesifiser npm-pakker i konfigurasjonsfilen.
{ "$schema": "https://opencode.ai/config.json", "plugin": ["opencode-helicone-session", "opencode-wakatime", "@my-org/custom-plugin"]}Både vanlige og scoped npm-pakker støttes.
Bla gjennom tilgjengelige plugins i økosystemet.
Hvordan plugins installeres
npm-plugins installeres automatisk ved hjelp av Bun ved oppstart. Pakker og deres avhengigheter er bufret i ~/.cache/opencode/node_modules/.
Lokale plugins lastes direkte fra plugin-katalogen. For å bruke eksterne pakker, må du opprette en package.json i konfigurasjonskatalogen din (se Dependencies), eller publisere plugin-en til npm og legg den til i konfigurasjonen din.
Lasterekkefølge
Plugins lastes inn fra alle kilder og alle kroker kjøres i rekkefølge. Lastrekkefølgen er:
- Global konfigurasjon (
~/.config/opencode/opencode.json) - Prosjektkonfigurasjon (
opencode.json) - Global plugin-katalog (
~/.config/opencode/plugins/) - Prosjektpluginkatalog (
.opencode/plugins/)
Dupliserte npm-pakker med samme navn og versjon lastes inn én gang. Imidlertid lastes en lokal plugin og en npm plugin med lignende navn begge separat.
Opprette en plugin
En plugin er en JavaScript/TypeScript-modul som eksporterer en eller flere plugin-moduler funksjoner. Hver funksjon mottar et kontekstobjekt og returnerer et krokobjekt.
Avhengigheter
Lokale plugins og tilpassede verktøy kan bruke eksterne npm-pakker. Legg til en package.json til konfigurasjonskatalogen med avhengighetene du trenger.
{ "dependencies": { "shescape": "^2.1.0" }}OpenCode kjører bun install ved oppstart for å installere disse. Programtilleggene og verktøyene dine kan deretter importere dem.
import { escape } from "shescape"
export const MyPlugin = async (ctx) => { return { "tool.execute.before": async (input, output) => { if (input.tool === "bash") { output.args.command = escape(output.args.command) } }, }}Grunnleggende struktur
export const MyPlugin = async ({ project, client, $,