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.
121 lines
4.9 KiB
Markdown
121 lines
4.9 KiB
Markdown
# 🛰️ 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.
|