Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/henryhale/viteshell
✴️ A minimalistic shell implementation written in TypeScript.
https://github.com/henryhale/viteshell
bash henryhale shell terminal typescript
Last synced: 3 days ago
JSON representation
✴️ A minimalistic shell implementation written in TypeScript.
- Host: GitHub
- URL: https://github.com/henryhale/viteshell
- Owner: henryhale
- License: mit
- Created: 2023-08-09T09:15:55.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-08-22T01:57:31.000Z (3 months ago)
- Last Synced: 2024-11-09T09:40:52.346Z (5 days ago)
- Topics: bash, henryhale, shell, terminal, typescript
- Language: TypeScript
- Homepage: https://viteshell.js.org
- Size: 360 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
viteshell
A minimalistic shell implementation written in TypeScript.
## What is `viteshell`?
`viteshell` comes from [vite](https://en.wiktionary.org/wiki/vite), a French word for "quick" and [shell](https://en.wikipedia.org/wiki/Unix_shell), a program that executes other programs in response to text commands.
`viteshell` is lightweight shell implementation written in TypeScript that tends to work just like [bash](https://www.gnu.org/software/bash/). It is intended for use with [xterminal](https://github.com/henryhale/xterminal) but can as well be used elsewhere.
## Key Features
- **Perfomant**: It is lightweight and really fast.
- **Efficient Execution**: Commands are executed asynchronously (with promises).
- **TypeScript Support**: Type declaration files are provided for smooth development.
- **Shell Expansion**: Variable and alias substitution
- **Command Chaining & Pipes**: Piping & Chaininig commands using `;`, `|`, `&&` and `||`
- **Builtin Commands**: Contains commands such as _exit, clear, pwd, echo, alias, unalias, export, history & help_.
- **NodeJS-like Process object**: Contains _env, argv, stdout, and more_.
- **Alias**: Manage command aliases
- **Environment Variables**: Manage command aliases
- **Backup & Restore**: Save or restore the shell state
- **Abort signal**: Execution of a command can be aborted
- **Execution Timeout**: Command execution time limit> **Note**: Currently, `viteshell` only provides a platform for handling some basic shell operations. Support for other functionalities like input/output redirection, shell scripts, complex shell expansion and job control is not provided.
## Documentation
To get started with `viteshell`, read the [documentation here](https://viteshell.js.org).## Live Demo
The demo allows you to explore the features of `viteshell` and interact with the key functionalities.
Click the link below to access the live demo:[🚀 Live Demo](https://henryhale.github.io/vix)
## Browser Support
Promises and some other latest ECMAScript features are used in the source code.
Supporting a 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.## Development
To get started with development, follow these steps:
### Prerequisites
- [Node.js](https://nodejs.org) (>=14)
- [pnpm](https://pnpm.io/) (>=7)### Setup
1. Clone this repository: `git clone https://github.com/henryhale/viteshell.git`
2. Navigate to the project directory: `cd viteshell`
3. Install dependencies: `pnpm install`
4. Development: `pnpm dev`
5. Run tests using: `pnpm test`### Building the Library
To build the library, run `pnpm build`
This will generate the production-ready distribution files in the `dist` directory.
## License
Copyright (c) 2023-Present [Henry Hale](https://github.com/henryhale).
Released under the [MIT License](https://github.com/henryhale/viteshell/blob/master/LICENSE.txt).