Claude Skills
CollectionsCompareWorkflowsNominate
Sign inSign up
© 2026 Curated Agent Skills·Learn more about Agent Skills
Back to repository

hyper-plugins

verified

This skill should be used when the user asks to "create hyper plugin", "hyper plugin", "hyper extension", "decorateConfig", "hyper middleware", "hyper redux", "hyper react", "hyper electron", "hyper api", or mentions developing plugins for Hyper terminal.

View on GitHub

Marketplace

functional-claude

nthplusio/functional-claude

Plugin

hyper-dev

Repository
Verified Org

nthplusio/functional-claude

plugins/hyper-dev/skills/hyper-plugins/SKILL.md

Last Verified

February 2, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/nthplusio/functional-claude/blob/main/plugins/hyper-dev/skills/hyper-plugins/SKILL.md -a claude-code --skill hyper-plugins

Installation paths:

Claude
.claude/skills/hyper-plugins/
Powered by add-skill CLI

Instructions

# Hyper Plugin Development

Develop plugins for Hyper terminal using JavaScript, React, and Redux.

## Plugin Architecture

Hyper plugins are npm packages that run in both Electron main process and renderer. They use a composition-based API with decorators and hooks.

## Plugin Structure

```
hyper-plugin-name/
├── package.json        # npm package manifest
├── index.js           # Main entry point
├── README.md          # Documentation
└── lib/               # Optional: additional modules
```

## package.json

```json
{
  "name": "hyper-your-plugin",
  "version": "1.0.0",
  "description": "Brief description",
  "main": "index.js",
  "keywords": ["hyper", "hyper-plugin"],
  "author": "Your Name",
  "license": "MIT"
}
```

**Required:** The `hyper` keyword is needed for plugin discovery.

## Configuration Decoration

### decorateConfig

Modify user configuration:

```javascript
exports.decorateConfig = (config) => {
  return Object.assign({}, config, {
    // Your config modifications
    myPluginOption: config.myPluginOption || 'default',
  });
};
```

Always preserve user config with spread:
```javascript
exports.decorateConfig = (config) => ({
  ...config,
  css: `${config.css || ''} .custom { color: red; }`,
});
```

## Lifecycle Hooks

### onApp
Called when Electron app is ready:
```javascript
exports.onApp = (app) => {
  app.on('before-quit', () => {
    // Cleanup
  });
};
```

### onWindow
Called when window is created:
```javascript
exports.onWindow = (window) => {
  window.on('focus', () => {
    // Handle window focus
  });
};
```

### onUnload
Called before plugin is unloaded:
```javascript
exports.onUnload = (window) => {
  // Cleanup resources, remove listeners
};
```

## Component Decorators

### decorateTerm
Wrap the terminal component:
```javascript
exports.decorateTerm = (Term, { React, notify }) => {
  return class extends React.Component {
    render() {
      return React.createElement(Term, this.props);
    }
  };
};
```

### Other Decorators
- 

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
3561 chars