CLI
lllm is the single command. Module command groups (hub, network,
shell) take their own options before the subcommand.
lllm create NAME [--template T] new project
lllm init [PATH] write lllm.toml
lllm setup [TARGET] store the API keys a package declares
lllm inspect TARGET tactic metadata, or what serve would launch
lllm serve TARGET serve a tactic or a package resource
lllm hub ... validate, publish, read, index packages
lllm network ... SSSN channel stores (experimental)
lllm shell ... AAAX strategies (experimental)
TARGET is a module:attribute entrypoint (imported from the current
directory) or a package path (a folder with lllm.toml, or the file itself).
lllm create
lllm create my-app # native project, template "minimal"
lllm create my-app --template pipeline # pipeline | proxy | research | service
lllm create my-app --template ./my-template # a folder with lllm-template.toml
lllm create plain my-svc # service scaffolds: plain | pydantic-ai | native
| Option | Default | |
|---|---|---|
--template |
minimal |
Template name or folder |
--model |
gpt-4o-mini |
Model written into configs/default.yaml |
--directory |
. |
Parent folder |
--force |
off | Overwrite existing files |
Native templates create lllm.toml, prompts/, configs/default.yaml,
tactics/, main.py (with create_tactic()), and an offline smoke test.
lllm init
lllm init [PATH] [--name NAME] [--org ORG] [--kind KIND] [--force]
Writes a minimal lllm.toml (with [card] and [docs.readme]) and a README
if there is none. See The manifest.
lllm setup
lllm setup ./briefs # prompts for missing keys
lllm setup ./briefs --credentials env --env-file .env.local --set OPENAI_API_KEY=sk-...
lllm setup --show-conventions # common provider key names
Reads [requirements.api_keys], plus the required_api_keys metadata of the
resource lllm serve would launch (or the one named with --resource), and
stores missing keys in the OS keyring (secure extra) or a local env file. A
package with nothing to launch, such as a library, is set up from its
[requirements.api_keys] alone. --credentials auto uses the keyring when
available.
lllm inspect
lllm inspect tactics:Shout --json # name, schemas, capabilities, endpoints
lllm inspect ./briefs # resolved resource, port, routes, key status
Package options: --resource section.name, --store DIR (channel
resources), --env-file, --no-keyring.
lllm serve
lllm serve tactics:Shout --port 8000
lllm serve ./briefs # the package's primary resource
lllm serve ./briefs --resource services.api
| Option | Default | |
|---|---|---|
--host |
127.0.0.1 |
Bind address (host or IP, not a URL) |
--port |
declared port or 8000 | |
--log-level |
info |
Uvicorn log level |
--resource |
[package] primary |
Resource to launch |
--store |
<package>/.lllm/network |
Store root for channel resources |
--credentials, --env-file, --no-keyring |
Key lookup and interactive setup | |
--skip-key-check |
off | Start without checking declared keys |
An entrypoint names a tactic class or instance, a factory, an object with a
run method, or a handler function
(Loading entrypoints). A
resource that cannot be launched, or a service entry that fails to import or
build, stops with an error that names the cause
(Services).
lllm hub
lllm hub [--hub DIR] COMMAND
--hub defaults to .lllm/hub.
| Command | |
|---|---|
init [PATH] |
Same as lllm init |
validate PATH |
Validate a package |
publish PATH --local [--no-validate] |
Publish into the local hub |
list |
Published packages (org/name@version) |
get ID [--dest DIR] [--version V] |
Download a package |
card ID, agent-card ID |
Render the package card / agent card |
config-template ID |
Render a starting .lllm/config.toml |
index OUTPUT [--generated-at TS] |
Write a static catalog for the hub web app |
serve [--host] [--port 8787] |
Serve the hub API |
See The Hub.
lllm network
lllm network [--store DIR] COMMAND
--store defaults to .lllm/network. Commands: channels,
create-channel, get-channel, append, query-events, get-event,
create-subscription, get-subscription, pull-subscription,
write-artifact, get-artifact, read-artifact, put-snapshot,
get-snapshot, serve. See SSSN.
lllm shell
lllm shell inspect TARGET [--json]
lllm shell serve TARGET [--host] [--port 8400] [--log-level]
TARGET is a strategy.py file, a folder (with strategy.py, shell.py, or
lllm.toml), or a module:factory. See AAAX.