Current Version: 0.8.1-alpha Status: Phase 6 In Progress - File Management & Windows Installer Integration Next Phase: Phase 6 - Baa Language & External Process Integration
ArbSh is an Arabic-first command-line shell built on C#/.NET, designed specifically for Arabic developers and users. Inspired by PowerShell's object pipeline architecture, ArbSh provides a powerful, extensible environment with native Arabic language support and full Unicode BiDi compliance.
- Native Arabic Commands: Execute commands using Arabic script (
ุงูุฃูุงู ุฑ,ู ุณุงุนุฏุฉ,ุงุทุจุน,ุงูุชูู,ุงุนุฑุถ,ุงูู ุณุงุฑ,ุงุฎุฑุฌ) - Full BiDi Support: Complete Unicode BiDi Algorithm (UAX #9) implementation
- RTL Text Handling: Proper Right-to-Left text rendering and processing
- Arabic Parameter Names: Support for Arabic-first parameters (e.g.,
-ุงูุฃู ุฑ,-ูุงู ู,-ุงููุต)
- Object Pipeline: PowerShell-inspired object-based command pipeline
- Task-Based Concurrency: Efficient parallel pipeline execution
- Reflection-Based Binding: Dynamic parameter binding with type conversion
- Subexpression Execution: PowerShell-style
$(...)command substitution - Type Literal Support:
[TypeName]type casting functionality
- Built on .NET: Cross-platform support (Windows, macOS, Linux)
- Unicode Compliant: Full UTF-8 and Unicode text processing
- Modern C# Architecture: Extensible cmdlet framework
Completed Features:
- Complete BiDi Algorithm Implementation: All rule sets (P, X, W, N, I, L) fully implemented
- Subexpression Execution: PowerShell-style
$(...)command substitution WORKING - Type Literal Utilization:
[TypeName]type casting functionality WORKING - 70+ BiDi Tests Passing: Comprehensive Unicode BidiTest.txt compliance
- Arabic Command Surface: Runtime command discovery and invocation are Arabic-only for user-facing cmdlets
- File Management Commands: Added Arabic-first directory navigation/listing commands with session-scoped working directory
- Windows Context Menu Installer Flow: Added installer packaging scripts that register "Open in ArbSh" Explorer entries
Pipeline System:
- Object-based pipeline with task-based concurrency
- Dynamic parameter binding using reflection
- Command discovery and caching
- Stream redirection and merging (
>,>>,2>,2>&1,<)
Advanced Parsing:
- Quote handling (
"...",'...') with escape sequences - Variable expansion (
$variableName) with concatenation - Statement separation (
;) and pipeline operators (|) - Subexpression parsing
$(...)with recursive command structures - Type literal parsing
[TypeName]with whitespace support
Arabic Language Integration:
- Arabic command names via
[ArabicName]attributes - Arabic parameter names (e.g.,
-ุงูุฃู ุฑ,-ูุงู ู,-ุงููุต) - Full Unicode text processing and BiDi algorithm compliance
Available Commands:
ุงุทุจุน- Output objects to pipeline or consoleู ุณุงุนุฏุฉ- Display command help and documentationุงูุฃูุงู ุฑ- List all available commandsุงูุชูู- Change current session directoryุงูู ุณุงุฑ- Print current session directoryุงุนุฑุถ- List files/folders in current or target directoryุงุฎุชุจุงุฑ-ู ุตูููุฉ- Validate array parameter binding behaviorุงุฎุชุจุงุฑ-ููุน- Validate type literal conversion behaviorุงุฎุฑุฌ- Exit the current host session (host command)
BiDi Algorithm Implementation:
- Complete UAX #9 compliance with all rule sets (P, X, W, N, I, L)
- ICU4N library integration for accurate Unicode character properties
- 70+ BidiTest.txt compliance tests passing
- Real-time BiDi processing for mixed Arabic/English content
Upcoming Features:
- External process execution inside the GUI terminal (
git,dotnet,node) - Baa compiler output hosting with flawless Arabic rendering
- Stream routing for foreground/background process integration
- Arabic path/process handling improvements
ArbSh/
โโโ src_csharp/ # C#/.NET Implementation
โ โโโ ArbSh.Console/ # Main console application
โ โ โโโ Commands/ # Cmdlet implementations
โ โ โโโ Parsing/ # Parser and tokenizer
โ โ โโโ I18n/ # BiDi algorithm and Arabic support
โ โ โโโ Models/ # Data models and pipeline objects
โ โ โโโ Program.cs # REPL entry point
โ โโโ ArbSh.sln # Visual Studio solution
โโโ docs/ # Comprehensive documentation
โ โโโ BIDI_*_RULES_DESIGN.md # BiDi algorithm technical specs
โ โโโ USAGE_EXAMPLES.md # Complete feature guide
โ โโโ PROJECT_ORGANIZATION.md # Architecture documentation
โโโ old_c_code/ # Original C implementation (reference)
โโโ ROADMAP.md # Development phases and progress
โโโ CHANGELOG.md # Version history
โโโ README.md # This file
Build System: Standard .NET CLI (dotnet build, dotnet run)
- .NET 6.0 or later
- Windows, macOS, or Linux
-
Clone the repository:
git clone https://github.com/OmarAglan/ArbSh.git cd ArbSh -
Navigate to the console project:
cd src_csharp/ArbSh.Console -
Run the shell:
dotnet run
-
Try some commands:
ArbSh> ุงูุฃูุงู ุฑ ArbSh> ุงูู ุณุงุฑ ArbSh> ุงุนุฑุถ ArbSh> ุงูุชูู ู ุดุฑูุน ArbSh> ู ุณุงุนุฏุฉ ArbSh> ุงุทุจุน $(ุงูุฃูุงู ุฑ) ArbSh> ุงุฎุชุจุงุฑ-ููุน [int] 42 ArbSh> ุงุฎุฑุฌ
A PowerShell script (create-release.ps1) automates release creation:
- Run the release script:
.\create-release.ps1 -Version "0.8.1-alpha"
This creates a self-contained release build and packages it into releases/ directory.
- Build release + installer package (Windows context menu):
.\create-release.ps1 -Version "0.8.1-alpha" -CreateInstaller
This also creates ArbSh-v<version>-<rid>-installer.zip with:
Install-ArbSh.ps1Uninstall-ArbSh.ps1App/publishedArbSh.Terminal
- USAGE_EXAMPLES.md - Complete feature guide with working examples
- PROJECT_ORGANIZATION.md - Architecture and project structure
- ROADMAP.md - Development phases and progress tracking
- CHANGELOG.md - Version history and technical details
- docs/DOCUMENTATION_INDEX.md - Complete documentation index
ArbSh welcomes contributions from developers interested in Arabic language computing and modern shell development. See our documentation for:
- Project architecture and organization
- BiDi algorithm implementation details
- Arabic language integration patterns
- Testing frameworks and standards
ArbSh is designed specifically for Arabic developers and users, not as a bilingual shell. Our approach:
- Native Arabic Commands: Primary interface in Arabic script
- Cultural Localization: Arabic developer workflow optimization
- Unicode Compliance: Full BiDi algorithm implementation
- Community Focus: Built by and for the Arabic developer community
Current Focus (Phase 6):
- External process execution in the custom terminal
- Baa compiler integration workflow
- Process stream interop with ArbSh pipeline
Future Phases:
- External process execution (Phase 6)
- Advanced scripting features (Phase 7)
- Tab completion and command history
- Rich error handling and reporting
ArbSh aims to be the premier command-line shell for Arabic developers, providing:
- Seamless Arabic language integration
- Modern object-oriented pipeline architecture
- Full Unicode and BiDi compliance
- Cross-platform compatibility
- Extensible cmdlet framework
Current Status: Phase 6 In Progress - File Management/Installer Foundations Ready