Sandbox
@shrijayan/itwillsync

CLI sync for terminal agents on your phone

itwillsync starts a terminal agent session and exposes it in a browser terminal on your phone. It uses QR code auth, WebSocket sync, and local-network or Tailscale transport so you can type, approve prompts, and watch progress away from your desk.

98 stars8 forksTypeScriptUpdated 9d ago
Run Claude Code from Your Phone (No Cloud, No Subscription)
Shrijayan143 views • 6 months ago
Who it's for

Builders who want to control terminal agents like Claude Code or Codex from a phone.

What it delivers

You can keep working with your agent from anywhere on your local network without cloud services or app installs.

What it does

Phone-based terminal control

Scan a QR code to open the live terminal in your phone browser and send commands back to the session.

Multi-session dashboard

See running agents, working directories, status, and uptime in one hub view, then tap into any session.

Agent-agnostic support

Works with Claude Code, Aider, Codex, Goose, Cline, or any command that runs in a terminal.

Local-only connection modes

Supports local WiFi, Tailscale, and localhost modes with a setup wizard that picks a default.

Encrypted session access

Uses per-session random tokens, QR code auth, and encrypted WebSocket traffic.

Mobile-friendly terminal

Includes touch keys, auto-reconnect, scrollback sync, and audio alerts for attention signals.

How to get it

  1. 1Run
    npx itwillsync claude        # Claude Code
    npx itwillsync aider         # Aider
    npx itwillsync bash          # or any terminal command

README

itwillsync

Sync any terminal-based AI coding agent to your phone over local network.

npm version License: MIT npm downloads CI

Sync any coding agent to your phone — one dashboard for all your sessions. Agent-agnostic, privacy-first, zero cloud.

Website | Docs | Demo Video

itwillsync demo: running npx itwillsync claude and QR code appearing in terminal

Quick Start

npx itwillsync claude        # Claude Code
npx itwillsync aider         # Aider
npx itwillsync bash          # or any terminal command

No install needed. Node.js 20+ required.

Why itwillsync

  • Control your agents from your phone

    • Scan a QR code and get full terminal access in your browser — no app install needed
    • Type commands, approve prompts, and fix errors right from your phone
    • Stay in the loop while you're away from your desk — kitchen, couch, coffee shop
  • One dashboard for all your sessions

    • See every running agent at a glance — status, working directory, uptime
    • Tap any session to jump into the full terminal
    • Get alerted when an agent needs your attention
  • Works with any agent

    • Claude Code, Aider, Codex, Goose, Cline — if it runs in a terminal, it works
    • Switch between agents without changing your workflow
    • Not locked to any single vendor or platform
  • Your data stays yours

    • Everything runs on your local network — nothing goes to the cloud
    • No accounts, no signup, no telemetry
    • End-to-end encrypted connections with per-session tokens
  • Zero friction to get started

    • One command: npx itwillsync claude — no install, no config
    • Works on macOS, Windows, and Linux

How It Works

┌─────────────────┐                           ┌─────────────────┐
│   Your Laptop   │  Local WiFi / Tailscale   │   Your Phone    │
│                 │                           │                 │
│  Agent (Claude, │    WebSocket + Auth       │  Browser-based  │
│  Aider, etc.)   │  ◄═════════════════════►  │  Terminal       │
│       ↕         │    Token in QR code       │  (xterm.js)     │
│  PTY (node-pty) │                           │  Touch keyboard │
│       ↕         │                           │  Extra keys bar │
│  HTTP + WS      │                           │                 │
│  Server         │                           │                 │
└─────────────────┘                           └─────────────────┘
  1. Run itwillsync with your agent command
  2. A QR code appears in your terminal
  3. Scan it on your phone — a terminal opens in your browser
  4. Control your agent from your phone, laptop, or both simultaneously

When To Use It

  • Walking to the kitchen while Claude works on a long refactor — check progress from your phone
  • Monitoring multiple agents from the couch via the multi-session dashboard
  • Getting a notification when your agent needs attention (auto-detects BEL/OSC signals)
  • Working from a coffee shop via Tailscale — no need to be on the same WiFi
  • Showing a colleague what your AI agents are doing — just share the QR code
  • Quick approval from your phone while you're in a meeting

Multi-Session Dashboard

Running multiple agents? The hub daemon manages all your sessions from one place.

┌─────────────────────────────────────┐
│  itwillsync Dashboard               │
│                                     │
│  ┌─────────────┐ ┌─────────────┐    │
│  │ Claude Code │ │ Aider       │    │
│  │ ~/myproject │ │ ~/api       │    │ 
│  │ ● Active    │ │ ⚠ Attention │    │
│  │ 12m uptime  │ │ 3m uptime   │    │
│  └─────────────┘ └─────────────┘    │
│                                     │
│  ┌─────────────┐                    │
│  │ Bash        │                    │
│  │ ~/scripts   │                    │
│  │ ○ Idle      │                    │
│  │ 45m uptime  │                    │
│  └─────────────┘                    │
└─────────────────────────────────────┘
  • Session cards show agent name, working directory, status, and uptime
  • Real-time updates via WebSocket
  • Tap a card to open the full terminal
  • Attention detection alerts you when an agent needs input
  • Sleep prevention keeps your machine awake during long tasks

Works With

Claude Code, Aider, Goose, Codex, Cline, Copilot CLI — or any terminal-based tool.

npx itwillsync claude          # Claude Code
npx itwillsync aider           # Aider
npx itwillsync goose            # Goose
npx itwillsync "codex --quiet"  # Codex
npx itwillsync bash             # Plain shell

If it runs in a terminal, itwillsync can sync it.

Connection Modes

ModeCommandWhen
Local WiFi (default)npx itwillsync claudePhone on same network
Tailscalenpx itwillsync --tailscale claudeAny network, anywhere
Localhostnpx itwillsync --localhost claudeSame machine only

On first run, a setup wizard detects your network and saves your preference.

# First run — wizard auto-detects Tailscale
npx itwillsync claude

# Override for a single session
npx itwillsync --tailscale claude
npx itwillsync --local claude

# Re-run the setup wizard
npx itwillsync setup

Commands

FlagDescription
--port <number>Port to listen on (default: 7964)
--localhostBind to 127.0.0.1 only
--tailscaleUse Tailscale for this session
--localUse local WiFi for this session
--no-qrDon't display QR code
setupRun the setup wizard
-h, --helpShow help
-v, --versionShow version

Security

  • E2E encrypted — all WebSocket messages encrypted with NaCl secretbox (XSalsa20-Poly1305)
  • Random tokens — each session generates a cryptographically random 64-character token
  • QR code auth — token is embedded in the QR code URL, no manual entry needed
  • WebSocket auth — all connections require the token (constant-time comparison)
  • Rate limiting — 5 failed auth attempts locks out the IP for 60 seconds
  • Zero cloud — no data leaves your local network (or Tailscale tailnet)
  • No accounts — no signup, no telemetry, no tracking

Mobile-Optimized

The phone terminal isn't just a mirror — it's built for mobile:

  • Touch-friendly extra keys bar — Ctrl, Alt, Tab, Escape, arrows, and function keys
  • WebGL-accelerated rendering on desktop, canvas fallback on mobile
  • Auto-reconnect with scrollback buffer sync if connection drops
  • Audio notifications when agents need attention

Development

git clone https://github.com/shrijayan/itwillsync.git
cd itwillsync
nvm use                          # Node 22
pnpm install
pnpm build                       # Build all packages
pnpm test                        # Run tests

Monorepo structure:

packages/
├── cli/           → Main npm package (itwillsync)
├── web-client/    → Browser terminal (xterm.js)
├── hub/           → Dashboard daemon
├── landing/       → Landing page
└── docs/          → VitePress documentation

See CONTRIBUTING.md for development setup and PR guidelines.

License

MIT

Files in the repo

Repository payload20 top-level entries
  • .github
  • .husky
  • docs
  • packages
  • scripts
  • .gitignore
  • .nvmrc
  • .pnpmrc.json
  • .releaserc.json
  • agentlog.md
  • CODE_OF_CONDUCT.md
  • CONTRIBUTING.md
  • eslint.config.js
  • LICENSE
  • package.json
  • pnpm-lock.yaml
  • pnpm-workspace.yaml
  • README.md
  • SECURITY.md
  • tsconfig.base.json

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More tools

JuliusBrussee/
caveman

🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman

105k
1 add
MemPalace/
mempalace

The best-benchmarked open-source AI memory system. And it's free.

59k
stablyai/
orca

Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

66k

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

132k

Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors

64k
headroomlabs-ai/
headroom

Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.

71k