magickit_cli 1.0.3
magickit_cli: ^1.0.3 copied to clipboard
MagicKit CLI — development tools & code generator untuk Flutter.
magickit_cli #
MagicKit CLI - development tools & code generator untuk Flutter.
Install #
Aktifkan secara global:
dart pub global activate magickit_cli
Untuk development dari monorepo:
dart pub global activate --source path packages/magickit_cli
Usage #
magickit <command> [arguments]
magickit <command> --help
Commands #
doctor #
Cek environment (Flutter/Dart), dependency, dan konfigurasi.
magickit doctor
init #
Generate magickit.yaml dan struktur folder project.
magickit init
page #
Generate page + routing di dalam feature.
magickit page <feature> <page>
magickit page auth login --path-params id
magickit page product detail --query-params sort,rating
Options:
--path-paramsparameter path (comma-separated)--query-paramsparameter query (comma-separated)
api #
Generate full-stack feature code dari folder remote/.
magickit api
magickit api <feature>
magickit api <feature> <page>
magickit api --force --verbose
Options:
--forceoverwrite file yang sudah ada--dry-runsimulasi tanpa menulis file--verbosedetail resolusi (ref/type)
assets #
Scan assets/ dan generate MagicAssets.
magickit assets
Konfigurasi lewat magickit.yaml:
assets.inputassets.outputassets.excludeassets.groupassets.strip_prefix
l10n #
Scan assets/l10n/ dan generate AppLocalizations.
magickit l10n
Konfigurasi lewat magickit.yaml:
l10n.inputl10n.outputl10n.default_locale
component #
Scaffold komponen baru mengikuti MagicKit convention.
magickit component rating_star --type atom
magickit component card_promo --type molecule --output lib/core/components/src
Options:
--type(atom|molecule|organism) wajib--outputbase output directory--packagenama package untuk ThemeExtension (defaultmagickit)
registry #
Scan annotations dan generate registry + AI bundle.
magickit registry
magickit registry --source lib/ --output lib/src/registry/
magickit registry --no-ai-bundle
Options:
--sourcedirektori source code--outputdirektori output--ai-bundle(default on), pakai--no-ai-bundleuntuk disable
registry #
Scan annotations dan generate registry + AI context bundle.
magickit registry
magickit registry --source lib/ --output lib/src/registry/
magickit registry --no-ai-bundle
Options:
--sourcedirektori source code--outputdirektori output--ai-bundle(default on), pakai--no-ai-bundleuntuk disable
Output:
component_registry.yaml— machine-readable component listai_context_bundle.md— AI context dengan constructor signatures, types, dan tags
slicing #
Konversi gambar/Figma menjadi Flutter code via AI.
# Generate prompt file untuk upload manual ke AI
magickit slicing prompt "slicing ui home page"
magickit slicing prompt "slicing ui login form"
# Direct ke AI dari gambar
magickit slicing image --source ui.png
magickit slicing image --source ui.png --provider gemini
# Direct ke AI dari Figma MCP selection
magickit slicing figma --selection selection.json
magickit slicing figma --selection selection.json --provider anthropic
Subcommands:
| Command | Deskripsi |
|---|---|
slicing prompt <task> |
Generate .md prompt file — tinggal upload gambar + copy-paste ke AI |
slicing image |
Direct ke AI dari gambar UI |
slicing figma |
Direct ke AI dari Figma MCP selection JSON |
Options (semua subcommand):
--provider(anthropic|gemini) — override default darimagickit.yaml--sourcepath gambar (untukimagesubcommand)--selectionpath JSON selection (untukfigmasubcommand)--[no-]package-componentsgunakan bundle komponen dari package magickit (default on)
Cara pakai slicing prompt:
- Jalankan
magickit registrydi project - Jalankan
magickit slicing prompt "deskripsi task" - Buka Claude/Codex desktop
- Upload gambar ke AI
- Copy-paste isi file
.mdyang di-generate - AI akan generate Flutter code
Butuh API key (untuk image dan figma subcommands):
ANTHROPIC_API_KEYatauGEMINI_API_KEYFIGMA_API_KEYbila pakai Figma
kickstart #
Generate starter app (splash, onboarding, login, main navigation).
magickit kickstart
storage #
Manage ObjectBox local storage — init, generate models, database info.
magickit storage init
magickit storage generate
magickit storage generate --build-runner
magickit storage info
Subcommands:
| Command | Deskripsi |
|---|---|
storage init |
Setup ObjectBox: inject deps, generate store, injector, database manager, example entity, auto-run pub get + build_runner |
storage generate |
Generate semua entity models, helpers, store, injector dari storage/ folder |
storage generate --build-runner |
Generate + auto run build_runner |
storage info |
Tampilkan database path, entity list, generated files |
Entity Schema Format (storage/<entity>.json):
{
"entity": "User",
"table": "users",
"fields": [
{ "name": "id", "type": "int", "id": true },
{ "name": "name", "type": "String" },
{ "name": "email", "type": "String", "unique": true },
{ "name": "createdAt", "type": "DateTime" },
{ "name": "isActive", "type": "bool" }
],
"indexes": ["email"],
"relations": [{ "name": "posts", "type": "ToMany", "target": "Post" }]
}
Generated Files:
| File | Purpose |
|---|---|
lib/core/storage/objectbox/objectbox_store.dart |
Store singleton dengan box references |
lib/core/storage/objectbox/storage_injector.dart |
storageInjector() — init ObjectBox + register semua helpers |
lib/core/storage/objectbox/database_manager.dart |
Export/import database ke JSON |
lib/core/storage/objectbox/models/<entity>_model.dart |
@Entity() class dengan @Id(), @Index(), dll |
lib/core/storage/objectbox/helpers/<entity>_storage_helper.dart |
Typed CRUD helper (put, get, getAll, update, delete, clear, search) |
lib/objectbox.g.dart |
Generated oleh build_runner (ObjectBox codegen) |
Cara Pakai:
# 1. Setup ObjectBox (sekali)
magickit storage init
# 2. Buat entity schema
cat > storage/user.json << EOF
{
"entity": "User",
"fields": [
{ "name": "id", "type": "int", "id": true },
{ "name": "name", "type": "String" }
]
}
EOF
# 3. Generate code + build_runner
magickit storage generate --build-runner
# 4. Pakai di code
final helper = getIt<UserStorageHelper>();
helper.put(User(name: 'John'));
final users = helper.getAll();
DatabaseManager (Export/Import):
final db = DatabaseManager();
// Export semua data ke JSON
await db.export('/path/to/backup.json');
// Import dari JSON
await db.import('/path/to/backup.json');
// Stats
print(db.getStats()); // {User: 42}
version #
Lihat versi CLI dan UI Kit.
magickit version
magickit version --update
--update akan meng-update magickit_cli ke versi terbaru dari pub.dev.
Contributing #
Silakan buat issue atau pull request di repository.