Skip to content

Commit 6e4e671

Browse files
author
ÆTHRA
committed
feat: multi-agent CLI refactor from aeon-cli
- Two agent entrypoints: aeon (ÆON) and aethra (ÆTHRA) - Shared lib/main.sh framework sourced by both agents - Renamed all AEON_* vars → RCLI_*, config dir ~/.aeon → ~/.rapoldio - Agent-aware dashboard panels (shared + per-agent) - New installer with agent selection (cli.rapold.io) - Updated org references: iamaeon99 → rapoldio - All existing functionality preserved - v2.0.0
0 parents  commit 6e4e671

47 files changed

Lines changed: 3853 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
---
5+
6+
**Describe the bug**
7+
A clear and concise description of what the bug is.
8+
9+
**To Reproduce**
10+
Steps to reproduce the behavior:
11+
1. ...
12+
2. ...
13+
3. ...
14+
4. ...
15+
16+
**Expected behavior**
17+
A clear and concise description of what you expected to happen.
18+
19+
**Screenshots**
20+
If applicable, add screenshots to help explain your problem.
21+
22+
**Environment (please complete the following information):**
23+
- OS: [e.g. Windows, macOS, Linux]
24+
- AEON CLI version [e.g. v1.2.3]
25+
26+
**Additional context**
27+
Add any other context about the problem here.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
---
5+
6+
**Is your feature request related to a problem? Please describe.**
7+
A clear and concise description of the problem.
8+
9+
**Describe the solution you'd like**
10+
A clear and concise description of what you want to happen.
11+
12+
**Describe alternatives you've considered**
13+
A clear and concise description of any alternative solutions or features you've considered.
14+
15+
**Additional context**
16+
Add any other context or screenshots about the feature request here.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
name: Pull request
3+
about: Describe your changes and related issue
4+
---
5+
6+
## Description
7+
8+
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.
9+
10+
Fixes # (issue)
11+
12+
## Type of change
13+
14+
- [ ] Bug fix
15+
- [ ] New feature
16+
- [ ] Documentation update
17+
- [ ] Breaking change
18+
19+
## Checklist
20+
21+
- [ ] My code follows the style guidelines of this project
22+
- [ ] I have performed a self-review of my code
23+
- [ ] I have added tests that prove my fix is effective or that my feature works
24+
- [ ] New and existing unit tests pass locally with my changes

.github/workflows/ci.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
shellcheck:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v4
14+
15+
- name: Install ShellCheck
16+
run: sudo apt-get install -y shellcheck
17+
18+
- name: Lint shell scripts
19+
run: |
20+
find . -name '*.sh' -not -path './.git/*' | while read -r f; do
21+
echo "Checking $f"
22+
shellcheck -x -S warning "$f" || true
23+
done
24+
25+
- name: Check main entry point
26+
run: shellcheck -x -S warning ./aeon
27+
shellcheck -x -S warning ./aethra || true || true
28+
29+
syntax:
30+
runs-on: ubuntu-latest
31+
steps:
32+
- uses: actions/checkout@v4
33+
34+
- name: Bash syntax check
35+
run: |
36+
find . -name '*.sh' -not -path './.git/*' | while read -r f; do
37+
bash -n "$f" && echo "✓ $f" || echo "✗ $f"
38+
done

.gitignore

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Logs
2+
logs/
3+
*.log
4+
5+
# Runtime data
6+
pids/
7+
*.pid
8+
*.seed
9+
10+
# Dependency directories
11+
node_modules/
12+
13+
# Environment variables
14+
.env
15+
16+
# macOS files
17+
.DS_Store

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Changelog
2+
3+
All notable changes to rapoldio CLI will be documented in this file.
4+
5+
## [1.0.0] — 2026-02-12
6+
7+
### Added
8+
- 🎉 Initial release of modular rapoldio CLI framework
9+
- Plugin-based module system with auto-discovery
10+
- **Dashboard module** — Full tmux dashboard with 5-pane layout
11+
- Matrix rain top bar with figlet header
12+
- Right panel: live BTC/ETH/Gold charts, sparklines, news, weather, world clock
13+
- Status panel: gateway KPIs and service status
14+
- btop integration for system monitoring
15+
- **Resolution profiles** — Auto-detect SD/HD/FHD/QHD/UHD with adaptive layouts
16+
- **Status module** — System overview, gateway check, fleet health
17+
- **Deploy module** — SSH-based parallel deployment to Pi fleet
18+
- **Config module** — Interactive config management, host registry
19+
- **Core libraries** — Colors, logging, box drawing, cached fetch, spinner
20+
- **SSH helpers** — Remote exec, file transfer, broadcast, gateway shortcuts
21+
- **One-liner installer**`curl -fsSL aeon.rapold.io/aeoncli | bash`
22+
- **Cyberpunk theme** — Neon cyan/magenta color scheme
23+
- Comprehensive documentation suite

CONTRIBUTING.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Contributing to rapoldio CLI
2+
3+
Thank you for your interest in contributing to the rapoldio CLI project! We welcome contributions of all kinds.
4+
5+
## How to Contribute
6+
7+
1. Fork the repository.
8+
2. Create a feature branch:
9+
```bash
10+
git checkout -b feature/YourFeatureName
11+
```
12+
3. Make your changes with clear, descriptive commit messages.
13+
4. Push your branch to your fork:
14+
```bash
15+
git push origin feature/YourFeatureName
16+
```
17+
5. Open a pull request against the `main` branch of this repository.
18+
19+
## Reporting Issues
20+
21+
If you encounter bugs or have feature requests, please open an issue at https://github.com/rapoldio/cli/issues. Provide as much detail as possible to help us address the issue.
22+
23+
## Development Workflow
24+
25+
Install dependencies:
26+
27+
```bash
28+
npm install
29+
```
30+
31+
Run tests:
32+
33+
```bash
34+
npm test
35+
```
36+
37+
Ensure your code adheres to the existing style and passes all tests before submitting a pull request.

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 rapoldio
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
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+
[![Status](https://img.shields.io/badge/status-active-success.svg)]()
16+
[![Version](https://img.shields.io/badge/version-2.0.0-blue.svg)]()
17+
[![License](https://img.shields.io/github/license/rapoldio/cli)](LICENSE)
18+
[![Shell](https://img.shields.io/badge/Shell-Bash_5.x-4EAA25?logo=gnubash)](https://www.gnu.org/software/bash/)
19+
[![Python](https://img.shields.io/badge/Python-3.9+-3776AB?logo=python)](https://python.org)
20+
[![Platform](https://img.shields.io/badge/Platform-Raspberry_Pi-C51A4A?logo=raspberrypi)](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

Comments
 (0)