feat(cmdline): C&C with separate topics and rich output
This commit is contained in:
54
README.md
54
README.md
@@ -24,6 +24,46 @@ First run bootstraps a local `.mainline_venv/` and installs deps (`feedparser`,
|
||||
|
||||
---
|
||||
|
||||
## Daemon Mode (Recommended for Long-Running)
|
||||
|
||||
For persistent displays (e.g., always-on terminal), use daemon mode with command-and-control over ntfy:
|
||||
|
||||
```bash
|
||||
# Start the daemon (runs in background, auto-warms ntfy topics)
|
||||
mise run daemon
|
||||
|
||||
# Send commands via cmdline
|
||||
mise run cmd "/effects list"
|
||||
mise run cmd "/effects noise off"
|
||||
mise run cmd "/effects noise intensity 0.5"
|
||||
|
||||
# Watch performance stats continuously
|
||||
mise run cmd-stats
|
||||
|
||||
# Stop the daemon
|
||||
mise run daemon-stop
|
||||
```
|
||||
|
||||
### How It Works
|
||||
|
||||
- **Topics**: Uses separate ntfy topics for serial-like communication:
|
||||
- `klubhaus_terminal_mainline_cc_cmd` - commands TO mainline
|
||||
- `klubhaus_terminal_mainline_cc_resp` - responses FROM mainline
|
||||
- Topics are automatically created on first daemon start
|
||||
|
||||
### Available Commands
|
||||
|
||||
```
|
||||
/effects list - List all effects and status
|
||||
/effects <name> on - Enable an effect
|
||||
/effects <name> off - Disable an effect
|
||||
/effects <name> intensity 0.5 - Set effect intensity (0.0-1.0)
|
||||
/effects reorder noise,fade,glitch,firehose - Reorder pipeline
|
||||
/effects stats - Show performance statistics
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Config
|
||||
|
||||
All constants live in `engine/config.py`:
|
||||
@@ -85,9 +125,17 @@ engine/
|
||||
sources.py FEEDS, POETRY_SOURCES, language/script maps
|
||||
terminal.py ANSI codes, tw/th, type_out, boot_ln
|
||||
filter.py HTML stripping, content filter
|
||||
translate.py Google Translate wrapper + region detection
|
||||
translate.py Google Translate wrapper + region detection
|
||||
render.py OTF → half-block pipeline (SSAA, gradient)
|
||||
effects.py noise, glitch_bar, fade, firehose
|
||||
effects/ plugin-based effects system
|
||||
types.py EffectConfig, EffectContext, EffectPlugin protocol
|
||||
registry.py Plugin discovery and management
|
||||
chain.py Ordered pipeline execution
|
||||
performance.py Performance monitoring
|
||||
controller.py NTFY command handler
|
||||
legacy.py Original effects (noise, glitch, fade, firehose)
|
||||
effects_plugins/ External effect plugins (noise, glitch, fade, firehose)
|
||||
display.py Swappable display backends (TerminalDisplay, NullDisplay)
|
||||
fetch.py RSS/Gutenberg fetching + cache load/save
|
||||
ntfy.py NtfyPoller — standalone, zero internal deps
|
||||
mic.py MicMonitor — standalone, graceful fallback
|
||||
@@ -96,7 +144,7 @@ engine/
|
||||
frame.py scroll step calculation, timing
|
||||
layers.py ticker zone, firehose, message overlay rendering
|
||||
eventbus.py thread-safe event publishing for decoupled communication
|
||||
events.py event types and definitions
|
||||
events.py event types and definitions
|
||||
controller.py coordinates ntfy/mic monitoring and event publishing
|
||||
emitters.py background emitters for ntfy and mic
|
||||
types.py type definitions and dataclasses
|
||||
|
||||
Reference in New Issue
Block a user