A modern cross-platform terminal emulator powered by Electron, Vite, React, and xterm.js, featuring an AI assistant for generating safe and reproducible shell commands.
- Features
- Installation
- Configuration
- Usage
- Development
- Building
- Technologies
- Contributing
- License
- Acknowledgements
- Multi-tab terminal sessions with persistent shell processes (bash/zsh on Unix, PowerShell on Windows)
- Real-time error detection and notification in terminal output based on common error patterns
- Embedded AI assistant sidebar (OpenAI GPT-4) for generating safe and clear shell command suggestions
- Syntax highlighting for code snippets via highlight.js
- Intuitive UI with custom window controls, draggable regions, and theming built on React, TypeScript, and Tailwind CSS
- Cross-platform support: Windows, macOS, and Linux
- Automated packaging and auto-update support via electron-builder
- Node.js v18 or higher
- npm (or yarn)
git clone https://github.com/evermine18/calico-term.git
cd calico-term
npm installStart the development environment with hot-reload:
npm run devLaunch the Electron application:
npm run start- Format code:
npm run format - Lint code:
npm run lint - Type-check:
npm run typecheck
Perform a production build and package the application:
npm run buildPlatform-specific builds:
# Windows
npm run build:win
# macOS
npm run build:mac
# Linux
npm run build:linux- Electron & Vite (electron-vite)
- React & TypeScript
- xterm.js & node-pty
- Tailwind CSS & highlight.js
- OpenAI GPT-4 for AI assistant integration
- electron-builder for packaging and auto-updates
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/YourFeature) - Commit your changes (
git commit -m 'Add some feature') - Push to the branch (
git push origin feature/YourFeature) - Open a Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.
- Based on the electron-vite template
- Inspired by xterm.js and community contributions