Pounce can show an optional application banner at startup with your app's name, version, and tagline. Controlled viaDisplayConfig.
Configuration
from pounce.config import ServerConfig
from pounce.display import DisplayConfig
config = ServerConfig(
display=DisplayConfig(
name="My App",
tagline="Hypermedia-native dashboard",
version="1.2.0",
signage="minimal",
),
)
DisplayConfig Fields
| Field | Purpose |
|---|---|
name |
Application title (no app block shown if unset) |
tagline |
One-liner under the name |
version |
Shown next to the name |
lines |
Extra static lines in the app header |
signage |
full (default), minimal, or off |
Signage Modes (TTY only)
| Mode | Behavior |
|---|---|
full |
App block + full pounce banner with sections |
minimal |
App header box + one compact pounce line |
off |
No pretty banner,logger.infolines only |
log_format=jsonignores signage and always emits structured JSON.
Precedence (highest first)
- CLI:
--app-name,--app-tagline,--app-version,--signage - Environment:
POUNCE_APP_NAME,POUNCE_APP_TAGLINE,POUNCE_APP_VERSION,POUNCE_SIGNAGE - ServerConfig.display
- pyproject.toml:
[tool.pounce.display] - App hook:
app.__pounce_display__(dict or zero-arg callable)
pyproject.toml
[tool.pounce.display]
name = "My App"
tagline = "Does useful things"
version = "1.0.0"
signage = "minimal"
Discovery walks parent directories for pyproject.toml, or use POUNCE_APP_PYPROJECTfor an explicit path.
JSON Startup Line
Whenlog_format=json and display.nameis set:
{"app": {"name": "My App", "tagline": "...", "version": "1.2.0"}}
Optional fields are omitted when unset.