@tryvienna/cli
v0.0.2
Published
Vienna plugin development CLI — scaffold fully-typed plugins from a single command
Downloads
217
Maintainers
Readme
@tryvienna/cli
The official CLI for Vienna plugin development. Scaffold fully-typed plugin projects from a single command.
Quick Start
npx @tryvienna/cli plugin scaffold --name=my-plugin --auth=oauth --entity=task
cd plugins/my-plugin && pnpm install
pnpm typecheckUsage
vcli plugin scaffold [options]| Option | Description | Default |
|--------|-------------|---------|
| --name <name> | Plugin name (kebab-case, required) | — |
| --canvas <types> | Canvases: sidebar, drawer, menu-bar | sidebar,drawer |
| --entity <names> | Entity types (comma-separated) | — |
| --auth <type> | Auth: oauth, pat, api-key, none | none |
| --description <text> | Plugin description | A Vienna plugin |
| --dry-run | Preview files without writing | false |
| --output <dir> | Override output directory | auto-detect |
Examples
# Minimal sidebar plugin
vcli plugin scaffold --name=my-plugin
# OAuth plugin with entities and all canvases
vcli plugin scaffold \
--name=acme \
--canvas=sidebar,drawer,menu-bar \
--entity=task,comment \
--auth=oauth
# Menu-bar widget with API key auth
vcli plugin scaffold \
--name=weather \
--canvas=menu-bar \
--auth=api-key \
--entity=forecast
# Preview without writing
vcli plugin scaffold --name=test --dry-runWhat Gets Generated
A complete plugin project with 11–21 files depending on options:
- Config —
package.json,tsconfig.json,codegen.ts - Core — Plugin definition, integration hooks, GraphQL schema, API client
- Entities — Entity definitions, URI resolvers, GraphQL operations
- UI — Sidebar nav, drawers, menu-bar icon/content, settings, per-entity drawers
All generated code is fully typed and passes pnpm typecheck immediately.
Documentation
License
Apache-2.0
