Signup Bonus

Get +1,000 bonus credits on Pro, +2,500 on Business. Start building today.

View plans
NovaKit
← Back to Blog

NovaKit CLI vs Crush CLI: Battle of the AI Coding Agents

A detailed comparison between NovaKit CLI and Charm's Crush CLI. Explore which AI terminal coding agent suits your development needs.

14 min readNovaKit Team
CLIAI CodingDeveloper ToolsNovaKitCrushCharmTerminalComparison

NovaKit CLI vs Crush CLI: Battle of the AI Coding Agents

The AI coding assistant landscape continues to evolve rapidly, with terminal-based agents becoming increasingly sophisticated. Two powerful contenders in this space are NovaKit CLI and Crush CLI (by Charm). Both tools bring AI-powered coding assistance directly to your terminal, but they take distinctly different approaches. This comprehensive comparison will help you choose the right tool for your workflow.

Overview

NovaKit CLI

NovaKit CLI is a TypeScript-based AI coding agent built with React/Ink, delivering a rich terminal user interface with deep code intelligence capabilities. It emphasizes semantic code search, comprehensive LSP integration, and a flexible multi-provider architecture.

Key Highlights:

  • TypeScript + React/Ink architecture
  • Vector-indexed semantic code search (LanceDB)
  • Full LSP integration (goto definition, references, hover)
  • Three operating modes (Agent/Review/Plan)
  • 8+ built-in AI provider presets
  • Comprehensive memory and checkpoint systems

Crush CLI

Crush CLI is the glamorous AI coding agent from Charm, built in Go using their battle-tested Bubble Tea framework. As the spiritual successor to OpenCode, Crush combines LLM capabilities with Charm's renowned terminal UI expertise and cross-platform excellence.

Key Highlights:

  • Go + Bubble Tea architecture (Charm ecosystem)
  • 90+ releases with 65+ contributors
  • Native cross-platform support (including Windows, BSDs)
  • Multi-transport MCP support (stdio/HTTP/SSE)
  • Automatic provider model updates via Catwalk
  • FSL-1.1-MIT open-source license

Technical Architecture

AspectNovaKit CLICrush CLI
LanguageTypeScriptGo (97.9%)
UI FrameworkReact/InkBubble Tea + Bubbles
StylingCustom + ShikiLip Gloss
MarkdownMarkedGlamour
DatabaseLanceDB (vectors), JSON (sessions)SQLite
RuntimeNode.js 18+Native binary
Binary SizeNode.js dependencyStandalone (~15MB)

Analysis: Crush's Go-based architecture offers native binary distribution and superior startup times. NovaKit's TypeScript approach provides easier extensibility for JavaScript developers but requires Node.js runtime.

AI Provider Support

FeatureNovaKit CLICrush CLI
AnthropicYesYes
OpenAIYesYes
Google GeminiNo (via OpenRouter)Yes (native)
GroqYesYes
OpenRouterYesYes
AWS BedrockNoYes (native)
Azure OpenAINoYes (native)
Google Vertex AINoYes (native)
CerebrasNoYes
Hugging FaceNoYes
GitHub CopilotYes (OAuth)No
Z.ai GLMYesYes
Custom EndpointsOpenAI-compatibleOpenAI + Anthropic compatible
Local ModelsVia custom endpointsOllama, LM Studio native
Model Auto-UpdateNoYes (Catwalk)
Mid-Session SwitchingYesYes

Analysis: Crush offers significantly broader native provider support, including enterprise options like AWS Bedrock, Azure OpenAI, and Vertex AI. NovaKit has unique GitHub Copilot OAuth integration. Crush's Catwalk integration automatically fetches the latest models from a community-maintained database.

Terminal User Interface

FeatureNovaKit CLICrush CLI
FrameworkReact/InkBubble Tea + Bubbles
Markdown RenderingMarked + ShikiGlamour
Syntax HighlightingShiki (VSCode themes)Glamour built-in
Mode IndicatorsColor-coded status barIntegrated display
Alternate ScreenYesYes
Command Palette/ keyConfigurable
Model SwitchingCtrl+LCtrl+P
File Attachment@ symbolSupported
Input HistoryArrow navigationArrow navigation
Multiline InputYesYes
Spinner AnimationYesYes

Analysis: Both offer polished terminal experiences. Charm's five years of TUI framework development gives Crush exceptionally refined UI components. NovaKit's Shiki integration provides VSCode-quality syntax highlighting.

Operating Modes

NovaKit CLI Modes

  1. Agent Mode - Full tool access with write, edit, and bash execution
  2. Review Mode - Collects changes for batch approval before applying
  3. Plan Mode - Read-only exploration and planning only

Crush CLI Modes

  1. Standard Mode - Interactive with permission prompts
  2. YOLO Mode - Bypasses all confirmation prompts (--yolo flag)
  3. Non-Interactive - Single-prompt execution for scripting

Analysis: NovaKit's Review Mode offers unique safety features for careful code changes. Crush's YOLO mode is useful for trusted automation but requires careful consideration. Both support planning-oriented workflows.

Code Intelligence

FeatureNovaKit CLICrush CLI
Semantic SearchYes (LanceDB + embeddings)No
Vector IndexingXenova/transformersNo
LSP - Goto DefinitionYesYes
LSP - Find ReferencesYesVia LSP
LSP - Hover InfoYesVia LSP
LSP - DiagnosticsYesYes
Code IndexingAutomatic on buildProject analysis
Context FilesNOVAKIT.mdCRUSH.md / AGENTS.md
Context ScoringMin relevance thresholdStandard

Analysis: NovaKit's semantic code search is a significant differentiator, using vector embeddings to find contextually relevant code even without exact keyword matches. Both integrate LSP for code intelligence, but NovaKit exposes more LSP features directly as agent tools.

MCP (Model Context Protocol) Support

FeatureNovaKit CLICrush CLI
MCP SupportYesYes
Transport: StdioYesYes
Transport: HTTPNoYes
Transport: SSENoYes
Configuration~/.novakit/mcp.jsoncrush.json mcpServers
In-App Management/mcp-status, /mcp-connectConfig-based
Environment VariablesSupportedSupported
Built-in ServersFilesystem, GitHubConfigurable

Analysis: Crush offers more transport options for MCP servers (HTTP and SSE in addition to stdio), providing greater flexibility for different deployment scenarios. NovaKit provides more in-app MCP management commands.

Session and State Management

FeatureNovaKit CLICrush CLI
Session StorageJSON filesProject-specific contexts
Session PersistenceFull historyPer-project
Session Commandslist, resume, rename, compact, export, deleteStandard management
CheckpointsYes (file snapshots)No
Undo/RedoCtrl+Z/YSupported
Auto-CompactionYes (threshold-based)Yes
Session ExportJSON, MarkdownNo
Context WindowsToken-based trackingStandard
LoggingSession-based.crush/logs/crush.log

Analysis: NovaKit provides more sophisticated session management with checkpoints, multiple export formats, and explicit session commands. Crush focuses on project-specific contexts with detailed logging support.

Built-in Tools

NovaKit CLI Tools

File Operations:

  • read, write, edit, apply_patch, glob, list_directory

Code Analysis:

  • grep, vector_search, vision (image analysis)

System:

  • bash, web_search, web_fetch

Persistence:

  • save_memory, read_memory

Code Intelligence:

  • lsp_goto_definition, lsp_find_references, lsp_hover, lsp_diagnostics

Advanced:

  • multi_tool_use.parallel

Crush CLI Tools

File Operations:

  • glob, grep, ls, view, write, edit, patch

System:

  • bash, shell command execution
  • Direct access to git, docker, npm, nix, etc.

Code Intelligence:

  • LSP integration for diagnostics

Permission System:

  • Configurable auto-approve vs. prompt
  • Tool-level permission control

Analysis: NovaKit offers more specialized tools (vector_search, vision, memory system). Crush emphasizes direct CLI tool access with granular permission controls.

Configuration and Customization

FeatureNovaKit CLICrush CLI
Config FormatJSONJSON
Global Config~/.novakit/config.json~/.config/crush/crush.json
Project Config.novakit/config.json.crush.json
Custom Commands~/.novakit/commands.jsonSupported
Custom Agents~/.novakit/agents.jsonNo
Ignore File.novakitignore.crushignore
Context FilesNOVAKIT.mdCRUSH.md / AGENTS.md (customizable)
SnippetsYesNo
AttributionNoCustomizable (assisted-by, co-authored-by)
Debug ModeLimitedCLI flags + config

Analysis: NovaKit offers unique custom agents and snippets features. Crush provides flexible commit/PR attribution options and more accessible debug modes.

Platform Support

PlatformNovaKit CLICrush CLI
macOSYesYes
LinuxYesYes
WindowsVia npmNative (PowerShell, WSL)
FreeBSDNoYes
OpenBSDNoYes
NetBSDNoYes
DockerNoNo

Analysis: Crush's Go-based architecture enables superior cross-platform support, including native Windows and BSD variants. NovaKit requires Node.js on all platforms.

Installation Methods

MethodNovaKit CLICrush CLI
npm/pnpm/yarnYes (@novakit/cli)Yes (@charmland/crush)
HomebrewYes (tap)Yes (charmbracelet/tap)
Go InstallNoYes
AUR (Arch)NoYes (crush-bin)
NixNoYes
WingetNoYes
ScoopNoYes
Binary DownloadYesYes
npx (direct run)YesNo

Analysis: Crush offers significantly more installation options, particularly for non-Node.js environments. NovaKit's npx support enables quick trials without installation.

Licensing and Development

AspectNovaKit CLICrush CLI
LicenseProprietaryFSL-1.1-MIT
Source CodePrivateOpen (GitHub)
ContributorsInternal team65+
ReleasesManaged90+
Commercial UseAllowedAllowed
Modification RightsNoYes (with restrictions)
OrganizationNovaKitCharm (charm.land)

Analysis: Crush uses FSL-1.1-MIT (Functional Source License), which transitions to MIT after two years. This provides source availability while protecting commercial interests. NovaKit remains fully proprietary.

Privacy and Telemetry

AspectNovaKit CLICrush CLI
TelemetryMinimalPseudonymous metadata
Data CollectionUsage statsDevice-hashed metrics
Opt-OutAvailableCRUSH_DISABLE_METRICS=1
DO_NOT_TRACKNoYes (standard support)
Prompt/Response StorageLocal onlyLocal only

Analysis: Both respect user privacy. Crush provides more explicit opt-out mechanisms following industry standards (DO_NOT_TRACK).

Performance Characteristics

NovaKit CLI

  • Startup: Moderate (Node.js initialization)
  • Memory: Higher due to Node.js runtime
  • Vector Indexing: Initial build can be resource-intensive
  • Response Streaming: React-based rendering
  • Session Loading: JSON parsing

Crush CLI

  • Startup: Fast (native binary)
  • Memory: Lower footprint (Go efficiency)
  • Processing: Native performance
  • Response Streaming: Bubble Tea optimized
  • Session Loading: SQLite efficiency

Analysis: Crush's native Go binary offers tangible performance advantages in startup time and memory usage. NovaKit's vector indexing provides smarter context but requires initial computation.

Unique Features

NovaKit CLI Exclusive

  1. Semantic Code Search - LanceDB-powered vector search finds contextually relevant code
  2. Review Mode - Batch file changes for approval before applying
  3. Custom Agents - Define specialized AI personas with custom instructions
  4. Persistent Memory - Save and recall memories across sessions
  5. Snippets System - Store and reuse code snippets
  6. Checkpoints - Snapshot and restore file states
  7. IDE JSON-RPC Server - Integration mode for VS Code/JetBrains
  8. GitHub Copilot OAuth - Native OAuth device flow authentication

Crush CLI Exclusive

  1. Native Cross-Platform - Windows, BSDs without Node.js
  2. Multi-Transport MCP - HTTP and SSE in addition to stdio
  3. Catwalk Integration - Auto-updating model database
  4. Charm Ecosystem - Leverage mature TUI components
  5. YOLO Mode - Full automation without prompts
  6. Enterprise Providers - Native AWS Bedrock, Azure, Vertex AI
  7. Attribution Control - Customizable commit/PR trailers
  8. DO_NOT_TRACK Support - Industry-standard privacy compliance

Use Case Recommendations

Choose NovaKit CLI If You:

  • Need semantic code search for large, complex codebases
  • Want Review Mode for careful, batch-approved changes
  • Require custom agent personalities for different tasks
  • Use GitHub Copilot and want OAuth integration
  • Need persistent memory across coding sessions
  • Want checkpoint-based file state management
  • Prefer comprehensive session export options
  • Work primarily in the JavaScript/TypeScript ecosystem

Choose Crush CLI If You:

  • Need native Windows or BSD support
  • Want fastest possible startup and response times
  • Require enterprise cloud providers (Bedrock, Azure, Vertex)
  • Value open-source with commercial-friendly licensing
  • Need HTTP/SSE MCP transport options
  • Want automatic model updates via Catwalk
  • Prefer Go-based tooling and Charm ecosystem
  • Need granular tool permission controls

Head-to-Head Comparison

CategoryWinnerReason
Code IntelligenceNovaKitSemantic search + full LSP
Platform SupportCrushNative Windows, BSD
Provider OptionsCrushEnterprise providers, auto-updates
Session ManagementNovaKitCheckpoints, export, memory
PerformanceCrushNative Go binary
CustomizationNovaKitAgents, snippets, modes
MCP FlexibilityCrushMulti-transport support
Installation OptionsCrushMore package managers
Safety FeaturesNovaKitReview Mode
Open SourceCrushFSL-1.1-MIT license

Migration Considerations

From Crush to NovaKit

  1. Export any saved contexts before switching
  2. Convert crush.json to novakit config format
  3. Migrate custom commands to JSON format
  4. Set up equivalent MCP servers
  5. Build vector index for semantic search capabilities
  6. Note: Some providers (Bedrock, Azure, Vertex) may need OpenRouter

From NovaKit to Crush

  1. Export sessions to Markdown format
  2. Convert novakit config to crush.json
  3. Create CRUSH.md from NOVAKIT.md content
  4. Note: Custom agents need manual recreation as prompts
  5. Note: Semantic search features unavailable
  6. Note: Memory system needs alternative approach

Future Outlook

NovaKit CLI

  • Continued focus on code intelligence features
  • Deeper IDE integration capabilities
  • Enhanced memory and context systems
  • Expanded provider support

Crush CLI

  • Active development under Charm stewardship
  • Integration with upcoming "Ultraviolet" toolkit
  • Growing community contributions (65+ contributors)
  • Expanding enterprise provider support

Conclusion

Both NovaKit CLI and Crush CLI represent the cutting edge of terminal-based AI coding assistants, but they serve different priorities:

NovaKit CLI excels in code intelligence and safety. Its semantic search capability is unmatched, finding relevant code context even without exact keyword matches. The Review Mode provides a unique safety layer for developers who want to approve changes in batches. Custom agents and persistent memory make it highly adaptable to different workflows.

Crush CLI excels in performance and accessibility. Built on Charm's proven Bubble Tea framework, it offers native binaries across platforms including Windows and BSDs. Broader provider support (including enterprise options) and open-source licensing make it attractive for diverse team environments.

For developers working on large, complex codebases where understanding context is crucial, NovaKit's semantic search provides clear advantages. For teams prioritizing cross-platform support, enterprise provider integration, and open-source principles, Crush offers compelling benefits.

Both tools continue rapid development. The best choice depends on your specific workflow requirements, platform needs, and whether code intelligence or provider flexibility matters more to your daily development experience.


Experience the power of semantic code search and intelligent context. Get started with NovaKit CLI today and elevate your terminal development workflow.

NovaKit CLI vs Crush CLI: Battle of the AI Coding Agents | NovaKit Blog | NovaKit