Skip to content

C#/.NET PowerShell-inspired shell with first-class support for Arabic commands and full Arabic text handling (UTF-8, BiDi/RTL).

Notifications You must be signed in to change notification settings

OmarAglan/ArbSh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

100 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ArbSh - Arabic-First Shell

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.

๐ŸŒŸ Key Features

Arabic-First Design

  • 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., -ุงู„ุฃู…ุฑ, -ูƒุงู…ู„, -ุงู„ู†ุต)

Modern Shell Architecture

  • 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

Cross-Platform Compatibility

  • Built on .NET: Cross-platform support (Windows, macOS, Linux)
  • Unicode Compliant: Full UTF-8 and Unicode text processing
  • Modern C# Architecture: Extensible cmdlet framework

๐Ÿš€ Current Status (Version 0.8.1-alpha)

โœ… Phase 5 Complete: Custom GUI Terminal Baseline

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

๐Ÿ—๏ธ Core Architecture (Fully Functional)

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

๐ŸŽฏ Next Phase: Phase 6 - Baa Language & External Process Integration

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

๐Ÿ“ Project Structure

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)

๐Ÿš€ Getting Started

Prerequisites

  • .NET 6.0 or later
  • Windows, macOS, or Linux

Running ArbSh

  1. Clone the repository:

    git clone https://github.com/OmarAglan/ArbSh.git
    cd ArbSh
  2. Navigate to the console project:

    cd src_csharp/ArbSh.Console
  3. Run the shell:

    dotnet run
  4. Try some commands:

    ArbSh> ุงู„ุฃูˆุงู…ุฑ
    ArbSh> ุงู„ู…ุณุงุฑ
    ArbSh> ุงุนุฑุถ
    ArbSh> ุงู†ุชู‚ู„ ู…ุดุฑูˆุน
    ArbSh> ู…ุณุงุนุฏุฉ
    ArbSh> ุงุทุจุน $(ุงู„ุฃูˆุงู…ุฑ)
    ArbSh> ุงุฎุชุจุงุฑ-ู†ูˆุน [int] 42
    ArbSh> ุงุฎุฑุฌ

Building a Release

A PowerShell script (create-release.ps1) automates release creation:

  1. 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.

  1. 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.ps1
  • Uninstall-ArbSh.ps1
  • App/ published ArbSh.Terminal

๐Ÿ“– Documentation

๐Ÿค Contributing

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

๐ŸŽฏ Arabic-First Philosophy

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 Limitations

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

๐ŸŒŸ Vision

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

About

C#/.NET PowerShell-inspired shell with first-class support for Arabic commands and full Arabic text handling (UTF-8, BiDi/RTL).

Topics

Resources

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors