Terminal framework supporting React, LiveView, HEEx, and Raw UI patterns.
- Sub-microsecond parser operations
- Multi-framework UI support (React, LiveView, HEEx, Raw)
- Enterprise features: audit logging, encryption, SAML/OIDC
- Graphics: Sixel support, session continuity
- NEW: VIM navigation, command parser, fuzzy search, virtual filesystem, cursor effects
- Cross-platform: Windows, macOS, Linux support
Raxol works on all major platforms with automatic backend selection:
- Unix/macOS: Native termbox2 NIF for optimal performance (~50μs per frame)
- Windows 10+: Pure Elixir driver using OTP 28+ raw mode (~500μs per frame)
- All platforms: Consistent API, automatic fallback, full feature parity
Windows support uses VT100 terminal emulation (enabled by default in Windows 10+). No additional setup required.
Raxol is now available as focused, independently releasable packages:
- raxol_core - Lightweight buffer primitives (< 100KB, zero deps)
- raxol_liveview - Phoenix LiveView integration
- raxol_plugin - Plugin system
- raxol - Full framework (includes all packages)
See Package Guide for detailed comparison, migration paths, and installation instructions.
See Installation Guide and Quickstart Tutorial.
use Raxol.UI, framework: :react # Familiar React patterns
use Raxol.UI, framework: :liveview # Phoenix LiveView patterns
use Raxol.UI, framework: :heex # Phoenix templates
use Raxol.UI, framework: :raw # Direct terminal controldefmodule MyApp do
use Raxol.Component
def render(assigns) do
~H"""
<Box padding={2}>
<Text color="green" bold>Hello, Raxol!</Text>
<Button on_click={@on_click}>Click me!</Button>
</Box>
"""
end
end# Default configuration
emulator = Emulator.new(80, 24)
# With GenServers for concurrent operations
emulator = Emulator.new(80, 24, use_genservers: true)
# Minimal configuration
emulator = Emulator.new(80, 24, enable_history: false, alternate_buffer: false)When importing Raxol with runtime: false, you get access to:
- All framework adapters (React, LiveView, HEEx, Raw)
- Complete component library (Button, Input, Table, Modal, etc.)
- State management and context systems
- Animation and transition engines
- Theme system and styling utilities
- Terminal emulator runtime
- ANSI/VT100 sequence processing
- PTY/TTY management
- SSH session handling
- Sixel graphics rendering
This makes Raxol perfect as a lightweight UI component library for web applications or other non-terminal use cases.
- VT100/ANSI compliance with modern extensions
- Sixel graphics, GPU acceleration
- Mouse support, event handling
- Tab completion, command history
- Universal features: actions, transitions, context, slots
- 60 FPS animation engine
- Component composition, theming
- Session continuity
- Real-time collaboration with CRDT sync
- SOC2/HIPAA/GDPR audit logging
- AES-256-GCM encryption with key rotation
See Performance Metrics and Benchmark Docs.
- Quickstart - 5/10/15 minute tutorials
- Core Concepts - Understand buffers and rendering
- Migration Guide - For teams with existing terminal code
- LiveView Integration - Render terminals in Phoenix
- Performance Optimization - 60fps techniques
- Theming - Custom color schemes
- VIM Navigation - VIM-style keybindings and movement
- Command Parser - Tab completion, history, argument parsing
- Fuzzy Search - Multi-mode search with highlighting
- File System - Virtual filesystem with Unix commands
- Cursor Effects - Visual trails and glow effects
- Features Overview - Complete guide to all features
- Buffer API - Complete buffer operations reference
- Architecture - Design decisions and internals
- Full Documentation - Complete API reference
- Feature Additions (v2.0.0 Phase 6) - VIM navigation, command parser, fuzzy search, filesystem, cursor effects
- Documentation Overhaul (v2.0.0 Phase 4) - Beginner-friendly guides and practical cookbooks
- Plugin System (v2.0.0 Phase 3) - Spotify plugin showcase
- LiveView Integration (v2.0.0 Phase 2) - Terminal rendering in Phoenix
- Raxol.Core (v2.0.0 Phase 1) - Lightweight buffer primitives (< 100KB, zero deps)
- Code Consolidation (v1.5.4) - BaseManager pattern, TimerManager integration, 99.8% test coverage
- Type Spec Generator (v1.4.1) - Automated type specification generation
- Unified Configuration (v1.4.1) - TOML-based configuration system
Development version available in editors/vscode/. To install:
cd editors/vscode
npm install
npm run compile
code --install-extension .Features: syntax highlighting, IntelliSense, component snippets, live preview
Use cases: terminal IDEs, DevOps tools, system monitoring, database clients, chat applications, games.
- Svelte Framework Support - Reactive component patterns with compile-time optimization
- Enhanced Graphics - WebGL-style rendering in terminal
- Multi-session Collaboration - Real-time shared terminal sessions
- Plugin Marketplace - Community plugins and themes
- Mobile Terminal - iOS/Android terminal clients
See ROADMAP.md for detailed timeline and feature specifications.
MIT License - see LICENSE.md