Honovel CLI (Smelt)
Honovel ships with a powerful CLI called Smelt — inspired by Laravel's Artisan and optimized for Deno. Use it to generate files, run migrations, manage your application, start servers, and automate development tasks.
All commands are executed using:
deno task smelt <command> [options]
Below is a comprehensive guide to all available CLI commands.
Server Management
serve
Start the Honovel development server.
deno task smelt serve
Options:
--port=<number>— Set custom port (default: 80 or 443 if SSL)--host=<address>— Set host address (default: 127.0.0.1)
deno task smelt serve --port=8000 --host=0.0.0.0
Configuration & App Management
-
key:generate— Creates a newAPP_KEYfor encryption.deno task smelt key:generateOptions:
--force— Overwrite existing APP_KEY--env=<name>— Generate key for specific environment (e.g., staging, production)
-
make:config <name>— Generates a configuration file.deno task smelt make:config cacheOptions:
--forceto overwrite existing config -
publish:config— Builds and publishes config files toconfig/build.deno task smelt publish:config -
make:ssl <domains...>— Generate self-signed SSL certificates for local HTTPS development.deno task smelt make:ssl localhost 127.0.0.1
Maintenance Mode
-
down— Put the application in maintenance mode.deno task smelt down --message="Upgrading database" --retry=300Options:
--message— Custom maintenance message--retry— Retry-After header in seconds--allow— IP addresses allowed to bypass maintenance--secret— Secret bypass key for maintenance access--render— Custom view to render--redirect— Redirect URL during maintenance
-
up— Bring the application out of maintenance mode.deno task smelt up
Code Generators
These commands quickly scaffold application components:
-
make:controller <name>— Create a controller.deno task smelt make:controller UserController deno task smelt make:controller PostController --resourceOption:
--resourcegenerates CRUD methods (index, create, store, show, edit, update, destroy) -
make:model <name>— Create a model with optional related files.deno task smelt make:model Post --migration --factory deno task smelt make:model User --allOptions:
-m, --migration— Also generate a migration-f, --factory— Also generate a factory-c, --controller— Also generate a controller-r, --resource— Make the controller resourceful--all— Generate migration, factory, and controller--table=<name>— Specify custom table name
-
make:migration <name>— Create a migration file.deno task smelt make:migration create_posts_table deno task smelt make:migration --table=users add_role_to_usersOption:
--tablefor altering existing tables -
make:factory <name>— Create a model factory.deno task smelt make:factory PostFactory --model=PostOption:
--model=<Model>to associate with a model -
make:middleware <name>— Create a middleware class.deno task smelt make:middleware CheckPermission -
make:provider <name>— Create a service provider.deno task smelt make:provider AppServiceProvider -
make:view <name>— Create a view file.deno task smelt make:view pages/dashboard -
make:seeder <name>— Create a database seeder.deno task smelt make:seeder UserSeeder -
make:request <name>— Create a form request class.deno task smelt make:request StorePostRequest -
make:mail <name>— Create a mailable class.deno task smelt make:mail WelcomeEmail -
make:event <name>— Create an event class.deno task smelt make:event UserRegistered -
make:listener <name>— Create an event listener.deno task smelt make:listener SendWelcomeEmail --event=UserRegisteredOption:
--event=<EventClass>to specify the event -
make:job <name>— Create a job class.deno task smelt make:job ProcessVideoUpload -
make:rule <name>— Create a validation rule.deno task smelt make:rule Uppercase -
make:exception <name>— Create a custom exception.deno task smelt make:exception InvalidPaymentException
Database Commands
-
migrate— Run all pending migrations.deno task smelt migrate deno task smelt migrate --seed --db=mysqlOptions:
--seed— Seed database after migration--path— Custom migrations directory--db— Specify database connection--force— Force migration without confirmation--seeder— Specific seeder class to run
-
migrate:fresh— Drop all tables & rerun migrations.deno task smelt migrate:fresh --seedSame options as
migrate. Warning: Destroys all data! -
migrate:refresh— Rollback and rerun all migrations.deno task smelt migrate:refresh --step=2Option:
--stepto rollback specific number of batches -
migrate:rollback— Rollback the last migration batch.deno task smelt migrate:rollback --step=1 -
migrate:reset— Rollback all migrations.deno task smelt migrate:reset -
migrate:status— Show migration status.deno task smelt migrate:status -
db:seed— Run database seeders.deno task smelt db:seed deno task smelt db:seed --class=UserSeeder --database=mysqlOptions:
--class(seeder class),--database(connection)
Cache & Optimization
-
cache:clear— Clear the application cache.deno task smelt cache:clear -
config:cache— Cache configuration files.deno task smelt config:cache -
config:clear— Clear configuration cache.deno task smelt config:clear -
optimize— Cache framework bootstrap files.deno task smelt optimize -
optimize:clear— Remove cached bootstrap files.deno task smelt optimize:clear
Storage & Assets
-
storage:link— Create symbolic link frompublic/storagetostorage/app/public.deno task smelt storage:link
Driver Installation
-
install:driver— Install optional database/cache drivers.deno task smelt install:driver --redis=ioredis deno task smelt install:driver --cache=memcachedOptions:
--redis— ioredis | upstash | node-redis | deno-redis--cache— memcached | dynamodb | mongodb
Summary
The Honovel CLI (Smelt) is designed to behave like Laravel's Artisan but optimized for Deno and TypeScript. Every command is built to accelerate your development workflow, from scaffolding to deployment. As the framework grows, additional commands and tools will be added to enhance your productivity.