This MCP server bridges Claude with Yaver's phone-first development workflow. It exposes 473 tools for managing React Native projects that start as phone sandboxes and promote to your dev machine or cloud. You can export, import, and push phone projects, trigger Hermes reloads to iOS or Android, and orchestrate remote dev boxes running coding agents while streaming build output back to mobile. The primary path is phone sandbox to your hardware to optional Yaver Cloud, with the MCP layer handling project state, bundle compilation, and cross-device coordination. Reach for this if you're prototyping React Native apps from mobile and want Claude to manage the full build, test, and deployment chain across your phone, WSL box, or remote server without jumping to Firebase or Supabase first.
AI writes the code in seconds. The loop around it — build, install, reproduce, describe what's wrong, get back to the agent — still takes hours. Yaver closes that loop.
The yaver agent runs on hardware you already own: a Mac, a Linux box, a WSL machine, a Pi, or a VPS. Your coding agent works there, against your real repo. Every other surface — phone, watch, TV, car, AR/VR, browser — is a remote control and a preview target for that one machine.
It runs on the AI subscription you already pay for — no token markup, and your code never leaves your machine.
iOS and Android are the deepest path today. Watch, TV, car, and AR/VR surfaces live in this repo and share the same core.
npm install -g yaver-cli
yaver auth
yaver serve
On a headless box (Pi, VPS, SSH-only), yaver auth --headless prints a short code and a URL you can open from any browser.
npm is the only supported install path, on macOS (Apple Silicon + Intel), Linux (x64 + arm64), and Windows via WSL2. It downloads a signed, notarized agent binary for your platform.
Then grab the app and pair it with that machine:
Open Yaver, pick a project from your dev box, preview it on your phone, shake to vibe-code — fix a bug, ship a small feature, or tweak a style — and a fresh bundle lands in seconds. One screen, real device, no extra hardware.
Yaver ships an MCP server, so Claude Code, Codex, or opencode can drive your machine directly. You don't need a global install first — npx pulls the server on first run. Register it once, then ask the agent to call yaver_lazy_setup; it surfaces a sign-in link and pairs your device from inside the chat.
# Claude Code
claude mcp add --scope user yaver -- npx -y yaver-cli yaver-mcp
# Codex
codex mcp add yaver -- npx -y yaver-cli yaver-mcp
# opencode
npm install -g yaver-cli && yaver mcp setup opencode
Already installed globally? yaver mcp setup claude-code (or codex / opencode) writes the same entry, and yaver auth auto-registers every installed runner on first sign-in. Yaver is published to the official MCP registry as io.github.kivanccakmak/yaver. Codex Desktop can also load the repo-local plugin in plugins/yaver.
Full tool list and HTTP/remote setup: MCP guide.
yaver serve on your own machine.The CLI, agent, relay, and backend are all self-hostable. Client apps currently reach you through a thin hosted coordination plane for identity and device discovery; full client self-host is on the way.
A solo developer can run the open-source stack at $0.
| Component | Runs on | Cost |
|---|---|---|
| Yaver CLI + agent | Your dev machine | $0 |
| Yaver surface apps | iOS / Android / watch / TV / car / AR/VR | $0 |
| Web dashboard | Browser | $0 |
| Backend on your own machine | Your Mac / Linux / WSL / VPS | $0 + your hardware |
| Relay server | Self-host on any VPS | $0 |
| AI models (Ollama) | Your GPU or CPU | $0 |
The whole open-source stack is free: mobile app, CLI, agent, web dashboard, SDKs, and self-hosted relay. That's everything you need to build and iterate. Your coding agent brings its own login or subscription — Yaver never resells tokens.
An optional managed-cloud option, for people who don't want to run their own always-reachable box, is coming later. Self-hosting stays free.
| Path | Purpose |
|---|---|
desktop/agent/ | Go agent, CLI surfaces, local API, relay/P2P/runtime integrations |
mobile/ | React Native mobile app and native preview container |
watch/, wear/, tvos/ | Apple Watch, Wear OS, and Apple TV client surfaces |
web/ | Next.js marketing site and dashboard |
backend/convex/ | Hosted identity, session, and device-discovery metadata |
relay/ | QUIC relay service |
sdk/ | Public SDKs and feedback clients |
demo/ | Small fixture apps used to test SDK and push flows |
demo-videos/ | Source notes for the landing/demo clips |
docs/ | Architecture notes, setup guides, audits, handoffs, and planning material |
Yaver is one monorepo — this one. Agent, CLI, mobile, watch, TV, car, AR/VR, web, relay, backend, and SDKs all live here and ship together. Splitting them would only buy version skew between surfaces that have to agree.
Everything else in the yaver-io org is a
validation / use-case app — something whose only job is to exercise Yaver
from the outside. Those are separate repos precisely because they must be
clonable, buildable, and breakable on their own, exactly as a user's project
is. If they lived in here they'd inherit this repo's tooling and stop being an
honest test.
The rule: product code goes in this repo; anything that tests the product from outside gets its own repo.
The apps that prove Yaver works live in their own repos, not in this one. They are local-only todo apps — no backend, no accounts, no network — and they are deliberately boring, because they are the control.
The same todo app is built five ways. Yaver reaches each one differently, so when the loop feels different across stacks, it is the transport that differs and not the app:
| Repo | Stack | How Yaver reaches it |
|---|---|---|
| yaver-todo-rn | Expo / React Native | Hermes — the agent compiles an HBC bundle and the container swaps it in place |
| yaver-todo-kt | Native Android (Kotlin) | native-webrtc — runs on a build host, H.264 streamed to the phone, taps sent back |
| yaver-todo-swift | Native iOS (SwiftUI) | native-webrtc — same, macOS build host only |
| yaver-todo-flutter | Flutter / Dart | native-webrtc — Dart has no Hermes equivalent |
| yaver-todo-web | Next.js | dev server — HMR through the tunnelled port |
Hermes is React-Native-only: native and Flutter apps compile to real binaries and can never be loaded into the Yaver container. That is why three of the five exist — they are the only honest way to exercise the streaming path.
They are separate repos so they can be cloned, built, and broken without touching this one. Each README states what works and what doesn't per stack, including where a feedback SDK does not exist yet.
Docs index · Setup · Contributing · Runtime architecture · Protocol · Feedback SDK · Security · License
If an AI coding agent is setting Yaver up for you, point it at the canonical machine guide first:
curl -s https://yaver.io/llms.txt
Markdown in this repo is context, not source of truth. If a doc and the code disagree, trust the code and fix the doc in the same change.
# Web dashboard / landing
cd web && npm install && npm run dev
# Go agent tests
cd desktop/agent && go test ./...
Run the narrower package tests for the area you change — the repo spans Go, Node, React Native, Swift, Kotlin, Flutter, Unity, and embedded C.
The repo uses a split license: the core is FSL-1.1, which auto-converts to Apache-2.0 after two years, and the client SDKs are Apache-2.0 so you can embed them in closed-source apps. See docs/planning/LICENSING.md.
If your legal team needs the core under different terms, a commercial license is available — email kivanc.cakmak@simkab.com.
YAVER_HEADLESSSet to 1 to force device-code OAuth instead of opening a browser (useful in remote / WSL / sandboxed environments).