create-kt-plugin
Version:
A template for creating a KT plugins for ExtendScript
170 lines (119 loc) โข 4.94 kB
Markdown

# Create KT Plugin
[](https://badge.fury.io/js/create-kt-plugin)
[](https://opensource.org/licenses/ISC)
A CLI tool for creating KT (KT Framework) plugins for Adobe ExtendScript applications. This template generator creates a structured project with TypeScript support, testing capabilities, and build configurations optimized for Adobe Creative Suite applications.
## ๐ Quick Start
Create a new KT plugin project instantly:
```bash
npx create-kt-plugin
```
Or install globally:
```bash
npm install -g create-kt-plugin
create-kt-plugin
```
## ๐ What You'll Get
The CLI will prompt you for:
- **Plugin Name**: The name of your plugin (alphanumeric and hyphens only)
- **Target Program**: Choose from:
- After Effects
- ExtendScript (generic)
- Photoshop
- Premiere Pro
- Illustrator
- **App Version**: Automatically detects available versions for your chosen program
- **Author**: Your name
- **Description**: Brief description of your plugin
- **Install Dependencies**: Whether to automatically install npm dependencies
## ๐๏ธ Project Structure
The generated project includes:
```
your-plugin-name/
โโโ src/
โ โโโ index.ts # Main entry point
โ โโโ YourPlugin.ts # Main plugin class
โ โโโ tests/
โ โโโ index.test.ts # Unit tests
โโโ dist/ # Compiled output
โโโ package.json # Dependencies and scripts
โโโ tsconfig.json # TypeScript configuration
โโโ tsconfig.tests.json # TypeScript config for tests
โโโ vite.config.ts # Vite build configuration
โโโ vite.es.config.ts # ExtendScript-specific build config
```
## ๐ง Available Scripts
The generated project comes with these npm scripts:
- `npm run build` - Build the plugin for production
- `npm run watch` - Build and watch for changes during development
- `npm run build-tests` - Build test files
- `npm run prepublishOnly` - Pre-publish build process
- `npm run postpublish` - Post-publish cleanup
## ๐งช Testing
The template includes a testing framework with:
- **kt-testing-suite-ts**: TypeScript testing suite for KT plugins
- Pre-configured test structure
- Example tests for your plugin class
Run tests with:
```bash
npm run build-tests
```
## ๐ ๏ธ Technology Stack
- **TypeScript**: Full TypeScript support with proper Adobe types
- **Vite**: Modern build tool with fast development
- **KT Core**: KT framework for plugin architecture
- **types-for-adobe**: Adobe application type definitions
- **Babel**: JavaScript compilation and transformation
- **Rollup**: Module bundling
## ๐ฆ Dependencies
### Core Dependencies
- `kt-core`: KT framework core functionality
### Development Dependencies
- TypeScript compiler and tooling
- Vite build system with plugins
- Adobe types from `types-for-adobe`
- Testing suite (`kt-testing-suite-core`)
- Build tools (Babel, Rollup plugins)
## ๐ฏ Target Applications
This template supports creating plugins for:
- **After Effects**: Motion graphics and visual effects
- **Photoshop**: Image editing and manipulation
- **Premiere Pro**: Video editing
- **Illustrator**: Vector graphics
- **Generic ExtendScript**: Cross-application scripts
## ๐ Features
- **Interactive CLI**: User-friendly prompts for project setup
- **TypeScript Support**: Full type safety and IntelliSense
- **Hot Reload**: Development with watch mode
- **Testing Framework**: Built-in testing capabilities
- **Adobe Types**: Automatic inclusion of appropriate Adobe application types
- **Modern Build Tools**: Vite + Rollup for optimized builds
- **KT Framework Integration**: Built on the KT plugin architecture
## ๐ Example Usage
After creating your plugin, the basic structure looks like:
```typescript
// src/YourPlugin.ts
export class YourPlugin {
private name = "YourPlugin";
private version = "1.0.0";
constructor() {
$.writeln("YourPlugin constructor");
}
}
// src/index.ts
import { KT } from "kt-core";
import { YourPlugin } from "./YourPlugin";
KT.Module("YourPlugin", YourPlugin);
export { YourPlugin };
```
## ๐ฆ Requirements
- **Node.js**: Version 14.0.0 or higher
- **npm**: For package management
## ๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## ๐ License
This project is licensed under the ISC License.
## ๐จโ๐ป Author
Miguel de Mendoza
---
**Happy coding with KT plugins!** ๐