From b5da8a28f6429130829d14a09520900a45de026e Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Sun, 4 Jan 2026 06:27:22 -0800 Subject: [PATCH] Update readme 2 --- README.md | 21 +++++++++------------ images/logo-full-x2.png | Bin 23129 -> 0 bytes 2 files changed, 9 insertions(+), 12 deletions(-) delete mode 100644 images/logo-full-x2.png diff --git a/README.md b/README.md index e183bb56..d001f160 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,4 @@ -
- -
+# [![xterm.js](images/logo-full.png)](https://xtermjs.org) Xterm.js is a frontend component that enables applications to bring fully-featured terminals to their users in the browser. It's used by popular projects such as [VS Code](https://code.visualstudio.com/) (and its forks), [Tabby](https://tabby.sh/) and [Hyper](https://hyper.is/). @@ -106,26 +104,25 @@ Some APIs may be marked with *experimental*, these are added to enable experimen ## Releases -Stable releases are done on an as needed basis, beta releases are continuously published off the `master` branch and this is what the principal implementation VS Code uses. Generally the beta builds are quite stable but can potentially contain breaking changes. - -All current and past releases are available on this repo's [releases page](https://github.com/sourcelair/xterm.js/releases), you can see what's planned for upcoming releases looking through the repository [milestones](https://github.com/sourcelair/xterm.js/milestones). +Stable releases are done on an as needed basis. All current and past releases are available on this repo's [releases page](https://github.com/sourcelair/xterm.js/releases), you can see what's planned for upcoming releases looking through the repository [milestones](https://github.com/sourcelair/xterm.js/milestones). ### Beta builds -Our CI releases beta builds to npm for every change that goes into master. Install the latest beta build with: +Beta releases are continuously published off the `master` branch. Install the latest beta build with: ```bash -npm install -S @xterm/xterm@beta +npm install --save @xterm/xterm@beta ``` -These should generally be stable, but some bugs may slip in. We recommend using the beta build primarily to test out new features and to verify bug fixes. +The principal implementation (VS Code) typically uses the latest or near the latest beta build. Generally they are quite stable but can potentially contain bugs or breaking changes. If stability is very important we recommend using the beta build primarily to test out new features and to verify bug fixes, unless you're tracking what's landing and are comfortable taking that risk. ## Contributing -You can read the [guide on the wiki](https://github.com/xtermjs/xterm.js/wiki/Contributing) to learn how to contribute and set up xterm.js for development. +Read [CONTRIBUTING.md](https://github.com/xtermjs/xterm.js/blob/master/CONTRIBUTING.md) to learn how to contribute to the project. ## Real-world uses -Xterm.js is used in several world-class applications to provide great terminal experiences. + +Xterm.js is used in many world-class applications to provide great terminal experiences. - [**SourceLair**](https://www.sourcelair.com/): In-browser IDE that provides its users with fully-featured Linux terminals based on xterm.js. - [**Microsoft Visual Studio Code**](http://code.visualstudio.com/): Modern, versatile, and powerful open source code editor that provides an integrated terminal based on xterm.js. @@ -234,7 +231,7 @@ Xterm.js is used in several world-class applications to provide great terminal e - [**EmuDevz**](https://afska.github.io/emudevz): A free coding game where players learn how to build an emulator from scratch. - [And much more...](https://github.com/xtermjs/xterm.js/network/dependents?package_id=UGFja2FnZS0xNjYzMjc4OQ%3D%3D) -Do you use xterm.js in your application as well? Please [open a Pull Request](https://github.com/sourcelair/xterm.js/pulls) to include it here. We would love to have it on our list. Note: Please add any new contributions to the end of the list only. +Do you use xterm.js in your application as well? Please [open a Pull Request](https://github.com/sourcelair/xterm.js/pulls) to include it here. We would love to have it on our list. Please add any new contributions to the end of the list. ## License Agreement diff --git a/images/logo-full-x2.png b/images/logo-full-x2.png deleted file mode 100644 index 5581282d5f24c8b7c4bdeeed79b3f93c6fc0efb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23129 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 z P_Sp4_50wSn623oq_xZ?)^=&Jy*Y`&uV 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 Y@UdOYY0lbE1_lNOPgg&ebxsLQ07^