Back to Eliza

elizaOS Plugin

packages/elizaos/templates/plugin/README.md

2.0.12.4 KB
Original Source

elizaOS Plugin

This is an elizaOS plugin built with the official plugin starter template.

Getting Started

bash
bun install
bun run build
bun run test

To create another plugin with the CLI:

bash
elizaos create my-plugin --template plugin

The generated directory and package name keep the plugin convention. For example, my-plugin becomes plugin-my-plugin.

Development

bash
# Rebuild on changes
bun run dev

# Run component and E2E test files
bun run test

# Run only component tests
bun run test:component

# Run only E2E test files
bun run test:e2e

# Type-check the plugin
bun run typecheck

Layout

text
src/
  plugin.ts             # Plugin definition, actions, providers, and services
  e2e/                  # E2E-style plugin test suites
  __tests__/            # Vitest component and integration tests
  frontend/             # Optional plugin UI example

Publishing

This template does not rely on a CLI publish command. Use standard npm and git workflows when the plugin is ready:

bash
npm login
npm version patch
npm publish
git push origin main --tags

Before publishing, update package.json, this README, and any images or metadata your plugin requires.

Configuration

The agentConfig section in package.json declares every environment variable or runtime parameter your plugin needs. Eliza reads this when installing the plugin and prompts the operator for any required value at first run. Add as many entries as you need; the schema for each entry is:

FieldRequiredNotes
typeyes"string", "number", or "boolean". Numbers and booleans are coerced.
descriptionyesShown in the onboarding prompt. Be explicit about what the value is for.
defaultValuenoProvided when the operator does not enter a value. Omit for secrets.
sensitivenoWhen true, Eliza hides the value in logs and config dumps. Use for keys/tokens.
json
"agentConfig": {
  "pluginType": "elizaos:plugin:1.0.0",
  "pluginParameters": {
    "API_KEY": {
      "type": "string",
      "description": "Secret API key for the service. Required at runtime; do not commit values."
    },
    "BASE_URL": {
      "type": "string",
      "description": "Base URL of the service the plugin talks to. Override per environment.",
      "defaultValue": "https://api.example.com"
    }
  }
}