hydro-plugin-overview

Explain Hydro plugin entry points, imports, and minimal package structure.

3|1|Updated Apr 2, 2026
One-click install
npx skills add https://github.com/gtn1024/hydro-dev-skills --skill hydro-plugin-overview
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: hydro-plugin-overview
Source: https://github.com/gtn1024/hydro-dev-skills/tree/main/skills/hydro-plugin-overview
Command: npx skills add https://github.com/gtn1024/hydro-dev-skills --skill hydro-plugin-overview

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

The hydro-plugin-overview skill helps plugin developers understand the core concepts for Hydro plugins, including how to implement entry points (apply(ctx) vs Service class), import conventions, and a minimal working plugin structure.

Core Features & Use Cases

  • Learn how to expose an entry point as either a function or a class.
  • Understand import conventions from the public hydrooj API surface.
  • See a complete minimal example showing routes, UI injection, i18n, and templates.

Quick Start

Create a minimal Hydro plugin that exports apply(ctx) or a Service subclass and verify its routes and initialization in a running Hydro environment.

Frequently Asked Questions about hydro-plugin-overview

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a minimal Hydro plugin package structure?

A Hydro plugin requires a minimal package structure that exports an entry point and follows specific import conventions from the public hydrooj API surface. You can expose functionality using either a simple function or a stateful class.

What is the difference between apply(ctx) and a Service subclass in Hydro?

Hydro plugin entry points can be exposed either as a function using apply(ctx) or as a stateful class inheriting from the Service subclass. The choice depends on whether your plugin needs to maintain state across its lifecycle.

How do I import from hydrooj correctly when developing a plugin?

When developing a Hydro plugin, you must import required modules from the public hydrooj API surface. This ensures you use stable APIs and follow the correct conventions for accessing routes, UI injection, i18n, and templates.

Can I see a complete Hydro plugin example with routes and templates?

Yes, you can view a complete minimal Hydro plugin example that demonstrates practical implementation including routes, UI injection, i18n, and templates. This example helps verify functionality within a running Hydro environment.

Do I need a running Hydro environment to verify my plugin?

Yes, verifying your Hydro plugin requires a running Hydro environment to test its routes and initialization. The skill provides minimal working examples specifically designed for verification in an active deployment.

When should I use a stateful class-style Hydro plugin over a function?

You should use a stateful class-style Hydro plugin when your plugin needs to maintain state across its lifecycle. Function-style plugins using apply(ctx) are suitable for simpler scenarios without state requirements.