Honovel Honovel Deno

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 new APP_KEY for encryption.
    deno task smelt key:generate

    Options:

    • --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 cache

    Options: --force to overwrite existing config

  • publish:config — Builds and publishes config files to config/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=300

    Options:

    • --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 --resource

    Option: --resource generates 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 --all

    Options:

    • -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_users

    Option: --table for altering existing tables

  • make:factory <name> — Create a model factory.
    deno task smelt make:factory PostFactory --model=Post

    Option: --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=UserRegistered

    Option: --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=mysql

    Options:

    • --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 --seed

    Same options as migrate. Warning: Destroys all data!

  • migrate:refresh — Rollback and rerun all migrations.
    deno task smelt migrate:refresh --step=2

    Option: --step to 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=mysql

    Options: --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 from public/storage to storage/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=memcached

    Options:

    • --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.