Remote vibe coding on mobile
Cretli is a self-hosted PWA for remote coding with AI agents — terminal and chat on your phone, talking to your own PC.
Seven agent harnesses — OpenCode, OpenRouter, Cursor SDK, CodeBuddy, DeepSeek, Qwen Code, Codex. Security notes
Harnesses
Works with your harness
Seven pluggable harnesses on one WebSocket protocol — equal citizens, no lock-in. Terminal, files and git need no harness at all.
OpenCode
Drives a local opencode serve — the CLI ships via the optional opencode-ai npm package; authenticate with Zen or Z.AI.
OpenRouter
Bring your OpenRouter key for Claude, GPT, or open models — backed by server-side workspace tools.
Cursor SDK
Optional @cursor/sdk with your Cursor API key. Subject to Cursor's terms of service.
CodeBuddy
Optional Tencent agent SDK (@tencent-ai/agent-sdk) plus the CodeBuddy CLI and its own API key.
DeepSeek Harness
Optional DeepSeek Harness — the @deepseek-ai/dsh CLI plus the @deepseek-ai/dsh-sdk-client SDK, with your DeepSeek API key.
Qwen Code
Optional @qwen-code/sdk with a Qwen Cloud API key — pay-as-you-go, Token Plan, or Coding Plan.
Codex
Optional @openai/codex-sdk with the bundled Codex CLI — sign in with ChatGPT or set an API key.
Settings → Harness shows which backends are installed and ready. Just here for the terminal? Shell, files, and git work with zero API keys.
Features
Your PC, in your pocket
One small PWA between you and a full development machine — no cloud lock-in, no vendor middleman.
Full shell, files & git
A real terminal session as your user, with file browsing and git — streamed to your phone. Works with no API key at all.
Seven harnesses, zero lock-in
OpenRouter is built in — bring a key and go. OpenCode, Cursor SDK, CodeBuddy, DeepSeek, Qwen Code, and Codex plug in as optional packages. Switch anytime.
PWA first
Install to your home screen and it behaves like an app. Nothing to compile, no app store.
Works without keys
Terminal, files, and git need no API key. Bring a key only when you want cloud models.
Your infra, your rules
Runs on your own PC with Node 22.13+ or Docker. Shell, files, and git stay on your machine; cloud-model chats are opt-in with your own key.
Vibe coding, anywhere
Describe the change from the train, the sofa, or the office kitchen — an agent executes it on your machine and reports back, while you watch the terminal live.
Screenshots
See it running
Real screenshots from the current build — the PWA on a phone, and the same agent chat embedded as a widget.
Live session
One session, every screen
Open the same server on a second phone, a tablet, or a laptop — every screen watches the same terminal and chat update in real time.
- Broadcast to every client — one terminal PTY per session, and its output plus the agent chat stream to every device connected at once.
- Join in one scan — the app shows a link and QR code pointing at your LAN URL, so a second screen pairs without typing addresses.
- You own the address — Settings stores the LAN host (
CRETLI_LAN_HOST) that the link and QR point to, so it always matches your network. - No cloud account — screens talk to your server over LAN or VPN, never through a vendor middleman.
Go beyond localhost the way you trust — read Security first.
Voice
Talk it out — hands-free vibe coding
Voice mode is a continuous conversation with your agent, not a voice keyboard.
- Talk continuously — OpenAI Realtime or Gemini Live (the cheapest long conversations), with semantic VAD and noise reduction.
- Your voice steers the app — the agent runs tools as you speak: send prompts, stop the agent, switch chats, run tasks.
- Dictate or listen — push-to-talk dictation and read-aloud replies for when you'd rather not talk out loud.
- Guardrails built in — live cost estimate, warning at $2, hard cap at $5, session ends after 90 s of silence.
Microphone access needs HTTPS — npm run gen-cert issues a certificate for your LAN IP (answer the prompt), then open the site on your phone.
Widget
Drop Cretli into any page
Embed the same agent chat on your docs, dashboard, or project page — page context included, any harness.
- One script tag — the widget pairs with your server using an installation ID; no build step.
- Page context, on your terms — the agent sees only what you grant: DOM, console, network, screenshots, even interact and navigate.
- Same chat, any harness — the widget talks to the same backends as the app: OpenCode, Codex, Qwen Code, and the rest.
Embed snippet
<script src="https://your-pc:3011/dist/app/embed-widget.bundle.js" data-installation-id="YOUR-ID"></script>
Create the installation in Cretli Settings, paste the snippet, done.
Quick start
Up and running in minutes
Pick npm or Docker — both run the same self-hosted server. From a phone, reach it over your own LAN, VPN, or tunnel (steps in INSTALL.md).
npm
git clone https://github.com/cretli/cretli.git cd cretli npm install npm run build:front:prod npm start
Docker publishes localhost:3011
export CRETLI_SETUP_TOKEN="$(openssl rand -hex 16)" docker compose up --build
The setup token authorizes first access. Compose publishes a host-only port, so open it from your phone over LAN, VPN, or a tunnel — see INSTALL.md.
Termux
Your phone can be the server
No PC at hand? Run the whole server inside Termux on an Android phone and code from that very device — or let a tablet or laptop on Wi-Fi join the session.
- Full server on Android — the same npm install plus
npm run start:termux; no desktop, no Docker needed. - Code on the phone itself — open
https://127.0.0.1:3011in the phone's browser; the first run sets your access password. - Or broadcast over Wi-Fi —
npm run start:termux:lanbinds the phone's LAN IP so a tablet or laptop can join the same live session. - Stays awake —
start:termuxholds a CPU wake-lock when Termux:API is installed, so Android doesn't freeze the server in the background. - Android reality — chat works well with an OpenRouter key in Settings; heavy local agents and the Cursor SDK usually aren't available on Termux.
Full walkthrough, update steps, and LAN certificate details: docs/INSTALL.md
Termux on Android
pkg install git nodejs python make clang pkg-config openssl git clone https://github.com/cretli/cretli.git cd cretli npm install npm rebuild node-pty npm run build:front:prod npm run start:termux
Then open https://127.0.0.1:3011 in the phone's browser (Chrome or Firefox) and accept the self-signed certificate.
Security
Read this before anything else
⚠ Cretli exposes a full shell as your user
The default bind is localhost. Do not put it on the public internet. If you need remote access, keep it behind a VPN or a tunnel you control.
Full details: SECURITY.md
FAQ
Questions people ask
Is Cretli affiliated with Cursor or Anysphere?
No. Cursor SDK is just one of seven equal harnesses (OpenCode, OpenRouter, CodeBuddy, DeepSeek, Qwen Code, and Codex are the others). Using it is optional, and Cursor's terms of service apply to that backend.
Do I need an API key?
Not for terminal, files, or git. A key is only needed for cloud model backends (OpenRouter, Cursor SDK, CodeBuddy, DeepSeek, Qwen Code, Codex). OpenCode also supports Zen / Z.AI auth.
What do I need to run it?
Your own PC with Node 22.13+ (or Docker), and a phone with a modern browser. Cretli installs as a PWA — no app store involved.
How does my phone reach my PC?
Cretli runs a small server on your machine. By default it binds to localhost, so expose it the way you trust — LAN, VPN, or a private tunnel. Pairing uses a one-time setup token.
Can several devices use it at once?
Yes — multiple devices can share the same session live. Terminal output and chat are broadcast to every connected client, and the app shows a link and QR pointing at your LAN URL so a second screen joins in one scan. More in Live session.
Do I need a PC, or can a phone host it?
Cretli usually runs on your PC (Node 22.13+ or Docker), but the server itself runs fine inside Termux on an Android phone — npm run start:termux, then open the phone's own browser. See Termux for the full steps.
Is it production-ready?
Cretli is early and evolving fast (currently v0.2.0). It exposes a full shell as your user, so treat it as a dev tool for your own machines — keep the localhost default and read SECURITY.md before exposing it anywhere.
Is it really open source?
Yes — MIT licensed, developed in the open at github.com/cretli/cretli. Read the code before you run it; that's the point.
Take your dev machine with you
Self-hosted, open source, and yours. Clone it, run it, vibe from anywhere.