129 lines
3.8 KiB
Markdown
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.
|
|
|
|
[](https://git.opensourcesolarpunk.com/Circuit-Forge/robin)
|
|
[](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).
|