Skip to content
GitHub

Commands

Alpha (0.1.x) — MIT licensed. Commands and flags may change before 1.0.

The lexigram CLI is the primary developer tool for scaffolding, running, and managing Lexigram projects. Commands are organised into categories.

Scaffold a new project or package.

lexigram new project <name> [--template web-api] [--output-dir .]
lexigram new package <name> [--output-dir packages/]
FlagDefaultDescription
--template, -tweb-apiProject template (web-api, cli, library)
--output-dir.Output directory

Example: lexigram new project my-api --template web-api

Smart runner — auto-detects create_app() factory and starts the ASGI server.

lexigram run [target] [--host 0.0.0.0] [--port 8000] [--server uvicorn]
FlagDefaultDescription
targetAuto-detectedmodule:attr factory path
--host, -h0.0.0.0Bind address
--port, -p8000Port
--serverAuto-detectedServer backend (uvicorn, hypercorn, granian)

Example: lexigram run my_app.app:create_app --port 8080

Development server with hot reload.

lexigram dev [--entry src/main.py] [--host 127.0.0.1] [--port 8000] [--reload] [--env development]
FlagDefaultDescription
--entryAuto-detectedEntry point file
--reload/--no-reloadTrueHot reload on file changes
--envdevelopmentEnvironment profile

Example: lexigram dev --entry app.py --port 9000 --no-reload

Database management commands.

lexigram db init [--reset] [--seed]
lexigram db migrate [--name <migration>] [--auto]
lexigram db seed [--file seeds.py]
lexigram db shell

Code generation commands.

lexigram gen provider <name> [--output src/providers/]
lexigram gen module <name> [--output src/modules/]
lexigram gen migration [--auto-detect]

Inspect runtime state of a running application or configuration.

lexigram inspect providers [--json]
lexigram inspect config [--section <section>]
lexigram inspect routes
lexigram inspect health
FlagDescription
--jsonOutput as JSON
--sectionFilter config to a specific section

Open an interactive Python REPL with the Lexigram application loaded.

lexigram shell [target]

Initialize Lexigram in an existing project.

lexigram init [--force]

Creates application.yaml, project scaffold, and optional pyproject.toml updates.

Add a provider or extension to the project.

lexigram add <package> [--version <version>]
lexigram add provider <name>

Configuration management.

lexigram config view [--section <section>]
lexigram config validate [--file application.yaml]

Discover and inspect installed contributors (plugins).

lexigram contrib list [--json]
lexigram contrib info <name>
FlagDescription
--jsonMachine-readable output

Project management utilities.

lexigram project test [path] [--coverage] [--verbose] [--runner pytest]
lexigram project lint [path] [--fix] [--check]
lexigram project routes

System information and diagnostics.

lexigram system info
lexigram system diagnostics
lexigram system check

Show framework and package versions.

lexigram version [--all]
FlagDescription
--allList versions of all installed Lexigram packages

List all available commands.

lexigram list [--group <group>] [--json]
FlagDescription
--group, -gFilter by category
--jsonMachine-readable output

Generate shell completion script.

lexigram completion --shell <bash|zsh|fish|powershell>

Install with: eval "$(lexigram completion --shell bash)"

Run project tests (delegates to lexigram project test).

lexigram test [path] [--coverage] [--verbose]

Run project linting (delegates to lexigram project lint).

lexigram lint [path] [--fix]

Event schema management.

lexigram events schema validate
lexigram events schema migrate

Packages can register commands via the lexigram.cli.commands entry point. Contributor commands appear under their own category in lexigram list. Register in pyproject.toml:

[project.entry-points."lexigram.cli.commands"]
my_contrib = "my_package.cli:app"
  • CLIModule — DI integration for CLI commands
  • CommandRegistry — programmatic command registration
  • ContributorRuntime — plugin discovery at runtime
  • PUBLIC_PACKAGE_CLI_MATRIX.md — per-package command ownership