Scarab Terminal v0.1.0-alpha.13
Release Date: November 25, 2025
This release represents a major architectural milestone - completing the migration from TOML-based configuration to Fusabi-based configuration, fixing critical installation issues, and adding several major features requested by the community.
π Major Features
Fusabi Configuration System (Breaking Change)
The whole point of Scarab is to use Fusabi for configuration, not TOML. This release fixes that fundamental architectural inconsistency.
- β
Fusabi Config Loader - Configuration now uses
.fsxfiles (Fusabi F# syntax) - β
Backwards Compatible - Legacy
.tomlconfigs still work with deprecation warning - β
Config Location:
~/.config/scarab/config.fsx - β
Fallback Chain:
.fsxβ.tomlβ defaults - β οΈ Value Extraction WIP - Config compiles but uses defaults (pending Fusabi language features)
What This Means:
// ~/.config/scarab/config.fsx
let scrollback_lines = 10000
let terminal_columns = 80
let terminal_rows = 24Once Fusabi adds float/record support, full configuration will look like:
[<FontConfig>]
let font = {
Family = "JetBrains Mono"
Size = 14.0
LineHeight = 1.2
}See: Fusabi Feature Request #109
Interactive Tutorial System
Complete 8-step guided onboarding for new users:
- Welcome - Introduce Scarab
- Navigation - Basic command usage
- Scrollback - Mouse wheel scrolling
- Link Hints - URL detection and opening
- Command Palette - Quick command access
- Plugins - Plugin system overview
- Configuration - Config file location
- Completion - Summary and next steps
Features:
- β Automatic first-run detection
- β Beautiful ASCII art overlay
- β Progress bar with step indicators
- β Keyboard navigation (Space/Enter, Backspace, Escape)
- β
Manual trigger with
--tutorialflag - β Persistent progress tracking
Atuin Shell History Integration
Enhanced shell history with cross-session sync and powerful search.
Features:
- β Ctrl+R integration with Atuin search
- β Cross-session history sync
- β Advanced search with filters
- β Auto-detect Atuin installation
- β Graceful fallback to standard history
Requirements:
- Atuin CLI installed (atuin.sh)
- Enable plugin: Add
"scarab-atuin"toplugins.enabled
Scrollback UI Improvements
Complete scrollback buffer implementation:
- β 10,000 line buffer with LRU eviction
- β Mouse wheel scrolling (60 FPS requirement met)
- β Keyboard navigation (Shift+PageUp/Down/Home/End)
- β Text selection in scrollback (Ctrl+C to copy)
- β Scroll position indicator
- β Search overlay (Ctrl+F) with regex support
Installation Improvements
Just Install Commands
Simple, reliable installation:
# Install to ~/.local/bin (default)
just install
# Install to custom location
just install PREFIX=/usr/local
# Uninstall
just uninstallFeatures:
- β Automatic target directory detection
- β Tilde expansion working correctly
- β
Creates symlink:
scarabβscarab-client - β Installs daemon, client, and plugin compiler
- β Clear PATH instructions
π Bug Fixes
Shared Memory Handling
Issue: Daemon crashed with βShared memory OS specific ID already existsβ
Fix: Graceful handling of existing shared memory segments
- Try to create new shared memory first
- If exists, open existing segment
- Provide helpful cleanup instructions on failure
- Prevents crashes during development/testing
Justfile Syntax Errors
Issues:
- Plugin-new recipe failed with βUnknown start of token β.ββ
- Install command used wrong directory
Fixes:
- Fixed heredoc syntax for F# code generation
- Fixed just variable expansion in install recipes
- Renamed duplicate recipes for clarity
π Documentation
Complete Reference Documentation
- β Configuration Reference - All TOML/Fusabi options with defaults
- β Keybindings Reference - 50+ shortcuts with platform variations
- β Troubleshooting Guide - 25+ common issues with solutions
- β Performance Tuning - Optimization strategies
- β Migration Guides - From Alacritty, iTerm2, GNOME Terminal
Plugin Development Documentation
- β Comprehensive Guide - 7-part tutorial series
- β VSCode Extensions - F# support setup
- β
Hot-Reload Workflow -
just dev-mode - β Architecture Guide - When to use .fsx vs .fzb
- β API Reference - PluginContext, Hooks, RemoteUI
- β 8 Working Examples - Production-ready plugin templates
π§ Technical Details
Dependencies
- Fusabi VM: 0.5.0
- Fusabi Frontend: 0.5.0
- Bevy: 0.15
- Rust: 1.75+
Platforms
Binaries available for:
- Linux (x86_64, ARM64)
- macOS (x86_64, ARM64)
- Windows (x86_64, ARM64)
β οΈ Known Limitations
Fusabi Config Extraction (WIP)
Current Behavior: Config files compile successfully, but values arenβt extracted yet. Scarab uses sensible defaults.
Status: β οΈ Waiting on Fusabi language features
- Float literals β Issue #109
- Record types β Issue #109
Workaround: Use legacy TOML config for full customization
User Experience:
Loading Fusabi config from: ~/.config/scarab/config.fsx
β οΈ Fusabi config loader is WIP - using defaults
π Config file compiled successfully, but extraction not yet implemented
Tutorial Validation (Incomplete)
Current Behavior: Tutorial steps advance manually, but donβt detect user actions yet.
Status: β οΈ Validation stubs in place, full implementation pending
User Experience: Tutorial works perfectly as guided walkthrough, just doesnβt auto-advance on completion.
π― Whatβs Next
Short Term (Blocked on Fusabi)
- Config Value Extraction - Once Fusabi adds float/record support
- Full Config DSL - Rich configuration language with functions
- Hot-Reload - Edit .fsx and reload instantly
Medium Term
- Tutorial Validation - Auto-detect user actions
- Advanced Scrollback - Fuzzy search, history replay
- Plugin Marketplace - Browse and install plugins
Long Term
- Multiplexer - Built-in tmux-like functionality
- SSH Integration - Remote terminal sessions
- Collaboration - Shared terminal sessions
π¦ Installation
Quick Start
# Install from source
git clone https://github.com/raibid-labs/scarab
cd scarab
just install
# Run Scarab
scarab-daemon &
scarabHomebrew (Coming Soon)
brew tap raibid-labs/scarab
brew install scarabπ Acknowledgments
Special thanks to:
- Fusabi Team - For building an amazing F# scripting engine
- Bevy Community - For the powerful game engine
- Early Adopters - For testing and feedback
π Links
- Homepage: https://github.com/raibid-labs/scarab
- Documentation: https://github.com/raibid-labs/scarab/tree/main/docs
- Issues: https://github.com/raibid-labs/scarab/issues
- Fusabi Feature Request: https://github.com/fusabi-lang/fusabi/issues/109
π Breaking Changes
Configuration Files
Changed: Config file extension and format
- Old:
~/.config/scarab/config.toml(TOML) - New:
~/.config/scarab/config.fsx(Fusabi)
Migration:
- Keep your existing
.tomlfile - it still works! - Youβll see:
β οΈ Loading legacy TOML config - Migrate at your own pace
Why: Aligns with Scarabβs design philosophy of using Fusabi for everything.
Full Changelog: https://github.com/raibid-labs/scarab/compare/v0.1.0-alpha.7β¦v0.1.0-alpha.13