Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/l2700l/reterm
Full featured terminal simulator
https://github.com/l2700l/reterm
npm package react simulator terminal
Last synced: 2 days ago
JSON representation
Full featured terminal simulator
- Host: GitHub
- URL: https://github.com/l2700l/reterm
- Owner: l2700l
- License: mit
- Created: 2023-04-14T12:08:08.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2023-08-08T00:55:20.000Z (over 1 year ago)
- Last Synced: 2025-01-28T14:04:45.065Z (14 days ago)
- Topics: npm, package, react, simulator, terminal
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/reterm
- Size: 307 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: docs/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: docs/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: docs/SECURITY.md
Awesome Lists containing this project
README
![]()
[![Project license](https://img.shields.io/github/license/l2700l/reterm.svg?style=flat-square)](LICENSE)
[![Pull Requests welcome](https://img.shields.io/badge/PRs-welcome-ff69b4.svg?style=flat-square)](https://github.com/l2700l/reterm/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
[![code with love by l2700l](https://img.shields.io/badge/%3C%2F%3E%20with%20%E2%99%A5%20by-l2700l-ff1414.svg?style=flat-square)](https://github.com/l2700l)Table of Contents
- [About](#about)
- [Built With](#built-with)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Usage](#usage)
- [Props](#props)
- [Roadmap](#roadmap)
- [Support](#support)
- [Project assistance](#project-assistance)
- [Contributing](#contributing)
- [Authors & contributors](#authors--contributors)
- [Security](#security)
- [License](#license)---
## About
Full featured terminal simulator.
There are many implementations of such terminals on the Internet, but, in my opinion, they are not functional enough. They represent the output of texts or elements on a predetermined command.
This simulator also supports the launch of third-party applications, the configuration of which is set from the outside.The goal of the project is to create a universal simulator with support for a virtual file system and running third-party applications
- Customizable commands, user, name and prompt.
- Virtual file system.
- Support third-party applications.
- Command history using arrow up and down.
- Support for copy/paste.
- Customizing theme.Screenshots
| Main | Help command |
|:----------------------------------------------------------------:|:-----------------------------------------------------------------------------:|
||
|
### Built With
- [Typescript](https://www.typescriptlang.org/)
- [React](https://react.dev/)
- [react-device-detect](https://www.npmjs.com/package/react-device-detect)
- [SASS](https://sass-lang.com/)## Getting Started
### Prerequisites
Your project must be a React app, version 17 or higher
### Installation
To install the library, write
```npm install reterm``` (or another package manager)
in your project.This will also install the react-detect-device library.
## Usage
You can use both the simulator itself and the terminal, which is a GUI wrapper over the simulator.
```typescript jsx
import {Terminal} from 'reterm';function App(props) {
return (
>>'}
/>
);
}
```
```typescript jsx
import {Simulator} from 'reterm';function App(props) {
const fs = {
'file': 'someText',
Directory: {
'file1': '=)',
'file2': 'UwU'
}
}
return (
);
}
```## Props
| name | description | default |
|-----------------|-------------------------------------------------------------------------------------------------------------|---------------|
| user | Username displayed on the command line. Value can be either a string or undefined | user |
| name | Computer name displayed on the command line. Value can be either a string or undefined | computer |
| borderRadius | An object that defines the rounding of the border | 0,0,0,0 |
| startMessage | A welcome message to show at the start, before the prompt begins. Value can be either a string or undefined | undefined |
| prompt | Terminal prompt | $ |
| theme | Custom theme | colors in css |
| fs | Virtual file system - an object whose keys are only either strings or other similar objects | {} |
| applications | An object whose keys are commands and whose values - are objects implementing the TermApp interface | {} |
| builtInCommands | Object responsible for the ability to use built-in commands | all true |## Roadmap
See the [open issues](https://github.com/l2700l/reterm/issues) for a list of proposed features (and known issues).
- [Top Feature Requests](https://github.com/l2700l/reterm/issues?q=label%3Aenhancement+is%3Aopen+sort%3Areactions-%2B1-desc) (Add your votes using the ๐ reaction)
- [Top Bugs](https://github.com/l2700l/reterm/issues?q=is%3Aissue+is%3Aopen+label%3Abug+sort%3Areactions-%2B1-desc) (Add your votes using the ๐ reaction)
- [Newest Bugs](https://github.com/l2700l/reterm/issues?q=is%3Aopen+is%3Aissue+label%3Abug)## Support
Reach out to the maintainer at one of the following places:
- [GitHub issues](https://github.com/l2700l/reterm/issues/new?assignees=&labels=question&template=04_SUPPORT_QUESTION.md&title=support%3A+)
- Contact options listed on [my site](https://l2700l.github.io)## Project assistance
If you want to say **thank you** or/and support active development of ReTerm:
- Add a [GitHub Star](https://github.com/l2700l/reterm) to the project.
- Tweet about the ReTerm.
- Write interesting articles about the project on [Dev.to](https://dev.to/), [Medium](https://medium.com/) or your personal blog.Together, we can make ReTerm **better**!
## Contributing
First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are **greatly appreciated**.
Please read [our contribution guidelines](docs/CONTRIBUTING.md), and thank you for being involved!
## Authors & contributors
The original setup of this repository is by [Alexander Hoffman](https://github.com/l2700l).
For a full list of all authors and contributors, see [the contributors page](https://github.com/l2700l/reterm/contributors).
## Security
ReTerm follows good practices of security, but 100% security cannot be assured.
ReTerm is provided **"as is"** without any **warranty**. Use at your own risk._For more information and to report security issues, please refer to our [security documentation](docs/SECURITY.md)._
## License
This project is licensed under the **MIT license**.
See [LICENSE](LICENSE) for more information.