|
| 1 | +<div align="center"> |
| 2 | + |
| 3 | +``` |
| 4 | + ██████╗ █████╗ ██████╗ ██████╗ ██╗ ██████╗ ██╗ ██████╗ |
| 5 | + ██╔══██╗██╔══██╗██╔══██╗██╔═══██╗██║ ██╔══██╗██║██╔═══██╗ |
| 6 | + ██████╔╝███████║██████╔╝██║ ██║██║ ██║ ██║██║██║ ██║ |
| 7 | + ██╔══██╗██╔══██║██╔═══╝ ██║ ██║██║ ██║ ██║██║██║ ██║ |
| 8 | + ██║ ██║██║ ██║██║ ╚██████╔╝███████╗██████╔╝██║╚██████╔╝ |
| 9 | + ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═════╝ ╚══════╝╚═════╝ ╚═╝ ╚═════╝ |
| 10 | +``` |
| 11 | + |
| 12 | +<h3>rapoldio CLI</h3> |
| 13 | +<p><em>Multi-agent CLI for ÆON & ÆTHRA — Cyberpunk dashboards, fleet management, Pi deployment</em></p> |
| 14 | + |
| 15 | +[]() |
| 16 | +[]() |
| 17 | +[](LICENSE) |
| 18 | +[](https://www.gnu.org/software/bash/) |
| 19 | +[](https://python.org) |
| 20 | +[](https://www.raspberrypi.com/) |
| 21 | + |
| 22 | +</div> |
| 23 | + |
| 24 | +--- |
| 25 | + |
| 26 | +## Overview |
| 27 | + |
| 28 | +**rapoldio CLI** is a multi-agent, modular command-line framework for managing a fleet of Raspberry Pis. It powers cyberpunk-styled tmux dashboards featuring matrix rain animations, live cryptocurrency charts, world clocks, weather feeds, news tickers, and system monitoring. |
| 29 | + |
| 30 | +### 🤖 The Agent Concept |
| 31 | + |
| 32 | +This CLI supports **two AI agent identities** that share the same codebase but have distinct personalities: |
| 33 | + |
| 34 | +| Agent | Identity | Focus | |
| 35 | +|-------|----------|-------| |
| 36 | +| **ÆON** | The Architect | Infrastructure, building, deployment, systems | |
| 37 | +| **ÆTHRA** | The Companion | Creative, personal, monitoring, insight | |
| 38 | + |
| 39 | +Each agent gets its own entrypoint (`aeon` / `aethra`), dashboard branding, task panels, and status displays — while sharing the same core modules, fleet management, and market/weather/news panels. |
| 40 | + |
| 41 | +## Key Features |
| 42 | + |
| 43 | +- 🤖 **Multi-Agent** — Two agent identities (ÆON & ÆTHRA) with shared infrastructure |
| 44 | +- 🎨 **Adaptive Resolution** — Auto-detects SD/HD/FHD/QHD/UHD and adjusts tmux layout |
| 45 | +- 🐉 **Matrix Rain Top Bar** — Animated katakana rain behind centered figlet header |
| 46 | +- 📈 **Live Market Charts** — 7-day BTC/ETH/Gold charts with sparklines (CoinGecko API) |
| 47 | +- 🌍 **World Clock & Weather** — Multi-timezone display with Zurich weather (Open-Meteo) |
| 48 | +- 📰 **News Ticker** — Rotating crypto & local news feeds (RSS) |
| 49 | +- 🔧 **Plugin System** — Drop a `module.sh` into `modules/` and it auto-registers |
| 50 | +- 🚀 **Fleet Deployment** — SSH-based push to all registered Pis in parallel |
| 51 | + |
| 52 | +## Quick Install |
| 53 | + |
| 54 | +```bash |
| 55 | +curl -fsSL cli.rapold.io | bash |
| 56 | +``` |
| 57 | + |
| 58 | +The installer will ask you to choose your agent (ÆON or ÆTHRA) and set everything up. |
| 59 | + |
| 60 | +### Manual Install |
| 61 | + |
| 62 | +```bash |
| 63 | +git clone https://github.com/rapoldio/cli.git ~/rapoldio-cli |
| 64 | +cd ~/rapoldio-cli |
| 65 | +chmod +x aeon aethra |
| 66 | +./install.sh |
| 67 | +``` |
| 68 | + |
| 69 | +## Usage |
| 70 | + |
| 71 | +```bash |
| 72 | +# Launch dashboard (as your chosen agent) |
| 73 | +aeon dashboard |
| 74 | +aethra dashboard |
| 75 | + |
| 76 | +# Force a resolution profile |
| 77 | +aeon --profile uhd dashboard |
| 78 | + |
| 79 | +# System status |
| 80 | +aeon status |
| 81 | + |
| 82 | +# Fleet management |
| 83 | +aeon deploy all |
| 84 | +aeon config host add pi-living 192.168.1.10 |
| 85 | + |
| 86 | +# Configuration |
| 87 | +aeon config show |
| 88 | +aeon config edit |
| 89 | +``` |
| 90 | + |
| 91 | +## Architecture |
| 92 | + |
| 93 | +``` |
| 94 | +rapoldio-cli/ |
| 95 | +├── aeon # ÆON agent entrypoint |
| 96 | +├── aethra # ÆTHRA agent entrypoint |
| 97 | +├── lib/ |
| 98 | +│ ├── main.sh # Shared CLI framework (sourced by entrypoints) |
| 99 | +│ ├── core.sh # Colors, logging, box drawing, helpers |
| 100 | +│ ├── config.sh # YAML config management (~/.rapoldio/) |
| 101 | +│ ├── detect.sh # Resolution & hardware auto-detection |
| 102 | +│ └── ssh.sh # SSH/rsync fleet management helpers |
| 103 | +├── modules/ |
| 104 | +│ ├── dashboard/ |
| 105 | +│ │ ├── module.sh # Dashboard launcher (agent-aware) |
| 106 | +│ │ ├── top_bar.sh # Matrix rain + figlet header |
| 107 | +│ │ ├── right_panel.sh # Markets, news, weather, clocks |
| 108 | +│ │ ├── status_panel.sh # Local system status fallback |
| 109 | +│ │ ├── panels/ |
| 110 | +│ │ │ ├── shared/ # News, Weather, Crypto, Clock, System |
| 111 | +│ │ │ ├── aeon/ # ÆON-specific (tasks, status) |
| 112 | +│ │ │ └── aethra/ # ÆTHRA-specific (tasks, status) |
| 113 | +│ │ └── profiles/ # Resolution configs (sd/hd/fhd/qhd/uhd) |
| 114 | +│ ├── status/ # System & fleet status |
| 115 | +│ ├── deploy/ # SSH fleet deployment |
| 116 | +│ └── config/ # Configuration management |
| 117 | +├── install.sh # Multi-agent installer |
| 118 | +├── profiles/ # Theme profiles |
| 119 | +└── docs/ # Documentation |
| 120 | +``` |
| 121 | + |
| 122 | +## Configuration |
| 123 | + |
| 124 | +Config lives in `~/.rapoldio/`: |
| 125 | + |
| 126 | +| File | Description | |
| 127 | +|------|-------------| |
| 128 | +| `config.yaml` | Main config (agent, gateway, theme, modules) | |
| 129 | +| `hosts.yaml` | Pi fleet registry | |
| 130 | +| `cache/` | API response cache | |
| 131 | + |
| 132 | +### Environment Variables |
| 133 | + |
| 134 | +| Variable | Description | Default | |
| 135 | +|----------|-------------|---------| |
| 136 | +| `AGENT_ID` | Active agent identity | from config | |
| 137 | +| `RCLI_CONFIG_DIR` | Config directory | `~/.rapoldio` | |
| 138 | +| `RCLI_PROFILE` | Force resolution profile | auto-detect | |
| 139 | +| `RCLI_DEBUG` | Enable debug logging | `0` | |
| 140 | + |
| 141 | +## Tech Stack |
| 142 | + |
| 143 | +| Layer | Technology | |
| 144 | +|-------|-----------| |
| 145 | +| **Shell** | Bash 5.x — CLI framework, module loader, tmux orchestration | |
| 146 | +| **Rendering** | Python 3.9+ — Matrix rain, chart rendering, data formatting | |
| 147 | +| **Terminal** | tmux — Multi-pane dashboard layout | |
| 148 | +| **Data** | CoinGecko, Open-Meteo, RSS — Markets, weather, news | |
| 149 | +| **Remote** | SSH / rsync — Fleet management | |
| 150 | +| **Platform** | Raspberry Pi OS | |
| 151 | + |
| 152 | +## Contributing |
| 153 | + |
| 154 | +See [CONTRIBUTING.md](CONTRIBUTING.md). In short: |
| 155 | + |
| 156 | +1. Fork → feature branch → PR |
| 157 | +2. Follow plugin conventions in `docs/MODULES.md` |
| 158 | +3. Run `shellcheck` on scripts |
| 159 | + |
| 160 | +## License |
| 161 | + |
| 162 | +[MIT](LICENSE) |
| 163 | + |
| 164 | +--- |
| 165 | + |
| 166 | +<div align="center"> |
| 167 | + |
| 168 | +**v2.0.0** · Made with 🤝 by **ÆON & ÆTHRA** |
| 169 | + |
| 170 | +</div> |
0 commit comments