LLM-first browser for iOS, Android, macOS, and desktop work in progress.
Control real browsers via mDNS discovery, HTTP API, and MCP. AirPlay to Apple TV supported.
Website · Product Brief · Architecture · API Reference · CLI Reference
Native iOS, Android, and macOS browser apps paired with a Node.js CLI. Language models discover devices on the local network, then control them: navigate, screenshot, read DOM, click, fill forms, scroll, capture network traffic, evaluate JS. Works on real devices, simulators, and emulators. AirPlay an iPhone to an Apple TV and it appears as a second controllable device.
No emulators pretending to be phones. No persistent content scripts. No browser extensions. Real browsers on real hardware, fully controllable by LLMs.
| Target | Status | Notes |
|---|---|---|
| iOS | Done | Main mobile platform, actively usable |
| Android | Done | Main mobile platform, actively usable |
| macOS | Done | Desktop app is usable |
| Linux | In progress | Desktop shell exists, still evolving |
| Windows | Not done | Very much a work in progress. Not even worth launching yet |
| CLI | Done | Main control surface for devices |
npm install -g @unlikeotherai/kelpie
Published releases also attach Android artifacts plus Linux .tar.gz, .deb, .rpm, and .AppImage downloads. GitHub Pages publishes Linux package repositories for apt and dnf from the same release flow.
- Build and run the iOS or Android app on a device or simulator
kelpie discover— lists all Kelpie instances on your networkkelpie navigate --url https://example.com— or connect your LLM via MCP
- Real browsers — WKWebView (iOS/macOS), CEF (macOS), Android WebView, with native user agents
- Apple TV support — AirPlay from iPhone/iPad to Apple TV, TV appears as a separate controllable device
- mDNS discovery — devices advertise
_kelpie._tcp, CLI auto-discovers them - HTTP + MCP API — navigate, screenshot, DOM, click, fill, scroll, JS eval
- Group commands — send commands to all devices simultaneously
- Annotated screenshots — numbered labels on interactive elements for visual-first automation
- Safari / Chrome auth — one-tap login using saved passwords, cookies sync back
- Network inspector — capture XHR and fetch traffic with headers, bodies, timing
- Console capture — read console output and JS errors with stack traces
+-----------+ +-----------+ +-----------+ +-----------+
| Kelpie | | Kelpie | | Kelpie | | Apple TV |
| (iPhone) | | (iPad) | | (Android) | | (AirPlay) |
| HTTP+MCP | | HTTP+MCP | | HTTP+MCP | | HTTP+MCP |
| mDNS | | mDNS | | mDNS | | mDNS |
+-----+-----+ +-----+-----+ +-----+-----+ +-----+-----+
| | | |
+-------+-------+-------+-------+-------+-------+
| |
+------+---------------+------+
| Kelpie CLI |
| (Node.js / MCP) |
+-------------+---------------+
|
+----+----+
| LLM |
+---------+
apps/
ios/ iOS app (Swift, SwiftUI, WKWebView) + Apple TV via AirPlay
android/ Android app (Kotlin, Jetpack Compose, WebView)
macos/ macOS app (Swift, SwiftUI, WKWebView + CEF)
packages/
cli/ Node.js CLI and MCP server
docs/ Product brief, architecture, API reference, CLI docs
| Doc | Description |
|---|---|
| Product Brief | What, why, how, MVP scope |
| Architecture | Components, data flow, protocols |
| Tech Stack | Platform choices, dependencies |
| Feature Catalogue | Every user-facing feature |
| API Reference | All HTTP/MCP methods |
| CLI Reference | Commands, flags, group operations |
Kelpie uses AppReveal only for debug automation. The CLI helper and the in-app library are separate things, and the in-app SDK must never ship in release builds. See docs.md.
MIT
