New SourceOs variants: Android, IpadOs — routed to android-to-* and
ipad-to-* pattern files respectively. Pattern bodies assume zero terminal
experience; every command explained from first principles with App Store /
iOS analogies.
Dual-boot supplement system: PatternFile::extend() + load_supplement()
in patterns.rs; lib.rs loads dualboot-{windows,macos}.toml on top of the
primary pattern file when migration.dual_boot_with is set. Supplement
covers NTFS dirty flag from Fast Startup, clock skew (RTC local vs UTC),
GRUB overwrite by Windows Update, BitLocker, APFS/HFS+ access, T2 Secure
Boot.
complete_onboarding() now accepts dual_boot_with: Option<String> and
normalises it to "windows"/"macos". Onboarding.vue becomes a 3-step flow:
source OS -> (Linux distro if linux) -> (dual-boot if windows/macos).
Mobile users skip the dual-boot step entirely.
10 new pattern files (8 mobile + 2 supplements), config.rs tests updated.
|
||
|---|---|---|
| .vscode | ||
| public | ||
| src | ||
| src-tauri | ||
| .gitignore | ||
| index.html | ||
| manage.sh | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
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.
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 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
- 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:
./manage.sh install-deps-arch
Debian/Ubuntu/Mint:
./manage.sh install-deps
You also need Rust and Node 18+.
Dev mode
./manage.sh dev
This starts the Vite dev server and launches the Tauri app with hot-reload.
Build
./manage.sh build
# Produces: src-tauri/target/release/robin
# Installers: src-tauri/target/release/bundle/
Install as a service
./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.