Getting Started
Create a Vue plugin with a Java, Python, or Go Worker:
fengyu init ./my-plugin --id com.example.my-plugin --runtime java
cd my-pluginChoose --runtime python or --runtime go for those Worker SDKs. FengYu requires Python 3.12+ or Go 1.26+ to build them. Use --no-install to skip dependency installation or --ui-only to omit the worker. The generated project follows the Toolchain 2 standard layout:
my-plugin/
├── manifest.base.json
├── manifest/
│ ├── flow-nodes.json
│ └── i18n/
├── mvnw, mvnw.cmd
├── .mvn/
├── ui-src/
│ ├── package.json
│ ├── vite.config.ts
│ └── src/
└── worker/
├── pom.xml
├── src/main/java/…
└── src/test/java/…/PluginDevMain.javaWorker projects are code-first: the language contract owns RPC schemas and the short manifest.base.json owns package metadata. fengyu generate merges them into target/fengyu-manifest/manifest.json; do not edit that generated file. The CLI uses npm's dev, optional test, and build scripts, plus the Maven test and package lifecycle. The Java worker build must emit one worker/target/*-worker.jar. Python scaffolds use worker/worker.py plus a vendored fengyu_plugin_sdk; Go scaffolds use worker/main.go plus the vendored SDK module and build one native executable. Packaging normalizes them to backend/worker.py and backend/worker[.exe].
Run the UI simulator through the unified command:
fengyu devAlso start the real development Worker: debug Java PluginDevMain.main() in the IDE, run python3 worker.py --dev, or run go run . --dev from worker/. Each exposes the same handlers over an authenticated loopback TCP endpoint. Open http://127.0.0.1:5173/__fengyu for the simulator.
Check and package the project:
fengyu check
fengyu buildThe package and checksum are written to dist/<id>-<version>.fyp[.sha256]. Install the .fyp through the host marketplace UI. See SDK & CLI and Build & Deploy for the contracts.