Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/pixlcore/xyops/llms.txt

Use this file to discover all available pages before exploring further.

The xyOps Plugin Marketplace lets you discover and install community plugins to extend the platform. Plugins are cloud-hosted code libraries that self-download and execute, with metadata for discovery and configuration.
The marketplace doesn’t host plugins directly—it provides a search mechanism. Plugins are hosted on package repositories like NPM, PyPI, or GitHub.

Discovering plugins

Access the marketplace by clicking Marketplace in the sidebar. Browse available plugins and view:
  • Plugin description and use cases
  • Installation command
  • Required dependencies
  • Author and source repository
  • Ratings and downloads

Installing a plugin

1

Find a plugin

Browse the marketplace or search by keyword. Click a plugin to view details.
2

Click Install

xyOps downloads the plugin metadata and creates a plugin entry in your system.
3

Configure parameters

Set required parameters like API keys, endpoints, or script templates.
4

Create an event

Create a new event and select your installed plugin as the event plugin.

Publishing plugins

Share your custom plugins with the xyOps community by publishing to the marketplace.

Requirements

Your plugin must:
  • Be free to use - No purchase required (free tier of paid services is okay)
  • Be hosted on GitHub - Public repository with tagged releases
  • Have a launch command - Self-download and execute (npx, uvx, go run, docker run)
  • Use OSI-approved license - Open source with OSI-approved license
  • Declare data collection - Document any user data or metrics collected
  • Be legal and family-friendly - No violations of law or terms of service
PixlCore reserves the right to reject any plugin submission deemed inappropriate.

Launch commands

Your plugin must support self-download and execution in a single command.
npx -y @myorg/xyplug-example@1.0.0
Or directly from GitHub:
npx -y github:myorg/xyplug-example#v1.0.0
See xyplug-sample-npx for a working example.

Plugin metadata

Export your plugin from the xyOps UI to generate metadata in xyOps Portable Data Format.
1

Create and test your plugin

Build your plugin locally and test it with events. Ensure it works reliably and handles errors gracefully.
2

Export plugin data

On the Plugin Edit screen, click Export… to download XYPDF metadata.
{
  "type": "xypdf",
  "version": "1.0",
  "items": [
    {
      "type": "plugin",
      "data": {
        "id": "pmb6q7bh3hy",
        "title": "Upload S3 File",
        "type": "event",
        "command": "npx -y github:myorg/xyplug-upload-s3-file#v1.0.0",
        "params": [
          {
            "id": "region",
            "title": "Region ID",
            "type": "text",
            "required": true
          }
        ]
      }
    }
  ]
}
3

Add metadata to repository

Save the XYPDF file as xyops-plugin.json in your repository root. Tag a release version.
4

Submit to marketplace

Open a pull request to the xyops-marketplace repository with your plugin metadata.

README requirements

Your repository must include a README.md with:
  • Description - What the plugin does and key use cases
  • Installation - How to install from the marketplace
  • Configuration - Parameter descriptions and examples
  • Requirements - Dependencies (Node.js version, external tools, etc.)
  • Usage examples - Real-world scenarios
  • Data collection notice - If applicable, describe what data is collected
  • License - Link to your OSI-approved license

Marketplace configuration

xyOps administrators can configure the marketplace in config.json:
"marketplace": {
  "enabled": true,
  "metadata_url": "https://raw.githubusercontent.com/pixlcore/xyops-marketplace/refs/heads/main/marketplace.json",
  "repo_url_template": "https://raw.githubusercontent.com/[id]/refs/tags/[version]/[filename]",
  "ttl": 3600
}
From ~/workspace/source/sample_conf/config.json:129-135.
enabled
boolean
Enable or disable the marketplace feature
metadata_url
string
URL to the marketplace index (JSON file listing all plugins)
repo_url_template
string
Template for fetching plugin files from repositories
ttl
number
Cache time-to-live in seconds for marketplace metadata

Plugin examples

Database backup

Automated database dumps to S3 with encryption and rotation

API monitoring

Custom monitor plugin for tracking API response times and error rates

Slack notifier

Rich Slack notifications with job details and server metrics

Video transcoding

FFmpeg-based video processing with progress tracking

Git deployer

Automated Git pulls and deployment hooks for continuous delivery

Log aggregator

Collect and ship logs to external services like Elasticsearch

Security considerations

Marketplace plugins execute code on your servers. Only install plugins from trusted sources.

Before installing a plugin:

  1. Review the source code - Check the GitHub repository for malicious code
  2. Check the license - Ensure it’s OSI-approved and compatible with your use case
  3. Verify dependencies - Review what packages the plugin installs
  4. Read the README - Understand what data is collected and where it’s sent
  5. Test in staging - Install in a non-production environment first

Plugin permissions

Plugins run with the same permissions as the xySat worker process. They can:
  • Read and write files in the job temp directory
  • Execute system commands
  • Access network resources
  • Read environment variables (including secrets assigned to the plugin)
Plugins cannot directly:
  • Modify other jobs’ files
  • Access the xyOps database
  • Change system configuration
  • Execute code outside their temp directory

Troubleshooting

Check requirements: Ensure the target servers have the required runtime (Node.js, Python, Go, Docker).Verify network access: Plugins download from external repositories. Check firewall rules and airgap settings.Check logs: Review /opt/xyops/logs/Error.log for installation errors.
Test the launch command: Run the plugin command manually on a target server to see raw errors.Check parameter values: Ensure required parameters are set and valid.Review job logs: Job logs show STDOUT/STDERR from the plugin for debugging.
Check secrets: If the plugin uses secrets, ensure they’re assigned and accessible.Verify external services: Test connectivity to APIs or databases the plugin depends on.Update the plugin: Check if a newer version fixes the issue.

See also

Build docs developers (and LLMs) love