itwillsync 1.7.1 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,79 +1,215 @@
1
+ <div align="center">
2
+
1
3
  # itwillsync
2
4
 
3
- **[Website](https://shrijayan.github.io/itwillsync/)** | **[Docs](https://shrijayan.github.io/itwillsync/docs/)** | **[npm](https://www.npmjs.com/package/itwillsync)** | **[Demo Video](https://youtu.be/Zc0Tb98CXh0)**
5
+ **Sync any terminal-based AI coding agent to your phone over local network.**
4
6
 
5
- Sync any terminal-based coding agent to your phone. Local network or Tailscale. Open source, agent-agnostic, zero cloud.
7
+ [![npm version](https://img.shields.io/npm/v/itwillsync)](https://www.npmjs.com/package/itwillsync)
8
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
9
+ [![npm downloads](https://img.shields.io/npm/dm/itwillsync)](https://www.npmjs.com/package/itwillsync)
10
+ [![CI](https://github.com/shrijayan/itwillsync/actions/workflows/ci.yml/badge.svg)](https://github.com/shrijayan/itwillsync/actions/workflows/ci.yml)
6
11
 
12
+ Sync any coding agent to your phone — one dashboard for all your sessions. Agent-agnostic, privacy-first, zero cloud.
13
+
14
+ [Website](https://shrijayan.github.io/itwillsync/) | [Docs](https://shrijayan.github.io/itwillsync/docs/) | [Demo Video](https://youtu.be/Zc0Tb98CXh0)
15
+
16
+ <!-- TODO: Replace with demo GIF once recorded -->
17
+ <!-- <img src="docs/assets/demo.gif" alt="itwillsync demo: scanning QR code to connect phone to Claude Code terminal session over local WiFi" width="700"> -->
18
+
19
+ </div>
20
+
21
+ ---
22
+
23
+ ## Quick Start
24
+
25
+ ```bash
26
+ npx itwillsync claude # Claude Code
27
+ npx itwillsync aider # Aider
28
+ npx itwillsync bash # or any terminal command
7
29
  ```
8
- npx itwillsync claude
9
- npx itwillsync aider
10
- npx itwillsync bash
11
- ```
12
30
 
13
- ## How it works
31
+ No install needed. Node.js 20+ required.
32
+
33
+ ## Why itwillsync
34
+
35
+ - **Control your agents from your phone**
36
+ - Scan a QR code and get full terminal access in your browser — no app install needed
37
+ - Type commands, approve prompts, and fix errors right from your phone
38
+ - Stay in the loop while you're away from your desk — kitchen, couch, coffee shop
39
+
40
+ - **One dashboard for all your sessions**
41
+ - See every running agent at a glance — status, working directory, uptime
42
+ - Tap any session to jump into the full terminal
43
+ - Get alerted when an agent needs your attention
44
+
45
+ - **Works with any agent**
46
+ - Claude Code, Aider, Codex, Goose, Cline — if it runs in a terminal, it works
47
+ - Switch between agents without changing your workflow
48
+ - Not locked to any single vendor or platform
49
+
50
+ - **Your data stays yours**
51
+ - Everything runs on your local network — nothing goes to the cloud
52
+ - No accounts, no signup, no telemetry
53
+ - End-to-end encrypted connections with per-session tokens
54
+
55
+ - **Zero friction to get started**
56
+ - One command: `npx itwillsync claude` — no install, no config
57
+ - Works on macOS, Windows, and Linux
58
+
59
+ ## How It Works
60
+
61
+ ```
62
+ ┌─────────────────┐ ┌─────────────────┐
63
+ │ Your Laptop │ Local WiFi / Tailscale │ Your Phone │
64
+ │ │ │ │
65
+ │ Agent (Claude, │ WebSocket + Auth │ Browser-based │
66
+ │ Aider, etc.) │ ◄═════════════════════► │ Terminal │
67
+ │ ↕ │ Token in QR code │ (xterm.js) │
68
+ │ PTY (node-pty) │ │ Touch keyboard │
69
+ │ ↕ │ │ Extra keys bar │
70
+ │ HTTP + WS │ │ │
71
+ │ Server │ │ │
72
+ └─────────────────┘ └─────────────────┘
73
+ ```
14
74
 
15
75
  1. Run `itwillsync` with your agent command
16
76
  2. A QR code appears in your terminal
17
- 3. Scan it on your phone — opens a terminal in your browser
18
- 4. Control your agent from your phone (or both phone and laptop simultaneously)
77
+ 3. Scan it on your phone — a terminal opens in your browser
78
+ 4. Control your agent from your phone, laptop, or both simultaneously
19
79
 
20
- ## Requirements
80
+ ## When To Use It
21
81
 
22
- - Node.js 20+
23
- - Any terminal-based coding agent (Claude Code, Aider, Goose, Codex, or just `bash`)
82
+ - **Walking to the kitchen** while Claude works on a long refactor — check progress from your phone
83
+ - **Monitoring multiple agents** from the couch via the multi-session dashboard
84
+ - **Getting a notification** when your agent needs attention (auto-detects BEL/OSC signals)
85
+ - **Working from a coffee shop** via Tailscale — no need to be on the same WiFi
86
+ - **Showing a colleague** what your AI agents are doing — just share the QR code
87
+ - **Quick approval** from your phone while you're in a meeting
24
88
 
25
- ## Install & Use
89
+ ## Multi-Session Dashboard
26
90
 
27
- ```bash
28
- # Run directly (no install needed)
29
- npx itwillsync claude
91
+ Running multiple agents? The hub daemon manages all your sessions from one place.
92
+
93
+ ```
94
+ ┌─────────────────────────────────────┐
95
+ │ itwillsync Dashboard │
96
+ │ │
97
+ │ ┌─────────────┐ ┌─────────────┐ │
98
+ │ │ Claude Code │ │ Aider │ │
99
+ │ │ ~/myproject │ │ ~/api │ │
100
+ │ │ ● Active │ │ ⚠ Attention │ │
101
+ │ │ 12m uptime │ │ 3m uptime │ │
102
+ │ └─────────────┘ └─────────────┘ │
103
+ │ │
104
+ │ ┌─────────────┐ │
105
+ │ │ Bash │ │
106
+ │ │ ~/scripts │ │
107
+ │ │ ○ Idle │ │
108
+ │ │ 45m uptime │ │
109
+ │ └─────────────┘ │
110
+ └─────────────────────────────────────┘
30
111
  ```
31
112
 
32
- On first run, a setup wizard asks how you want to connect — local WiFi or Tailscale. Your choice is saved for future sessions.
113
+ - Session cards show agent name, working directory, status, and uptime
114
+ - Real-time updates via WebSocket
115
+ - Tap a card to open the full terminal
116
+ - Attention detection alerts you when an agent needs input
117
+ - Sleep prevention keeps your machine awake during long tasks
33
118
 
34
- ## Connect from Anywhere with Tailscale
119
+ ## Works With
35
120
 
36
- By default, your phone needs to be on the same WiFi. With [Tailscale](https://tailscale.com), you can connect from anywhere coffee shop, cellular, different network.
121
+ Claude Code, Aider, Goose, Codex, Cline, Copilot CLIor any terminal-based tool.
37
122
 
38
123
  ```bash
39
- # First time: the setup wizard will detect Tailscale automatically
40
- itwillsync claude
124
+ npx itwillsync claude # Claude Code
125
+ npx itwillsync aider # Aider
126
+ npx itwillsync goose # Goose
127
+ npx itwillsync "codex --quiet" # Codex
128
+ npx itwillsync bash # Plain shell
129
+ ```
41
130
 
42
- # Or use Tailscale for a single session
43
- itwillsync --tailscale claude
131
+ If it runs in a terminal, itwillsync can sync it.
44
132
 
45
- # Switch back to local WiFi for a session
46
- itwillsync --local claude
133
+ ## Connection Modes
47
134
 
48
- # Re-run setup anytime
49
- itwillsync setup
50
- ```
135
+ | Mode | Command | When |
136
+ |------|---------|------|
137
+ | **Local WiFi** (default) | `npx itwillsync claude` | Phone on same network |
138
+ | **Tailscale** | `npx itwillsync --tailscale claude` | Any network, anywhere |
139
+ | **Cloudflare Tunnel** | `npx itwillsync --tunnel cloudflare claude` | Remote, no VPN needed |
140
+ | **Localhost** | `npx itwillsync --localhost claude` | Same machine only |
51
141
 
52
- **Setup:** Install Tailscale on both your computer and phone. That's it — itwillsync detects it automatically.
142
+ On first run, a setup wizard detects your network and saves your preference.
53
143
 
54
- ## Options
144
+ ```bash
145
+ # First run — wizard auto-detects Tailscale
146
+ npx itwillsync claude
55
147
 
148
+ # Override for a single session
149
+ npx itwillsync --tailscale claude
150
+ npx itwillsync --local claude
151
+
152
+ # Re-run the setup wizard
153
+ npx itwillsync setup
56
154
  ```
57
- Commands:
58
- setup Run the setup wizard (change networking mode)
59
-
60
- Options:
61
- --port <number> Port to listen on (default: 3456)
62
- --localhost Bind to 127.0.0.1 only (no LAN access)
63
- --tailscale Use Tailscale for this session
64
- --local Use local WiFi for this session
65
- --no-qr Don't display QR code
66
- -h, --help Show help
67
- -v, --version Show version
68
- ```
155
+
156
+ ## Commands
157
+
158
+ | Flag | Description |
159
+ |------|-------------|
160
+ | `--port <number>` | Port to listen on (default: 3456) |
161
+ | `--localhost` | Bind to 127.0.0.1 only |
162
+ | `--tailscale` | Use Tailscale for this session |
163
+ | `--local` | Use local WiFi for this session |
164
+ | `--tunnel <provider>` | Use a tunnel for remote access (cloudflare) |
165
+ | `--no-qr` | Don't display QR code |
166
+ | `setup` | Run the setup wizard |
167
+ | `-h, --help` | Show help |
168
+ | `-v, --version` | Show version |
69
169
 
70
170
  ## Security
71
171
 
72
- - Each session generates a random 64-character token
73
- - Token is embedded in the QR code URL
74
- - All WebSocket connections require the token
75
- - No data leaves your network (local mode) or your Tailscale tailnet
172
+ - **E2E encrypted** all WebSocket messages encrypted with NaCl secretbox (XSalsa20-Poly1305)
173
+ - **Random tokens** each session generates a cryptographically random 64-character token
174
+ - **QR code auth** token is embedded in the QR code URL, no manual entry needed
175
+ - **WebSocket auth** all connections require the token (constant-time comparison)
176
+ - **Rate limiting** — 5 failed auth attempts locks out the IP for 60 seconds
177
+ - **Zero cloud** — no data leaves your local network (or Tailscale tailnet)
178
+ - **No accounts** — no signup, no telemetry, no tracking
179
+
180
+ ## Mobile-Optimized
181
+
182
+ The phone terminal isn't just a mirror — it's built for mobile:
183
+
184
+ - **Touch-friendly extra keys bar** — Ctrl, Alt, Tab, Escape, arrows, and function keys
185
+ - **WebGL-accelerated rendering** on desktop, canvas fallback on mobile
186
+ - **Auto-reconnect** with scrollback buffer sync if connection drops
187
+ - **Audio notifications** when agents need attention
188
+
189
+ ## Development
190
+
191
+ ```bash
192
+ git clone https://github.com/shrijayan/itwillsync.git
193
+ cd itwillsync
194
+ nvm use # Node 22
195
+ pnpm install
196
+ pnpm build # Build all packages
197
+ pnpm test # Run tests
198
+ ```
199
+
200
+ Monorepo structure:
201
+
202
+ ```
203
+ packages/
204
+ ├── cli/ → Main npm package (itwillsync)
205
+ ├── web-client/ → Browser terminal (xterm.js)
206
+ ├── hub/ → Dashboard daemon
207
+ ├── landing/ → Landing page
208
+ └── docs/ → VitePress documentation
209
+ ```
210
+
211
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and PR guidelines.
76
212
 
77
- ## Works with
213
+ ## License
78
214
 
79
- Claude Code, Aider, Goose, Codex, Cline, Copilot CLI, or any terminal-based tool.
215
+ [MIT](LICENSE)