Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cyansalt/commas
A hackable, pluggable terminal, and also a command runner.
https://github.com/cyansalt/commas
electron terminal
Last synced: about 19 hours ago
JSON representation
A hackable, pluggable terminal, and also a command runner.
- Host: GitHub
- URL: https://github.com/cyansalt/commas
- Owner: CyanSalt
- License: isc
- Created: 2018-12-03T12:00:52.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2024-10-30T02:44:40.000Z (2 months ago)
- Last Synced: 2024-10-30T05:10:13.166Z (2 months ago)
- Topics: electron, terminal
- Language: TypeScript
- Homepage:
- Size: 5.47 MB
- Stars: 60
- Watchers: 4
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Commas
EN | [中文](docs/README-zh.md)
**Commas** is a hackable, pluggable terminal, and also a command runner. The name comes from **Com**mand **Mas**ter.
| Dark | Light |
| --- | --- |
| ![Screenshot](https://github.com/user-attachments/assets/0a478846-7079-46aa-9e2d-341e2de97dcc) | ![Screenshot](https://github.com/user-attachments/assets/56ccb758-0433-4295-af77-980d91642f24) |*Theme: [OneHalf](https://github.com/sonph/onehalf)*
## Installation
### Prebuilt version
[Download the latest version](https://github.com/CyanSalt/commas/releases)
It can also be installed via [Homebrew](https://brew.sh/) (especially on macOS)
```shell
brew install --cask cyansalt/cask/commas
```> [!WARNING]
> The prebuilt version of Windows or Linux don't work currently, see [#20](https://github.com/CyanSalt/commas/issues/20). It is recommended to build manually.### Build manually
You can clone or download the repository and build Commas locally.
- Make sure you have the latest LTS version of Node.js installed on your device.
- Download the source code and enter the directory through the command line.
- Run `pnpm install` to install dependencies
- Run `pnpm run build` to build this application for the current platform## Features
- Multi-tab support with customizable layout
- Duplicate or split from current terminal
- Theme system compatible with Windows Terminal
- Plug-in i18n support
- Built-in addons
- Run commands instantly on local or remote server
- Interact with the application in the terminal
- Access the local file system, edit files, and open web pages in the application
- Visual settings editor
- Command completion or fix based on AI
- Take screenshots, record, or share terminal sessions via LAN
- Integration with [whistle](https://github.com/avwo/whistle) proxy
- Gist-based configuration synchronization
- Other easter egg features
- User scripts and third-party addons## Customization
All of user data are stored in a separate **user data folder**, which is `~/Library/Application Support/Commas/` on macOS, `%localappdata%/Commas/` on Windows and `~/.config/Commas/` on Linux. These files can be shared between different devices. The configuration files (settings, key bindings, translations) are in YAML format, while the resource files (themes) are in JSON format.
### Configuration
You can configure the application's interface and functionality at a granular level via `settings.yaml`. For example, to enable font ligatures in the terminal:
```yaml
terminal.style.fontLigatures: true
```Additionally, the built-in `settings` addon supports managing these configurations in graphical forms.
### Theme
Commas supports windowsterminal-compatible theme files. You can place theme files in the `themes` directory of the user data folder, and then specify the theme name through the settings.
Commas will display a dark / light theme that follows your system's dark mode by default. You can specify the theme in dark / light mode separately, or you can change this behavior to keep the theme unchanged.
The built-in `theme` addon supports downloading themes from [windowsterminalthemes.dev](https://windowsterminalthemes.dev). There are currently 300+ available themes that can be downloaded and used.
### I18n
Commas currently has built-in supports for English and Simplified Chinese. You can also enable translation for other languages by adding / modifying the `translation.yaml` file under the user data folder. The content of the file can be something like part of [the translation file](https://github.com/CyanSalt/commas/blob/master/resources/locales/zh-CN.json).
You can also reference an existing translation file in the form of `@use: zh-CN` if you are using a dialect of one of the built-in languages.
### Addons and user scripts
Commas has several useful / interesting built-in [addons](https://github.com/CyanSalt/commas/tree/master/addons). In addition, you can also download / write third-party addons to be placed in the `addons` directory of the user data folder, and manage which addons you want to enable via settings.
With the built-in `addon-manager` addon, all built-in and self-added addons can be easily managed via a graphical interface.
Add-ons are based on a rich set of [hook APIs](https://github.com/CyanSalt/commas/tree/master/api). You can read the built-in addons for reference in writing your own addons. For some simple scenarios, you can add / modify the `custom.js` and `custom.css` files directly under the user data folder to implement custom logic and styles. `custom.js` also has full hook API support.
### Developer tools
The best part is that you can use the shortcut key ⌘ ⇧ I to open developer tool of Commas and inspect the HTML elements in the UI just like you would in a browser!
## License
ISC © [CyanSalt](https://github.com/CyanSalt)