An AI-powered terminal coding assistant built with Bun, TypeScript, and Ink
TerminAI is an interactive terminal-based coding assistant that brings the power of conversational coding directly to your command line. Built with modern technologies like Bun and Ink (React for CLIs), it provides a seamless chat experience with integrated bash command execution and a smart permission system.
- π― Interactive AI Chat - Conversational AI assistance directly in your terminal
- π§ Bash Command Execution - Execute shell commands with AI assistance
- π‘οΈ Permission System - Granular control over command execution with safety prompts
- β‘ Blazingly Fast - Built with Bun for lightning-fast performance
- π¨ Beautiful Terminal UI - Powered by Ink (React for terminals)
- πΎ State Management - Efficient state handling with nanostores
- π§ͺ Well Tested - Comprehensive test coverage with Bun's built-in test runner
- π Error Handling - Robust error boundaries and graceful fallbacks
# Global installation (when published)
npm install -g terminai
# or with bun
bun add -g terminai
# Run
terminai# Clone the repository
git clone https://github.com/marcushohlbein/terminai.git
cd terminai
# Install dependencies
bun install
# Run in development mode
bun run devStart the AI assistant:
bun run devSimply type your questions and press Enter to chat with the AI assistant.
Switch to bash mode to execute shell commands with AI assistance. The permission system will prompt you before executing any commands.
This is a monorepo containing the TerminAI CLI application:
terminai/
βββ packages/
β βββ cli/ # Main CLI application
β βββ src/
β β βββ components/ # Ink React components
β β βββ hooks/ # Custom React hooks
β β βββ store/ # Nanostores state management
β β βββ types/ # TypeScript type definitions
β β βββ utils/ # Utility functions
β βββ package.json
β βββ README.md # Detailed CLI documentation
βββ LICENSE
βββ package.json
βββ README.md
- Bun 1.2 or higher
- Git
# Clone the repository
git clone https://github.com/marcushohlbein/terminai.git
cd terminai
# Install dependencies
bun install
# Run in development mode
bun run devbun run dev- Start the CLI in development modebun run test- Run testsbun run test:watch- Run tests in watch modebun run test:coverage- Generate test coverage reportbun run check- Run linting and formatting checksbun run check-types- Type check the codebase
# Run all tests
bun test
# Run tests in watch mode
bun test --watch
# Generate coverage report
bun test --coverage- Runtime: Bun - Fast all-in-one JavaScript runtime
- UI Framework: Ink - React for CLIs
- Language: TypeScript - Type-safe JavaScript
- State Management: Nanostores - Lightweight state manager
- Testing: Bun Test - Built-in test runner
- Linting: Biome & Ultracite - Fast code quality tools
- Monorepo: Turborepo - High-performance build system
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests and linting (
bun test && bun run check) - Commit your changes (
git commit -m 'Add amazing feature') - Push to your branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Marcus Hohlbein
- GitHub: @marcushohlbein
- Built with Bun
- UI powered by Ink
- State management by Nanostores
For detailed CLI documentation, see the CLI README.