Mote 0.1
Run it locally. Change it live.
Mote is a working prototype: an AppKit status item and panel, a WKWebView, a local Vite/Svelte workspace, and a typed bridge to bounded native capabilities.
Run the prototype
Requirements: macOS 14+, Xcode command-line tools, and Bun. Clone the source, install the editable surface, then run the native host.
git clone https://github.com/acoyfellow/mote cd mote/workspace bun install cd .. ./scripts/run.sh
Click the mote in the menu bar. Right-click it for recovery controls. Edit workspace/src/App.svelte while Mote is running; Vite HMR updates the panel without rebuilding Swift.
The workspace is the product surface.
A Mote panel is an ordinary local Svelte project. There is no proprietary document format and no cloud round-trip in the edit loop.
workspace/
├── package.json
├── vite.config.ts
└── src/
├── App.svelte # interface
├── style.css # visual language
└── lib/native.ts # typed host bindings After dependencies exist locally, editing the panel does not require the network.
The native bridge
The Swift host injects one small Promise-based function into the webview. The Svelte SDK wraps command strings with typed methods.
import { native } from "./lib/native";
const status = await native.machinectl.status();
await native.machinectl.action("restart", "core");
await native.reachability.start(8 * 60 * 60); | Namespace | Commands |
|---|---|
app | info, configuration, open workspace, open logs |
machinectl | status, start, stop, restart |
reachability | status, start, stop |
maintenance | report, cleanup |
authResource | status, refresh, recover |
remoteCoordinator | overview, acknowledge, steer, open |
Custom configuration stays outside source.
Machine-specific resource names, endpoints, CLI paths, and private capability wiring live in a local runtime layer outside the repository and app bundle.
~/.mote/config/custom.json ~/.mote/scripts/
Public source uses only generic capability names. The custom layer can point to any local implementation without changing the Svelte API or publishing private details.
Architecture
End of current docs
Read the source →