Conversation
…8.3) and port 8080
feat: apply full-viewport layout, Dracula theme and FiraMono font
There was a problem hiding this comment.
Pull request overview
Ports the ghostty-web demo into wtty to establish the first functional end-to-end slice: a browser-rendered full-screen terminal backed by a real host PTY, served from a single HTTP + WebSocket server.
Changes:
- Add a single
src/server.tsHTTP/WebSocket server that serves inline HTML,ghostty-webassets, and PTY-backed sessions. - Introduce a dual PTY adapter layer (
Bunvs@lydell/node-pty) with runtime detection. - Reshape build/lint/tooling and add initial SPEC/ADR documentation for the bootstrap architecture.
Reviewed changes
Copilot reviewed 19 out of 21 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| tsconfig.lint.json | Adjusts lint TS config for Node-style module resolution. |
| tsconfig.json | Switches TS config to noEmit (build handled by Bun). |
| tsconfig.dts.json | Removes DTS-only build config. |
| src/server.ts | Adds the single-port HTTP + WebSocket + PTY server and inline terminal client. |
| src/pty/types.ts | Defines a shared PtyProcess interface across adapters. |
| src/pty/node.ts | Implements PTY spawn/resize/write/kill using @lydell/node-pty. |
| src/pty/index.ts | Runtime-detects Bun vs Node and selects the appropriate PTY adapter. |
| src/pty/bun.ts | Implements PTY-like adapter using Bun’s terminal integration. |
| src/index.ts | Removes prior placeholder API. |
| src/index.test.ts | Removes prior placeholder test. |
| scripts/build.ts | Simplifies build to a single Bun build entrypoint (src/server.ts). |
| package.json | Adds runtime deps and dev scripts; switches project to ESM. |
| docs/specs/wtty.md | Adds initial wtty SPEC describing architecture and roadmap. |
| docs/specs/ui.md | Adds initial UI SPEC for terminal + future session manager. |
| docs/specs/cli.md | Adds initial CLI SPEC describing intended control surface. |
| docs/development.md | Updates ADR naming/layout conventions (flat docs/adrs/). |
| docs/adrs/001.wtty.bootstrap.md | Adds bootstrap ADR documenting the port and key decisions. |
| bun.lock | Locks new dependencies (ghostty-web, ws, @lydell/node-pty, tsx, etc.). |
| biome.json | Updates Biome schema version reference. |
| .github/workflows/ci.yml | Updates CI test step to run the test script. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
jesse23
added a commit
that referenced
this pull request
Mar 23, 2026
feat: bootstrap — working web terminal (ghostty-web port)
jesse23
added a commit
that referenced
this pull request
Mar 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Port the
ghostty-webdemo into wtty as the first working slice — a full-screen terminal running in a browser tab backed by a real PTY.What's included
src/server.ts) serving the terminal HTML inline, ghostty-web assets, and PTY sessions on port2346Bun.Terminalwhen running under Bun (native, no addon),@lydell/node-ptyunder Node.js; runtime detected automatically viaprocess.versions.bundocs/specs/wtty.mdanddocs/adrs/001.wtty.bootstrap.mddocumenting the architecture and decisionsDev scripts
```
bun run dev # Bun.Terminal (recommended)
npm run dev:node # node-pty via tsx
bun run preview # run built dist/
```