{"id":40204029,"url":"https://github.com/halo-dev/create-halo-plugin","last_synced_at":"2026-01-19T20:34:46.312Z","repository":{"id":300325428,"uuid":"1005907841","full_name":"halo-dev/create-halo-plugin","owner":"halo-dev","description":"Quickly create Halo plugin development templates","archived":false,"fork":false,"pushed_at":"2025-12-24T15:27:10.000Z","size":284,"stargazers_count":12,"open_issues_count":0,"forks_count":5,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-26T06:30:45.074Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/halo-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-21T04:13:41.000Z","updated_at":"2025-12-24T15:26:42.000Z","dependencies_parsed_at":"2025-06-24T04:37:10.852Z","dependency_job_id":null,"html_url":"https://github.com/halo-dev/create-halo-plugin","commit_stats":null,"previous_names":["halo-sigs/create-halo-plugin","halo-dev/create-halo-plugin"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/halo-dev/create-halo-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halo-dev%2Fcreate-halo-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halo-dev%2Fcreate-halo-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halo-dev%2Fcreate-halo-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halo-dev%2Fcreate-halo-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/halo-dev","download_url":"https://codeload.github.com/halo-dev/create-halo-plugin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halo-dev%2Fcreate-halo-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28583885,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T19:46:29.903Z","status":"ssl_error","status_checked_at":"2026-01-19T19:45:54.560Z","response_time":67,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-19T20:34:46.237Z","updated_at":"2026-01-19T20:34:46.289Z","avatar_url":"https://github.com/halo-dev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# create-halo-plugin\n\nEnglish | [简体中文](README.zh-CN.md)\n\n🚀 Quickly create Halo plugin development templates\n\nA scaffolding tool for creating [Halo](https://www.halo.run) plugin projects with modern development setup.\n\n## Features\n\n- 🎯 **Interactive CLI** - Guided project setup with prompts\n- 🏗️ **Modern Build Tools** - Choose between Vite or Rsbuild for UI development\n- 📦 **Complete Project Structure** - Pre-configured Gradle build, UI setup, and plugin manifest\n- 📝 **TypeScript Support** - Full TypeScript configuration for UI development\n\n## Quick Start\n\nCreate a new Halo plugin project using any of the following commands:\n\n```bash\n# npm\nnpm create halo-plugin\nnpm create halo-plugin my-plugin\n\n# pnpm (recommended)\npnpm create halo-plugin\npnpm create halo-plugin my-plugin\n\n# yarn\nyarn create halo-plugin\nyarn create halo-plugin my-plugin\n\n# npx\nnpx create-halo-plugin\nnpx create-halo-plugin my-plugin\n```\n\n## Usage Examples\n\n### Create with auto-generated directory name\n\n```bash\npnpm create halo-plugin\n# Creates a directory named \"plugin-{your-plugin-name}\"\n```\n\n### Create in a specific directory\n\n```bash\npnpm create halo-plugin my-awesome-plugin\n# Creates the project in \"./my-awesome-plugin\" directory\n```\n\n### Interactive Setup\n\nThe CLI will guide you through the setup process:\n\n```bash\n🚀 Welcome to Halo Plugin Creator!\n\n✔ Plugin name: › my-awesome-plugin\n✔ Domain (for group and package name): › com.example\n✔ Author name: › John Doe\n✔ Include UI project? › yes\n✔ Choose UI build tool: › Vite\n\n📋 Project Configuration:\n   Name: my-awesome-plugin\n   Domain: com.example\n   Package: com.example.myawesomeplugin\n   Author: John Doe\n   Include UI: Yes\n   UI Tool: vite\n   Output Directory: /path/to/my-awesome-plugin\n\n✔ Create project? › yes\n```\n\n### Creating Backend-Only Plugins\n\nIf your plugin doesn't need a user interface, you can skip UI project creation via command line:\n\n```bash\npnpm create halo-plugin my-backend-plugin --name=my-backend-plugin --domain=com.example --author=\"John Doe\" --includeUI=false\n```\n\nOr select \"no\" when prompted to include a UI project during interactive setup.\n\n## Project Structure\n\n### Full Project with UI\n\n```bash\nmy-plugin/\n├── src/\n│   ├── main/\n│   │   ├── java/\n│   │   │   └── com/example/myplugin/\n│   │   │       └── MyPluginPlugin.java\n│   │   └── resources/\n│   │       ├── plugin.yaml\n│   │       └── logo.png\n│   └── test/\n│       └── java/\n│           └── com/example/myplugin/\n│               └── MyPluginPluginTest.java\n├── ui/\n│   ├── src/\n│   │   ├── index.ts\n│   │   ├── views/\n│   │   └── assets/\n│   ├── package.json\n│   ├── vite.config.ts (or rsbuild.config.ts)\n│   └── tsconfig.json\n├── build.gradle\n├── settings.gradle\n├── gradlew\n└── README.md\n```\n\n### Backend-Only Project (without UI)\n\n```bash\nmy-plugin/\n├── src/\n│   ├── main/\n│   │   ├── java/\n│   │   │   └── com/example/myplugin/\n│   │   │       └── MyPluginPlugin.java\n│   │   └── resources/\n│   │       ├── plugin.yaml\n│   │       └── logo.png\n│   └── test/\n│       └── java/\n│           └── com/example/myplugin/\n│               └── MyPluginPluginTest.java\n├── build.gradle\n├── settings.gradle\n├── gradlew\n└── README.md\n```\n\n## Development\n\n### Projects with UI\n\nAfter creating your project:\n\n```bash\n# Navigate to your project\ncd my-plugin\n\n# Start Halo development server\n./gradlew haloServer\n\n# In another terminal, start UI development\ncd ui\npnpm dev\n```\n\n### Backend-Only Projects\n\nFor projects without UI:\n\n```bash\n# Navigate to your project\ncd my-plugin\n\n# Start Halo development server\n./gradlew haloServer\n```\n\n## Requirements\n\n- **Node.js** \u003e= 18.0.0\n- **Java** \u003e= 21\n- **Halo** \u003e= 2.21.0\n\n## Plugin Name Rules\n\nPlugin names must follow this pattern:\n\n- Start and end with alphanumeric characters (a-z, 0-9)\n- Can contain hyphens (-) and dots (.) in the middle\n- Only lowercase letters allowed\n- Examples: `my-plugin`, `blog.comment`, `user-management`\n\n## UI Build Tools\n\nChoose between two modern build tools:\n\n### Vite\n\n- 🔧 Simple configuration\n- 📦 Optimized builds\n\n### Rsbuild\n\n- 🚀 Rspack-based for speed\n- 🛠️ Rich plugin ecosystem\n- 📊 Better build performance\n- 📦 Code splitting, suitable for larger plugin projects\n\n## Command Line Options\n\n```bash\n# Show help\nnpx create-halo-plugin --help\n\n# Show version\nnpx create-halo-plugin --version\n\n# Create project with command line arguments\nnpx create-halo-plugin my-plugin \\\n  --name=my-plugin \\\n  --domain=com.example \\\n  --author=\"John Doe\" \\\n  --includeUI \\\n  --uiTool=rsbuild\n\n# Create backend-only project\nnpx create-halo-plugin my-backend-plugin \\\n  --name=my-backend-plugin \\\n  --domain=com.example \\\n  --author=\"John Doe\" \\\n  --includeUI=false\n```\n\nAvailable options:\n- `-n, --name \u003cname\u003e` - Plugin name\n- `-d, --domain \u003cdomain\u003e` - Domain for group and package name\n- `-a, --author \u003cauthor\u003e` - Author name\n- `-i, --includeUI` - Include UI project\n- `-u, --uiTool \u003ctool\u003e` - UI build tool (rsbuild or vite, required when includeUI is true)\n- `-h, --help` - Show help message\n- `-v, --version` - Show version number\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n## License\n\n[GPL-3.0](LICENSE) © [Halo](https://github.com/halo-dev)\n\n## Related\n\n- [Halo](https://www.halo.run) - Powerful and easy-to-use open source website builder\n- [Halo Documentation](https://docs.halo.run) - Official documentation\n- [Plugin Development Guide](https://docs.halo.run/developer-guide/plugin/introduction)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalo-dev%2Fcreate-halo-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhalo-dev%2Fcreate-halo-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalo-dev%2Fcreate-halo-plugin/lists"}