About this project

# Crush A glamourous agentic coding assistant for the terminal, built by Charmbracelet. It connects your tools, codebase, and workflows to your LLM of choice directly from your command line. ## Key Capabilities - **Multi-Model Support**: Choose from a wide range of LLMs or configure your own via OpenAI- or Anthropic-compatible APIs. Switch models mid-session while preserving context. - **LSP Integration**: Uses Language Server Protocols to gather additional codebase context, similar to how IDEs operate. - **MCP Extension**: Extensible via Model Context Protocol servers using `http`, `stdio`, and `sse` transports. - **Session Management**: Maintain multiple work sessions and contexts per project, with cross-client workspace sharing over SSE. - **Configurable**: Bash-based `crushrc` configuration files for custom providers, models, permissions, and skills. Also supports JSON configuration. - **Themes**: Built-in color themes with live preview and customization via the command palette (`ctrl+p`). - **Agent Skills**: Supports the [Agent Skills](https://agentskills.io) open standard for reusable skill packages discoverable from global and project directories. - **Permission System**: Granular tool permissions — approve individually, allow/deny tool categories, or skip prompts entirely with `--yolo`. - **Cross-Platform**: Works on macOS, Linux, Windows (PowerShell/WSL), Android, FreeBSD, OpenBSD, and NetBSD. ## Installation Available via Homebrew, NPM, Arch Linux (btw), Nix, FreeBSD pkg, Debian/Ubuntu apt, Fedora/RHEL yum, Winget, Scoop, and direct Go install. ## Providers Supports Charm Hyper (default, privacy-focused with zero data retention), Anthropic, OpenAI, Gemini, OpenRouter, Groq, Hugging Face, Amazon Bedrock, Azure OpenAI, Alibaba, and many others. Environment variables or config files can set API keys. Nearly any provider compatible with OpenAI/Anthropic APIs can be added as a custom provider. ## Context Management - Respects `.gitignore` and supports `.crushignore` for additional file exclusions. - Global context files at `~/.config/crush/CRUSH.md` and `~/.config/AGENTS.md` for cross-project instructions. - LSPs and MCPs enrich agent decisions with project-specific context. ## Configuration Crush ships with a builtin skill for self-configuration. A `crushrc` is a Bash script with Crush-specific builtins, providing identical behavior across all platforms including Windows. Configuration priority applies project-local configs before global ones. The older JSON config format is still supported but deprecated.