Skip to main content

Artisan Command Reference

All commands below are custom HAWKI commands. Run them inside Docker via bin/env:

bin/env artisan <command> [options]

AI Provider & Model Commands

CommandAliasDescription
ai:check-statusPolls all AI providers and MCP servers; writes online/offline status to DB via ModelStatusUpdater and McpServerStatusUpdater
ai:models:listLists configured models; supports filtering options and --json output
ai:config:syncai:models:syncReads static config files (config/model_providers.php, config/model_lists/) and upserts providers + models to DB; --force bypasses change-detection hash

AI Tool Commands

CommandDescription
ai:tools:syncSyncs function tool definitions from config/tools.php to DB via FunctionToolSyncer; also syncs MCP server definitions
ai:tools:assignInteractively assigns tools to models
ai:tools:configureInteractively configure settings for a specific tool
ai:tools:listLists all registered tools with their status

MCP Server Commands

CommandDescription
ai:tools:mcp:addRegister a new MCP server
ai:tools:mcp:removeRemove an MCP server registration

External App Commands

CommandClassDescription
ext-app:createExtAppCreateCommandRegister an external application; prints API token + RSA private key once — store them immediately, they are not shown again
ext-app:listExtAppListCommandList all registered external applications
ext-app:removeExtAppRemoveCommandRemove an external application and its system user

Personal Access Token Commands

Distinct from ext-app tokens

These commands manage individual user Sanctum tokens (ApiTokenService). They are a separate mechanism from the ext-app OAuth-like flow documented in External App Integration.

CommandClassDescription
app:tokenCreateSanctumTokenForUserCreate a Sanctum personal access token for a user (prompts for user lookup by username, email, or ID)
app:token --revokeCreateSanctumTokenForUserRevoke a specific token for a user (lists existing tokens then prompts for the token ID)

User Management Commands

CommandClassDescription
app:removeuserRemoveuserRemove a user and all their associated data from the database (irreversible)
hawki:update-avatar {path}UpdateHawkiAvatarUpdate the system AI user's avatar from a local file path
migrate:avatarsMigrateAvatarsMigrate legacy avatar files to the current StoredFileIdentifier format; supports --dry-run, --force, --cleanup, --user, --room, --type

Usage Analytics Commands

CommandClassDescription
usage:summarize-monthlyMonthlyUsageSummaryAggregate and prune the usage_records table; should run on a monthly cron schedule
usage:top-usersTopTokenUsersDiagnostic: list top token consumers, filterable by model and month
app:fetch-user-recordsFetchUserRecordsDeveloper diagnostic: dump raw usage totals (internal use only)

Announcement Commands

CommandClassDescription
announcement:make {title}AnnouncementMakeScaffold per-language Markdown announcement files under resources/announcements/
announcement:publishAnnouncementPublishPersist an announcement to the database (interactive prompts for type, scheduling, targeting)

File Storage Commands

CommandClassDescription
filestorage:cleanupCleanupFileStorageDelete old attachments and expired temporary uploads (6-month retention by default)
filestorage:converter:types:listFileStorageConverterTypesListPrint accepted MIME types and file extensions for the currently configured file converter
check:storage {--filesystem=}CheckStorageConnectionSmoke-test a storage backend by writing, reading, and deleting a test file; use --filesystem= to target a specific disk

Frontend Migration Commands

CommandClassDescription
make:frontend-migration <name>MakeFrontendMigrationCommandScaffold a paired PHP + TypeScript frontend migration file set

Development / Diagnostic Commands

CommandClassDescription
dev:ai:update-lite-llm-static-dataUpdateLiteLlmStaticDataCommandRefresh bundled LiteLLM static data files in resources/static_llm_data/; intended for local development use only, not production

Deprecated Commands

CommandClassStatusNotes
app:list-gwdgCheckGWDGModels@deprecated — scheduled for removal in v3.0Pings the GWDG provider API and prints model status. Superseded by ai:check-status. Emits a log warning on every run.

[v3 Feature] Planned Commands

The following commands are planned for HAWKI 3.0 and do not exist yet:

CommandPurpose
hawki:plugin:listOperator-visible list of installed plugins with name, version, and status
make:hawki:pluginInteractive plugin scaffolding wizard
hawki:plugins:composer:post-updateInternal: runs PluginPublisher after composer update (hidden, wired via Composer hooks)
hawki:plugins:composer:uninstallInternal: cleans up plugin assets on removal (hidden, wired via Composer hooks)