robin/README.md

129 lines
3.8 KiB
Markdown

# Robin
**Linux, with a guide who's been there.**
Robin is a proactive Linux companion for users migrating from Windows or macOS. It watches your system, detects migration friction, and surfaces plain-language help before you know what to search for.
[![Status](https://img.shields.io/badge/status-concept-blueviolet)](https://git.opensourcesolarpunk.com/Circuit-Forge/robin)
[![License](https://img.shields.io/badge/license-BUSL--1.1-blue)](LICENSE)
---
## What Robin does
- Lives in your system tray — out of the way until it has something useful to say
- Watches journald, dmesg, and system events for common migration pain points
- Knows what you came from: "where's My Documents?" maps to `~/Documents`; "how do I install this .exe?" becomes a package manager explainer
- Learns what you already know — stops offering suggestions you keep dismissing
- All inference runs locally via Ollama — nothing leaves your machine
## Target users
People switching from Windows or macOS who are not comfortable with the terminal, don't know what a log is, and are experiencing friction they can't name.
Robin is **not** a sysadmin tool. See [Turnstone](https://git.opensourcesolarpunk.com/Circuit-Forge/turnstone) for that.
## Real test cases
| | Test case 1 | Test case 2 |
|---|---|---|
| **Source OS** | macOS | Windows |
| **Target distro** | CachyOS (Arch) | Linux Mint (Ubuntu/Debian) |
Both users' real friction points during migration are the ground truth for the pattern library.
---
## Stack
- **Backend:** Rust + [Tauri 2](https://tauri.app/)
- **Frontend:** Vue 3 + TypeScript (chat panel, onboarding)
- **System integration:** D-Bus, journald, inotify (via Rust crates)
- **LLM:** Ollama (local inference, any compatible model)
---
## Getting started (development)
### Prerequisites
**Arch/CachyOS:**
```bash
./manage.sh install-deps-arch
```
**Debian/Ubuntu/Mint:**
```bash
./manage.sh install-deps
```
You also need [Rust](https://rustup.rs/) and Node 18+.
### Dev mode
```bash
./manage.sh dev
```
This starts the Vite dev server and launches the Tauri app with hot-reload.
### Build
```bash
./manage.sh build
# Produces: src-tauri/target/release/robin
# Installers: src-tauri/target/release/bundle/
```
### Install as a service
```bash
./manage.sh install # registers systemd user service
./manage.sh start # start Robin
```
Robin starts with your desktop session and lives in the system tray.
---
## Milestones
| Milestone | Scope |
|-----------|-------|
| **M0: Scaffold** | Repo structure, Tauri skeleton, system tray placeholder, first-run onboarding |
| **M1: System presence** | journald/dmesg watcher, D-Bus events, desktop notifications, /etc/os-release detection |
| **M2: CachyOS/macOS patterns** | macOS → CachyOS translation layer, AUR failure detection — validated on Xander's machine |
| **M3: Mint/Windows patterns** | Windows → Mint translation layer, apt/Flatpak/Timeshift patterns — validated on Muninn |
| **M4: Robin agent** | Ollama integration, full chat, RAG migration knowledge base |
| **M5: Fluency model** | Dismissal learning, confidence calibration, graduation handoff |
---
## Architecture
```
System events (journald, dmesg, D-Bus, inotify)
Event classifier (pattern matching + Ollama when needed)
Migration context (source OS, distro, fluency level)
Robin agent (Ollama — local LLM)
+ Migration knowledge base (equivalents, common friction, distro docs)
Chat panel (Tauri webview, Vue 3)
+ System tray notifications
```
---
## License
System monitor and pattern matching: **MIT**
Robin chat agent and migration knowledge base: **BUSL-1.1** (converts to MIT after 4 years)
Part of the [Circuit Forge menagerie](https://git.opensourcesolarpunk.com/Circuit-Forge).