You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .agents/skills/remobi-setup/references/tailscale-serve.md
+5-34Lines changed: 5 additions & 34 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,6 @@ Expose a tmux session as a mobile-friendly web terminal over your Tailscale netw
4
4
5
5
## Prerequisites
6
6
7
-
-[ttyd](https://github.com/tsl0922/ttyd) installed (`brew install ttyd` on macOS; Linux via distro package manager or source build from the [installation guide](https://github.com/tsl0922/ttyd#installation))
8
7
-[tmux](https://github.com/tmux/tmux) installed
9
8
-[Tailscale](https://tailscale.com/) configured with HTTPS enabled (`tailscale cert`)
10
9
- remobi installed (`npm install -g remobi`)
@@ -17,7 +16,7 @@ Expose a tmux session as a mobile-friendly web terminal over your Tailscale netw
17
16
remobi serve
18
17
```
19
18
20
-
This builds the overlay in memory, starts ttyd on an internal port, and serves on `:7681` with full PWA support (manifest, icons, meta tags).
19
+
This bundles the browser client in memory, starts remobi's built-in HTTP and WebSocket server, and spawns a local PTY-backed terminal session on `:7681` with full PWA support.
21
20
22
21
By default `remobi serve` binds to `127.0.0.1`, so it is not exposed on your LAN. Tailscale Serve is the thing that publishes it.
If you are tempted to run `remobi serve --host 0.0.0.0`, be explicit about the trade-off: that bypasses the localhost-only default and exposes terminal control directly on the bound network interface. Prefer keeping remobi on loopback and letting Tailscale handle reachability.
81
-
82
-
For cases where you need direct control over ttyd (e.g. custom flags, separate processes):
83
-
84
-
### 1. Build the overlay
85
-
86
-
```bash
87
-
remobi build --output ~/.cache/remobi/index.html
88
-
```
89
-
90
-
Always rebuild before starting to avoid stale overlay issues.
91
-
92
-
### 2. Start ttyd with the overlay
77
+
Current remobi releases do not depend on `ttyd`. If you are migrating an older setup, move it to `remobi serve` rather than trying to preserve the old `ttyd` path.
The old `ttyd` docs in this repo are historical only and are not a supported setup path on current releases.
109
80
110
-
Note: with the manual approach, PWA file refs (`/manifest.json`, `/apple-touch-icon.png`) will 404 — ttyd only serves a single HTML file. The inline SVG favicon still works. Use `remobi serve` for full PWA support.
81
+
If you are tempted to run `remobi serve --host 0.0.0.0`, be explicit about the trade-off: that bypasses the localhost-only default and exposes terminal control directly on the bound network interface. Prefer keeping remobi on loopback and letting Tailscale handle reachability.
Copy file name to clipboardExpand all lines: .agents/skills/remobi-setup/references/ttyd-flags.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
1
# Recommended ttyd flags
2
2
3
-
Reference for ttyd flags that work well with remobi.
3
+
Historical reference for old ttyd-based remobi setups.
4
4
5
-
> **Note:**`remobi serve`generates these flags automatically from your config. This guide is for manual `ttyd` usage with `remobi build`.
5
+
> **Legacy only:**current remobi releases no longer use `ttyd`, `remobi serve`does not generate ttyd flags, and `remobi build` is deprecated. Use `remobi serve` for supported setups. Keep this page only for understanding or migrating old pre-runtime installs.
Copy file name to clipboardExpand all lines: AGENTS.md
+13-8Lines changed: 13 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,19 +4,21 @@ Monitor and control your coding agents from your phone. Touch controls for tmux
4
4
5
5
## Architecture
6
6
7
-
Pure TypeScript + DOM API — no framework. Transpiles to JS via tsdown for npm distribution. Produces a single `index.html` for ttyd's `--index` flag via esbuild.
7
+
Pure TypeScript + DOM API — no framework. Transpiles to JS via tsdown for npm distribution. Bundles a browser client via esbuild and serves it from Node.
8
8
9
9
## Stack
10
10
11
11
-**Node 22+** — runtime
12
12
-**pnpm** — package manager
13
-
-**esbuild** — browser bundle (overlay JS)
13
+
-**esbuild** — browser client bundle
14
14
-**tsdown** — transpile TS → JS for npm publish
15
15
-**vitest** — test runner
16
16
-**TypeScript (strict)** — no `any`, discriminated unions for actions
17
17
-**Biome** — lint + format
18
18
-**happy-dom** — DOM testing
19
19
-**Hono** — HTTP + WebSocket server (`remobi serve`)
20
+
-**node-pty** — PTY bridge for `remobi serve`
21
+
-**xterm.js** — browser terminal rendering
20
22
21
23
## Key Commands
22
24
@@ -26,7 +28,7 @@ pnpm test # Run all tests
26
28
pnpm run test:pw # Playwright e2e tests (chromium + webkit)
27
29
pnpm run check # Biome lint + format check
28
30
pnpm run check:fix # Auto-fix lint + format
29
-
pnpm run build #Build dist/index.html (dev-time, uses tsx)
31
+
pnpm run build #Deprecated legacy command
30
32
pnpm run build:dist # Transpile for publishing (tsdown)
31
33
```
32
34
@@ -51,15 +53,15 @@ Commits must follow [Conventional Commits](https://www.conventionalcommits.org/)
- Breaking changes: `!` after type/scope or `BREAKING CHANGE:` in footer
56
+
- Breaking changes: include a `BREAKING CHANGE:` footer. `!` after type/scope is optional shorthand only and must be paired with the footer because semantic-release major detection relies on the footer.
55
57
56
58
**Choosing the right type matters** — it controls whether semantic-release publishes to npm:
57
59
58
60
| Type | Release | When to use |
59
61
|------|---------|-------------|
60
62
|`fix`| patch | Bug fix **visible to package consumers** (runtime behaviour, CLI output, published types) |
61
63
|`feat`| minor | New feature visible to consumers |
62
-
|`fix!`/`feat!`| major | Breaking change to public API |
64
+
|`BREAKING CHANGE:` footer | major | Breaking change to public API; `!` is optional shorthand but not sufficient on its own in this repo|
* load Unicode11Addon on headless mirror to align character widths ([54a3ec5](https://github.com/connorads/remobi/commit/54a3ec5b875098758d1a1b3d466f7517e025cc57))
19
+
* remove terminal padding that exposed white document background ([cd92504](https://github.com/connorads/remobi/commit/cd92504c93bbc223979a3c77b60a90b0f10a13da)), closes [#terminal](https://github.com/connorads/remobi/issues/terminal)
20
+
* set document background from theme to eliminate white border ([5c821ca](https://github.com/connorads/remobi/commit/5c821ca9d7e4aaea6ac6531bc93116b24166807e)), closes [#1e1e2e](https://github.com/connorads/remobi/issues/1e1e2e)[#terminal-container](https://github.com/connorads/remobi/issues/terminal-container)[#terminal](https://github.com/connorads/remobi/issues/terminal)
21
+
* strip TMUX env vars via destructuring instead of undefined assignment ([33fa6ec](https://github.com/connorads/remobi/commit/33fa6ec2ee550db3d88e789afd989735918685db))
* guard handleClientMessage against resize on exited PTY ([41043ee](https://github.com/connorads/remobi/commit/41043eee23b86005d180ecae770c1055aaa538de))
0 commit comments