Packages
Multi-surface application runtime for Elixir. One TEA module renders to terminal, browser (LiveView), SSH, and MCP (agents). 30+ widgets, flexbox + CSS grid, AI agent runtime, distributed swarm with CRDTs, time-travel debugging, session recording, sandboxed REPL, and agentic commerce.
Current section
Files
Jump to
Current section
Files
README.md
# Raxol[](https://github.com/Hydepwns/raxol/actions/workflows/ci.yml)[-brightgreen.svg)](https://github.com/Hydepwns/raxol/actions)[](https://codecov.io/gh/Hydepwns/raxol)[](bench/README.md)[](https://hex.pm/packages/raxol)[](https://hexdocs.pm/raxol)## Terminal Application FrameworkTerminal framework supporting React, Svelte, LiveView, and HEEx UI patterns.### Features- Sub-microsecond parser operations- Multi-framework UI support (React, Svelte, LiveView, HEEx)- Enterprise features: audit logging, encryption, SAML/OIDC- Graphics: Sixel support, session continuity- **NEW**: VIM navigation, command parser, fuzzy search, virtual filesystem, cursor effects## Modular Packages (v2.0+)Raxol is now available as focused, independently releasable packages:- **[raxol_core](https://hex.pm/packages/raxol_core)** - Lightweight buffer primitives (< 100KB, zero deps)- **[raxol_liveview](https://hex.pm/packages/raxol_liveview)** - Phoenix LiveView integration- **[raxol_plugin](https://hex.pm/packages/raxol_plugin)** - Plugin system- **raxol** - Full framework (includes all packages)See **[Package Guide](docs/getting-started/PACKAGES.md)** for detailed comparison, migration paths, and installation instructions.## Quick Start### InstallationChoose your package based on needs:```elixir# Minimal - Just terminal buffers{:raxol_core, "~> 2.0"}# Web integration - Add LiveView support{:raxol_core, "~> 2.0"},{:raxol_liveview, "~> 2.0"}# Extensible apps - Add plugin system{:raxol_core, "~> 2.0"},{:raxol_plugin, "~> 2.0"}# Or use v1.x (full framework){:raxol, "~> 2.0"}```Using `runtime: false` provides UI components without terminal emulator runtime for:- Web applications- Component libraries- Testing UI logic- Reduced application size### Development Setup```bash# Clone and exploregit clone https://github.com/Hydepwns/raxol.gitcd raxolmix deps.get# Run quality checksmix raxol.check# Run testsTMPDIR=/tmp SKIP_TERMBOX2_TESTS=true MIX_ENV=test mix test# Generate type specsmix raxol.gen.specs lib --recursive```## Choose Your Framework```elixiruse Raxol.UI, framework: :react # Familiar React patternsuse Raxol.UI, framework: :svelte # Reactive with compile-time optimizationuse Raxol.UI, framework: :liveview # Phoenix LiveView patternsuse Raxol.UI, framework: :heex # Phoenix templatesuse Raxol.UI, framework: :raw # Direct terminal control```### React-Style Example```elixirdefmodule 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> """ endend```### Emulator Usage```elixir# Default configurationemulator = Emulator.new(80, 24)# With GenServers for concurrent operationsemulator = Emulator.new(80, 24, use_genservers: true)# Minimal configurationemulator = Emulator.new(80, 24, enable_history: false, alternate_buffer: false)```[View more examples →](examples/README.md)## Components-Only ModeWhen importing Raxol with `runtime: false`, you get access to:### UI Components- All framework adapters (React, Svelte, LiveView, HEEx)- Complete component library (Button, Input, Table, Modal, etc.)- State management and context systems- Animation and transition engines- Theme system and styling utilities### Not Included in Components-Only- Terminal emulator runtime- ANSI/VT100 sequence processing- PTY/TTY management- SSH session handling- Sixel graphics renderingThis makes Raxol perfect as a lightweight UI component library for web applications or other non-terminal use cases.## Architecture### Terminal Framework- VT100/ANSI compliance with modern extensions- Sixel graphics, GPU acceleration- Mouse support, event handling- Tab completion, command history### UI System- Universal features: actions, transitions, context, slots- 60 FPS animation engine- Component composition, theming### Enterprise Features- Session continuity- Real-time collaboration with CRDT sync- SOC2/HIPAA/GDPR audit logging- AES-256-GCM encryption with key rotation## Performance| Metric | Raxol | Alacritty | Kitty | iTerm2 | WezTerm ||--------------|---------------|--------------|--------------|--------------|--------------|| Parser Speed | 3.3μs/op | ~5μs/op | ~4μs/op | ~15μs/op | ~6μs/op || Memory Usage | 2.8MB | ~15MB | ~25MB | ~50MB | ~20MB || Startup Time | <10ms | ~50ms | ~40ms | ~100ms | ~60ms || Test Suite | 793 tests | ~800 tests | ~600 tests | ~500 tests | ~700 tests |### Additional Metrics- Cursor Operations: 0.5μs per movement- Buffer Write: 1.2μs per character- Screen Clear: <50μs for full screen- Input Latency: <2ms keyboard to screen- Render Performance: 60 FPS maintained## Documentation### Getting Started- **[Quickstart](https://github.com/Hydepwns/raxol/blob/master/docs/getting-started/QUICKSTART.md)** - 5/10/15 minute tutorials- **[Core Concepts](https://github.com/Hydepwns/raxol/blob/master/docs/getting-started/CORE_CONCEPTS.md)** - Understand buffers and rendering- **[Migration Guide](https://github.com/Hydepwns/raxol/blob/master/docs/getting-started/MIGRATION_FROM_DIY.md)** - For teams with existing terminal code### Cookbooks- **[LiveView Integration](https://github.com/Hydepwns/raxol/blob/master/docs/cookbook/LIVEVIEW_INTEGRATION.md)** - Render terminals in Phoenix- **[Performance Optimization](https://github.com/Hydepwns/raxol/blob/master/docs/cookbook/PERFORMANCE_OPTIMIZATION.md)** - 60fps techniques- **[Theming](https://github.com/Hydepwns/raxol/blob/master/docs/cookbook/THEMING.md)** - Custom color schemes### Features- **[VIM Navigation](https://github.com/Hydepwns/raxol/blob/master/docs/features/VIM_NAVIGATION.md)** - VIM-style keybindings and movement- **[Command Parser](https://github.com/Hydepwns/raxol/blob/master/docs/features/COMMAND_PARSER.md)** - Tab completion, history, argument parsing- **[Fuzzy Search](https://github.com/Hydepwns/raxol/blob/master/docs/features/FUZZY_SEARCH.md)** - Multi-mode search with highlighting- **[File System](https://github.com/Hydepwns/raxol/blob/master/docs/features/FILESYSTEM.md)** - Virtual filesystem with Unix commands- **[Cursor Effects](https://github.com/Hydepwns/raxol/blob/master/docs/features/CURSOR_EFFECTS.md)** - Visual trails and glow effects- **[Features Overview](https://github.com/Hydepwns/raxol/blob/master/docs/features/README.md)** - Complete guide to all features### API Reference- **[Buffer API](https://github.com/Hydepwns/raxol/blob/master/docs/core/BUFFER_API.md)** - Complete buffer operations reference- **[Architecture](https://github.com/Hydepwns/raxol/blob/master/docs/core/ARCHITECTURE.md)** - Design decisions and internals- **[Full Documentation](https://hexdocs.pm/raxol)** - Complete API reference### Recent Features- **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## VS Code ExtensionDevelopment version available in `editors/vscode/`. To install:```bashcd editors/vscodenpm installnpm run compilecode --install-extension .```Features: syntax highlighting, IntelliSense, component snippets, live preview## Use CasesUse cases: terminal IDEs, DevOps tools, system monitoring, database clients, chat applications, games.## LicenseMIT License - see [LICENSE.md](LICENSE.md)