Manef Shell OS (MSO)
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS v4
- Radix UI
- node-pty
- @xterm/xterm
- @anthropic-ai/sdk
- Konva / react-konva
- @imgly/background-removal
- yaml
- vaul
- lucide-react
- geist
- Vitest
- bun (package manager)
- Node 22 (runtime)
- systemd
Brief
"Your Linux server, finally usable from your phone." MSO is an open-source, mobile-friendly visual shell for a Linux server you own: it brings a real terminal, file manager, live system metrics and a BYOK AI assistant into one private browser workspace without running a full remote desktop. The concrete case it names: "Fix a server issue from your phone — check system health, open a real terminal, inspect logs, and restart a service without opening a laptop."
Constraints
- Public Alpha / Developer Preview. "The core auth, filesystem bounds, terminal, metrics, and slice architecture are implemented, but the project is still early and unaudited. Expect rough edges, breaking changes, and missing production hardening."
- Explicitly NOT an operating system, Linux distribution, desktop environment, VPS provider, or production-grade security platform. It runs on top of Linux as a normal non-root Node process.
- No multi-user support, and no third-party security audit (both stated as "No" in the README's own comparison table).
- Must be put behind Tailscale, a VPN, or a TLS reverse proxy with tight access control. "Do not expose the raw app port to the public internet." An authenticated session "can read allowed files and run commands as the user that owns the process. Treat it like SSH in a browser."
- `exec.run` is not sandboxed — cwd is bounded to the write roots but the command runs in the login shell as the service user, and the destructive-command denylist is "a short accident tripwire, not a guard".
- BYOK means you own the key, not that data stays on the box: everything the AI reads is sent to the model provider and re-sent every turn. Device approval is "an allowlist, not standards-based 2FA". Agents and Skills group tools for convenience and are "not a permission boundary".
- Not yet formally tested across a distro matrix — tested only on Ubuntu 22.04 and 24.04. Windows host, macOS host, non-systemd service install and root deployment are all unsupported.
- The shell skins (macOS / Windows / iOS / Android) are "UI preferences, not the core product"; the browser UI is "one frontend, not the product" — the `mso` CLI reaches the same API.
- node-pty has no Linux prebuild and is listed under `trustedDependencies`; install with bun or its postinstall is skipped and the whole `/api/v1` surface fails to load.