@travisennis/acai
v0.0.14
Published
An AI assistant for developing software.
Readme
acai
Overview
Acai is an AI-driven command-line tool that assists software developers with coding, debugging, refactoring, and workflow automation. It provides both a conversational REPL and a modern TUI for interacting with large language models in the context of your codebase.
Key Capabilities
- Interactive AI Assistant: Conversational REPL and TUI with modal dialogs, autocomplete, and rich text formatting.
- Codebase Interaction: Read, edit, search, and navigate files with context-aware AI assistance.
- Git Integration: Generate conventional commits, review pull requests, and manage local changes.
- Multi-Model Support: Switch between OpenAI, Anthropic, Google, DeepSeek, Groq, X.AI, OpenRouter, OpenCode Zen, and OpenCode Go.
- Piped Input: Pipe text via stdin for REPL mode or as context with the
-pflag. - Skills System: Discover and load specialized instruction files for specific tasks.
- Multi-workspace Support: Work across multiple project directories simultaneously.
Prerequisites
- Node.js 24 or higher
- Git
- Ripgrep (
rg) - Fast file content searching - GitHub CLI (
gh) - Git operations and repository management
# macOS
brew install ripgrep gh
# Ubuntu/Debian
sudo apt install ripgrep ghInstallation
npm install -g @travisennis/acaiQuick Start
# Start interactive mode
acai
# Specify a model
acai --model anthropic:sonnet
# One-shot CLI mode
acai -p "What files contain the term 'toolCallRepair'?"
# Pipe input
echo "How many TypeScript files are in this project?" | acai
# Resume a previous session
acai --resumeOnce in the REPL, type prompts or use commands:
> How do I read a file in Node.js?
> @source/index.ts
> /helpReference files directly with @filename, directories with @dirname, or run shell commands with !`command`.
Technologies
- TypeScript and Node.js
- AI SDK (
@ai-sdk/*) for LLM provider integration - Ripgrep for fast file content searching
- Pino for structured logging
- Zod for schema validation
- Biome for formatting and linting
- Fallow for dead code, duplication, and complexity analysis
Project Structure
.
├── source/ # Main application source code
│ ├── agent/ # Agent loop
│ ├── cli.ts # CLI entry point
│ ├── commands/ # REPL command implementations
│ ├── execution/ # Command execution utilities
│ ├── middleware/ # AI request/response middleware
│ ├── models/ # AI model providers and management
│ ├── prompts/ # Prompt generation and management
│ ├── repl/ # REPL utilities
│ ├── sessions/ # Session persistence and management
│ ├── terminal/ # Terminal output formatting and rendering
│ ├── tui/ # Terminal User Interface components
│ ├── tools/ # AI-callable tools (filesystem, git, web, bash, etc.)
│ ├── tokens/ # Token counting and tracking
│ └── utils/ # Utility functions
├── test/ # Unit tests
├── docs/ # Additional documentation
├── ARCHITECTURE.md # Detailed architectural overview and flow diagrams
├── CONTRIBUTING.md # Development setup and guidelines
└── AGENTS.md # Project-specific AI rules and guidelinesDocumentation
- Usage Guide - Commands, keyboard shortcuts, piped input, and prompt syntax
- Configuration - Environment variables, project and global settings
- Skills System - Creating and using specialized instruction files
- Dynamic Tools - Creating custom tools to extend acai (supports bash, python, and other languages; Amp-compatible text schema format;
/tools makescaffolding command) - Architecture - Internal architecture and flow diagrams
- Contributing - Development setup, scripts, and code style
- Agent Instructions - Routing guide for AI agents working in this repo
- Agent Guardrails - Focused compatibility, security, testing, and documentation rules
Acknowledgments
Special thanks to OpenCode for providing access to their AI model aggregation service, which enables seamless integration with multiple state-of-the-art models through a unified API.
License
This project is licensed under the MIT License - see the LICENSE file for details.
