@eonium/cli
v0.5.4
Published
Command-line interface for explicit Eonium Compass init, product setup, validation and FlutterFlow-to-Flutter scaffold orchestration.
Readme
@eonium/cli
Command-line entrypoint for Eonium Compass.
This package is intentionally small in v0. It parses commands, chooses dry-run/write mode, routes product setup through package APIs, and reports changes. Product-specific templates and reusable implementation logic stay in their owning packages.
For the complete FlutterFlow-to-Flutter user workflow, read the central guide at ../../docs/flutterflow-to-flutter-migration.md.
Commands
eonium doctor
eonium init --dry-run
eonium init --yes
eonium init --dry-run --mode flutterflow-to-flutter
eonium init --yes --mode flutterflow-to-flutter
eonium tools listTarget repo versus repo-local usage
Target repos that consume the published package should use the installed npm CLI surface:
npx eonium init --dry-run
npx eonium init --yes
npx eonium init --dry-run --mode flutterflow-to-flutter
npx eonium init --yes --mode flutterflow-to-flutterInside the Eonium monorepo, build first and use the repo-local npm script:
npm run build
npm run eonium -- init --dry-run
npm run eonium -- init --yes
npm run eonium -- init --dry-run --mode flutterflow-to-flutter
npm run eonium -- init --yes --mode flutterflow-to-flutterDo not document direct packages/cli/dist paths as the supported user surface. The target-repo path is npx eonium ...; the repo-local development path is npm run eonium -- ....
FlutterFlow-to-Flutter migration scaffold mode
The current npm/TypeScript wedge for the FlutterFlow-to-Flutter workflow is:
npx eonium init --dry-run --mode flutterflow-to-flutter
npx eonium init --yes --mode flutterflow-to-flutter--dry-run previews the files and config changes that would be created, updated, skipped or warned without writing the target repo. --yes writes the scaffold files. If neither write flag is supplied, init defaults to dry-run and warns instead of writing, so package installation and exploratory commands remain non-mutating.
The FlutterFlow-to-Flutter mode writes the normal .eonium Compass foundation, records the migration mode and pointers in eonium.config.json, and orchestrates these existing scaffold surfaces:
.eonium/compass/sherpa/frontend/
.eonium/compass/sherpa/business/
.eonium/compass/ff_migrator/
.eonium/compass/create/
.eonium/compass/portability/migrations/flutterflow_to_flutter/The grouped setup keeps package boundaries intact:
@eonium/compass-fe-sherpagenerates long-lived target frontend truth scaffolds.@eonium/compass-business-sherpagenerates durable business-behaviour truth scaffolds.@eonium/ff-migratorgenerates the FlutterFlow-specific migration cockpit, prompt packs, graph schemas, seed graphs and logs.@eonium/compass-creategenerates placeholder work-loop folders for specs, plans, runs, overlays, validation and finalization notes.@eonium/compass-migrategenerates Portability/Migrate placeholders for FlutterFlow-to-Flutter status, provider coupling and compatibility planning.
After setup, users either upload the target Flutter repo ZIP plus the FlutterFlow export ZIP to ChatGPT, Codex, Claude or a similar external AI workflow, or open the checked-out repo in a repo-local coding agent. In both modes the AI or human worker should read .eonium/compass/ff_migrator/LLMsherpa.md first, then use FE Sherpa and Business Sherpa for durable truth and FF Migrator for migration-specific state.
Eonium does not call ChatGPT, Claude, Codex, OpenAI, Anthropic or any BYOK provider. This mode creates repo-local instructions, prompt packs, graph/log scaffolds, validation notes and configuration pointers for humans or external tools. It does not analyze a FlutterFlow export, automatically convert UI code, generate target Flutter app code or migrate an app by itself.
Changelog commit helper
eonium init --yes installs the expandable Eonium tools area and writes:
tools/sherpa-changelog.mjsThat means a Compass-managed target repo can use this immediately:
git commit -m "$(node tools/sherpa-changelog.mjs commit-message)"The tool is generated from packages/cli/templates/tools/sherpa-changelog.mjs and registered in the CLI tool registry so later tools can be added without changing the init command shape.
