{"id":19520301,"url":"https://github.com/henryhale/xterminal","last_synced_at":"2026-04-05T11:01:55.452Z","repository":{"id":120773769,"uuid":"610027469","full_name":"henryhale/xterminal","owner":"henryhale","description":"🔳 Create web-based command line interfaces","archived":false,"fork":false,"pushed_at":"2026-04-05T09:12:17.000Z","size":5148,"stargazers_count":84,"open_issues_count":2,"forks_count":25,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-04-05T09:22:38.226Z","etag":null,"topics":["browser","console","development","henryhale","html","javascript","terminal","terminal-emulator","terminal-emulators","tty","typescript","web-based"],"latest_commit_sha":null,"homepage":"http://xterminal.js.org/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/henryhale.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-03-05T23:23:49.000Z","updated_at":"2026-04-05T09:12:21.000Z","dependencies_parsed_at":"2024-01-06T14:30:16.137Z","dependency_job_id":"46106c59-e7a6-4454-9936-e75cf3ed79c6","html_url":"https://github.com/henryhale/xterminal","commit_stats":{"total_commits":206,"total_committers":3,"mean_commits":68.66666666666667,"dds":"0.22815533980582525","last_synced_commit":"0c46bc465ad03b384b5b04c6e72b2a81194941b0"},"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/henryhale/xterminal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henryhale%2Fxterminal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henryhale%2Fxterminal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henryhale%2Fxterminal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henryhale%2Fxterminal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/henryhale","download_url":"https://codeload.github.com/henryhale/xterminal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henryhale%2Fxterminal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31433044,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T08:13:15.228Z","status":"ssl_error","status_checked_at":"2026-04-05T08:13:11.839Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser","console","development","henryhale","html","javascript","terminal","terminal-emulator","terminal-emulators","tty","typescript","web-based"],"created_at":"2024-11-11T00:24:52.172Z","updated_at":"2026-04-05T11:01:55.425Z","avatar_url":"https://github.com/henryhale.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg width=\"75\" height=\"75\" src=\"https://raw.githubusercontent.com/henryhale/xterminal/master/assets/logo-rounded.png\" /\u003e\n\u003ch1\u003eXTerminal\u003c/h1\u003e\n\u003cp\u003e\u003ci\u003eBuild Web-based Command-line Interfaces.\u003c/i\u003e\u003c/p\u003e\n\u003cimg alt=\"npm\" src=\"https://img.shields.io/npm/v/xterminal\"\u003e\n\u003cimg alt=\"GitHub release (latest SemVer)\" src=\"https://img.shields.io/github/v/release/henryhale/xterminal\"\u003e\n\u003cimg alt=\"npm bundle size\" src=\"https://img.shields.io/bundlephobia/minzip/xterminal\"\u003e\n\u003cimg alt=\"GitHub\" src=\"https://img.shields.io/github/license/henryhale/xterminal\"\u003e\n\u003c/div\u003e\n\n## Overview\n\n**Welcome to XTerminal!**\n\nThis library provides a simple, lightweight and perfomant solution for creating interactive web-based command-line interfaces (CLIs) with ease in your web applications. It aims to be a minimalist dependency-free alternative to popular libraries like [jquery.terminal](https://github.com/jcubic/jquery.terminal), offering improved performance and a simplified approach.\n\n## Inspiration\n\nThis project draws inspiration from the powerful [node:readline](https://nodejs.org/api/readline.html) module in Node.js, which has proven to be a reliable and efficient tool for command-line interactions. Additionally, inspiration is derived from the versatility and functionality of [xterm.js](https://github.com/xtermjs), a widely adopted library for web-based terminal emulators.\n\nBy combining the best features and ideas from these sources, this library aims to provide an accessible and performant solution for creating web-based CLIs that meet the needs of modern web applications.\n\n## Live Demo\n\nThere is a quick demo online: [Try It Yourself](https://xterminal.js.org/demo/).\n\n## Getting Started\n\n### Installation\n\nTo install `xterminal`, use [npm](https://npmjs.org/xterminal):\n\n```sh\nnpm install xterminal\n```\n\nalternatively use [unpkg](https://unpkg.com/xterminal) or [jsdelivr](https://cdn.jsdelivr.net/npm/xterminal).\n\n### Basic Usage\n\nImport the package and create a new instance of the `XTerminal` class:\n\n```html\n\u003clink rel='stylesheet' href='https://unpkg.com/xterminal/dist/xterminal.css'\u003e\n\n\u003cdiv id=\"app\"\u003e\u003c/div\u003e\n\n\u003cscript src='https://unpkg.com/xterminal/dist/xterminal.umd.js'\u003e\u003c/script\u003e\n\n\u003cscript\u003e\n  const term = new XTerminal()\n  term.mount('#app');\n  term.write('Hello World!\\n# ');\n\u003c/script\u003e\n```\n\nFor more detailed information, please refer to the [official documentation](https://xterminal.js.org/) online.\n\n## Documentation\n\nThe complete documentation for `XTerminal` can be found [here](https://xterminal.js.org/). It provides detailed information on installation, configuration, usage, and advanced features. You'll also find code examples and API references.\n\nThe full Public API for `XTerminal` can also be found within this [TypeScript declaration file](https://github.com/henryhale/xterminal/blob/master/source/types.ts).\n\n## Showcase\n\nSeveral projects that are using XTerminal are listed [here](https://xterminal.js.org/showcase). Feel free to open a pull request adding your project in this [file](https://github.com/henryhale/xterminal/blob/master/docs/showcase/index.md).\n\n## Browser Support\n\nSupporting wide range of browsers is the goal. Modern browsers, most specifically the latest versions of Chrome, Firefox, Safari, and Edge (for desktop and mobile devices) are supported.\n\n## Contributing\n\nThank you for checking out this awesome project. Any contributions to the project are [appreciated](https://xterminal.js.org/about/team.html), whether it's fixing bugs, adding new features, or improving documentation. To contribute, please follow these guidelines:\n\n- **Issues**: Before starting to work on a new feature or bug fix, please check the issue tracker to see if the task is already in progress or has been reported. If not, feel free to [open a new issue](https://github.com/henryhale/xterminal/issues/new) to discuss the proposed changes or bug fixes.\n- **Branching**: Create a new branch for each feature or bug fix you are working on. Use clear descriptive branch names that reflect the purpose of your changes e.g. `feature/events` or `bugfix/issue-1234`.\n\n## Development\n\nTo get started with development, follow these steps:\n\n### Prerequisites\n\n- [Node.js](https://nodejs.org) (\u003e=22)\n- [pnpm](https://pnpm.io/) (\u003e=10)\n\n### Setup\n\n1. Clone this repository: `git clone https://github.com/henryhale/xterminal.git`\n2. Navigate to the project directory: `cd xterminal`\n3. Install dependencies: `pnpm install`\n4. Start the development server: `pnpm dev`\n\n### Building the Library\n\nTo build the library, run `pnpm build`\n\nThis will generate the production-ready distribution files in the `dist` directory.\n\n## Related\n\n- [chalk-dom](https://github.com/henryhale/chalk-dom) - Chalk for the browser\n- [inken](https://github.com/henryhale/inken) - Terminal-like string styling for the browser\n- [viteshell](https://github.com/henryhale/viteshell) - A minimal bash-like shell implementation written in TypeScript\n\n## License\n\nCopyright (c) 2023-present [Henry Hale](https://github.com/henryhale/).\n\nReleased under the [MIT License](https://github.com/henryhale/xterminal/blob/master/LICENSE.txt).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenryhale%2Fxterminal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhenryhale%2Fxterminal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenryhale%2Fxterminal/lists"}