atlas-os/README.md
Chaib Aarab 301cc75de9 init: Atlas OS — open-source patterns + tools for solo founder LLM cluster
3 browser-native chat surfaces (atlas-chat / atlas-hud / atlas-command, no build step)
+ 11 Python automation scripts (cluster, tray, finance, reminders, autonomy loops)
+ 2 patterns documented (cluster-then-polish, anti-impulse R1-R10)
MIT licensed, anonymized from production stack.
2026-05-26 16:21:16 +02:00

121 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🛰️ Atlas OS
> Open-source patterns + tools for solo founders running a multi-node local LLM cluster + an own AI-first workspace.
Built by [Atlas Corporation](https://atlascorporation.nl) — extracted from a working production stack. MIT licensed.
## What's inside
### Browser-native LLM surfaces (no build step, no React)
| File | What | Lines |
|---|---|---|
| `web/atlas-chat.html` | Mobile-first chat UI for Ollama clusters + optional Claude API. Streaming, localStorage history, multi-model picker, Vault RAG toggle | ~520 |
| `web/atlas-hud.html` | Iron Man-style ambient HUD: camera feed + face detection (face-api.js) + circular audio waveform + Web Speech API ASR/TTS | ~600 |
| `web/atlas-command.html` | Unified cockpit: 6 tabs (Chat / Brief / Buy? / Autonomy / HUD / Portal). Live cluster + finance + strategy + R10 cards | ~800 |
Drop in any web server. Single-file each. No npm install.
### Python automation
| Script | Purpose |
|---|---|
| `scripts/cluster.py` | Multi-node Ollama orchestrator (task → node → model routing, fallback chain) |
| `scripts/cluster_then_polish.py` | Two-pass LLM pattern: cluster generates draft → flagged `polish_status: pending` |
| `scripts/atlas_self_prompting_loop.py` | Self-perpetuating autonomy: 8 topic templates × N nodes |
| `scripts/atlas_tray.py` | pystray system tray icon — color-coded cluster health (polls every 30s) |
| `scripts/atlas_seasonal_strategy.py` | NL fiscal calendar awareness (vakantiegeld, BTW deadlines, schoolvakantie, Sint/Kerst) |
| `scripts/atlas_finance_export.py` | NL freelancer Inkomsten xlsx parser (Betaalcontrole sheet pattern) → JSON |
| `scripts/atlas_reminders.py` | Burden-remover daily schtask: monthly Inkomsten + quarterly BTW + savings + IB prep |
| `scripts/atlas_activity_export.py` | ActivityWatch → R10 hours ratio (sales vs infra) for daily/weekly discipline |
| `scripts/atlas_autonomy_export.py` | Expose autonomy loop state via JSON for live dashboards |
| `scripts/vault_rag_expand.py` | Batch upload Markdown to Open WebUI Knowledge Base via API |
| `scripts/atlas_lead_enrich.py` | Per-prospect personalized cold-WhatsApp generator (NL sectors) |
### Patterns documented
- `patterns/CLUSTER_THEN_POLISH.md` — Local 7B-8B for volume, Claude for signal
- `patterns/ANTI_IMPULSE_RULES.md` — R1-R10 cash-before-code rules
## Why this exists
After 12 months of solo founder building, the patterns that actually survived. Specifically for the founder who:
- Runs Ollama or similar local LLM (on PC + VPS + secondary desktop)
- Wants Atlas-style live dashboard, not enterprise BI
- Uses Obsidian as second brain
- Needs Dutch fiscal calendar awareness
- Hates WordPress + Elementor for AI-edit-friendly new builds
- Wants "cash before code" enforced by automation, not willpower
## Install
```bash
git clone https://git.atlascorporation.nl/chaib/atlas-os.git
cd atlas-os
```
### Web surfaces
Serve any `web/*.html` via Caddy / nginx / Cloudflare Pages. Each is self-contained (CDN-loaded marked.js + DOMPurify).
### Python tools
```bash
cd scripts
pip install -r requirements.txt # pystray, pillow, openpyxl
# Run individual scripts; each documents its env vars
```
## Configuration
Each tool has `<YOUR_*>` placeholders. Replace with your:
- VPS IP (Hetzner / DigitalOcean / wherever Ollama runs always-on)
- Desktop node IP (your secondary GPU machine)
- PC node IP (your daily-driver localhost or tailnet IP)
- Open WebUI JWT (for Vault RAG queries)
- Knowledge Base ID
- SMTP credentials (for reminder emails)
- Domain
See individual file headers.
## Architecture (the actual production setup)
```
Operator PC (Windows)
- Ollama (GPU) — ~10 models
- Atlas Command HTML served via Caddy on VPS
- Atlas Tray Python (taskbar — always visible)
- atlas_self_prompting_loop schtask (every 15 min, 12h windows)
|
v Tailscale mesh (encrypted overlay)
|
VPS (Hetzner CPX32 — always-on)
- Ollama (CPU) — 5 small/medium models
- Caddy reverse proxy
- Open WebUI (Vault RAG, multi-tenant chats)
- Odoo / Nextcloud / Vaultwarden / MeshCentral / Forgejo (this repo!)
|
v
Secondary desktop (GPU node)
- Ollama — Llama 3.1 8B + smaller
```
Total monthly hosting cost: ~€25 (VPS) + electricity for PC + desktop. No SaaS subscriptions.
## License
MIT. Use freely. Attribution appreciated but not required.
## Roadmap (PRs welcome)
- Astro + Decap CMS template for AI-edit-friendly websites
- OpenWakeWord OS-level voice trigger (replaces browser-tab requirement)
- Multi-tenant pattern for solo agencies running N client sites
- Local sentence-transformer embeddings (replace Open WebUI dependency)
- Cluster-of-experts pattern for narrative tasks (rotate prompt across nodes, vote on best)
## Credits
Built by [@chaib](https://atlascorporation.nl) · Tilburg, NL · 2025-2026.
Patterns surfaced through 8 months of daily live use + ruthless removal of what didn't earn its keep.
> One person, one stack, one workspace. Atlas because it carries the load.