Skip to content

Repository files navigation

Kelpie icon

Kelpie

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


What it is

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.

Status

TargetStatusNotes
iOSDoneMain mobile platform, actively usable
AndroidDoneMain mobile platform, actively usable
macOSDoneDesktop app is usable
LinuxIn progressDesktop shell exists, still evolving
WindowsNot doneVery much a work in progress. Not even worth launching yet
CLIDoneMain control surface for devices

Install

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.

Quick start

  1. Build and run the iOS or Android app on a device or simulator
  2. kelpie discover — lists all Kelpie instances on your network
  3. kelpie navigate --url https://example.com — or connect your LLM via MCP

Key features

  • 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

Architecture

 +-----------+ +-----------+ +-----------+ +-----------+
| 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 |
+---------+

Repository structure

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

Documentation

DocDescription
Product BriefWhat, why, how, MVP scope
ArchitectureComponents, data flow, protocols
Tech StackPlatform choices, dependencies
Feature CatalogueEvery user-facing feature
API ReferenceAll HTTP/MCP methods
CLI ReferenceCommands, flags, group operations

Sister projects

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.

License

MIT

About

LLM-first browser for mac, linux, iOS and Android — control real mobile browsers via mDNS, HTTP API, and MCP

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages