A professional, feature-rich Windows terminal application designed from the ground up with full accessibility support for screen readers and assistive technologies. Built for developers, system administrators, and power users who rely on keyboard navigation and screen readers like NVDA, JAWS, and Windows Narrator.
- β Full Screen Reader Support - Optimized for NVDA, JAWS, and Windows Narrator with live announcements
- β Multi-Shell Environment - PowerShell, CMD, and Bash with seamless switching
- β 46+ Unix Commands - Native Unix command support on Windows without WSL
- β Advanced Navigation - Structural output navigation, bookmarks, and error jumping
- β Reading Mode - Navigate terminal output like a document with arrow keys
- β Smart Folding - Auto-collapse large outputs with intelligent summaries
- β Zero Installation - Portable, self-contained executable with all dependencies
- Features
- Installation
- Quick Start
- Keyboard Shortcuts
- Built-in Commands
- Shell Modes
- Accessibility Features
- Advanced Features
- Building from Source
- Technical Details
- Contributing
- License
-
Multi-Shell Support
- PowerShell (default) with full cmdlet support
- Windows Command Prompt (CMD)
- Bash with 46+ bundled Unix binaries
- Seamless switching between shells without restarting
-
Intelligent Auto-Completion
- Tab completion for commands and file paths
- Context-aware suggestions
- Bash mode uses forward slashes (
/), PowerShell/CMD use backslashes (\) - Multi-match display when multiple options exist
-
Command History
- Up/Down arrow navigation through previous commands
- Persistent history within session
- Smart deduplication (doesn't repeat identical consecutive commands)
- Maximum 1000 command history buffer
-
Protected Prompt
- Cannot accidentally delete the command prompt
- Backspace/Delete only work on user input
- Home key jumps to start of command (after prompt)
-
Full Screen Reader Integration
- Real-time output announcements via UIA Notification events
- Context-aware announcements (avoids information overload)
- All UI elements properly labeled with AutomationProperties
- Works with NVDA, JAWS, and Windows Narrator
-
Reading Mode (Ctrl+R)
- Toggle between input mode and reading mode
- Navigate output with arrow keys like reading a document
- Page Up/Down support for quick scrolling
- Automatic focus management
-
High Contrast Theme (Ctrl+H)
- Toggle between standard and high contrast color schemes
- Yellow text on black background (high contrast mode)
- Black text on white background (standard mode)
- Optimized for visual accessibility
-
Keyboard-Only Operation
- Complete functionality without mouse
- All features accessible via keyboard shortcuts
- Logical key combinations following Windows conventions
-
Smart Output Announcements
- Full output text announced automatically
- Error messages announced immediately
- Folded output announces line count and summary
- Bookmark navigation announces name and context
-
Automatic Folding
- Auto-folds outputs exceeding 50 lines
- Detects and folds stack traces automatically
- Intelligent summaries for folded content
- Ctrl+F to expand/collapse current block
- Ctrl+D to unfold all blocks
-
Structural Navigation
- Ctrl+N: Jump to next output block
- Ctrl+P: Jump to previous output block
- Ctrl+E: Jump to next error in output
- Clear visual separation between commands and outputs
-
Output Categorization
- Automatic categorization: Errors, Warnings, Status Messages
- Ctrl+O to view categorized output panels
- Timestamp tracking for all categorized items
- Maximum 500 items per category (auto-cleanup)
-
Custom Bookmarks
- Ctrl+B: Add bookmark at current position with custom name
- Ctrl+J: Jump to next bookmark
- Ctrl+K: Jump to previous bookmark
- Each bookmark stores: Position, Custom Label, Context (surrounding text)
-
Bookmark Navigation
- Wraps around (first β last, last β first)
- Announces bookmark name and context when navigating
- Automatic cleanup of invalid bookmarks
-
Real-time Keyword Tracking
- Monitor specific keywords in command output
- Automatic screen reader announcement when keyword detected
- Predefined keywords: error, exception, failed, timeout, warning, success, connected, completed
-
Keyword Management
- Ctrl+M: Open keyword manager
monitor add <keyword>: Add new keywordmonitor remove <keyword>: Remove keywordmonitor clear: Clear all keywordsmonitor list: List all monitored keywords
-
Adjustable Font Sizes
- Ctrl+Plus: Increase font size (range: 12-32pt)
- Ctrl+Minus: Decrease font size
- Ctrl+0: Reset to default (14pt)
-
Clipboard Integration
- Ctrl+C: Copy selected text
- Ctrl+V: Paste from clipboard
-
Memory Management
- Auto-truncates terminal buffer at 500,000 characters
- Prevents application slowdown with long-running processes
- Operating System: Windows 10 (version 1809+) or Windows 11
- Runtime: .NET 8.0 Runtime (included in self-contained build)
- Disk Space: ~150 MB for application and dependencies
- Download the latest release from the Releases page
- Extract the archive to any location (e.g.,
C:\Tools\AccessibleTerminal) - Run
AccessibleTerminal.exe- No installation or admin rights required
The application is fully portable:
- Copy the entire folder to any location (USB drive, network share, etc.)
- All Unix binaries are included in
bin/unix/folder - No registry modifications or system dependencies
- Launch
AccessibleTerminal.exe - You'll start in PowerShell mode by default
- Type
helpand press Enter to see all available commands - Press
Ctrl+Rto toggle Reading Mode and explore with arrow keys
# Display help information
help
# Clear the terminal screen
clear
# Switch to Bash mode (Unix commands)
bash
# List files in current directory (Bash)
ls -la
# Change directory
cd Documents
# Create a new directory
mkdir NewFolder
# Search for text in files
grep "search term" *.txt
# Switch back to PowerShell
powershell
# Use PowerShell cmdlets
Get-Process | Where-Object {$_.CPU -gt 100}
# Exit the application
exit# Type partial path and press Tab
cd Doc[TAB] β cd Documents\
# Complete with multiple matches
cd D[TAB] β Shows: Desktop, Documents, Downloads
# Navigate paths
cd Documents\Pro[TAB] β cd Documents\Projects\| Shortcut | Action | Description |
|---|---|---|
Enter |
Execute command | Run the current command |
Up/Down |
Command history | Navigate through previous commands |
Tab |
Auto-complete | Complete commands and paths |
Ctrl+L |
Clear screen | Clear all terminal output |
Ctrl+C |
Copy | Copy selected text to clipboard |
Ctrl+V |
Paste | Paste text from clipboard |
Home |
Start of command | Jump to beginning of current command |
| Shortcut | Action | Description |
|---|---|---|
Ctrl+R |
Toggle Reading Mode | Enable/disable arrow key navigation of output |
Ctrl+N |
Next block | Jump to next output block |
Ctrl+P |
Previous block | Jump to previous output block |
Ctrl+E |
Next error | Jump to next error in output |
Arrow Keys |
Navigate (Reading Mode) | Move through output when Reading Mode is on |
Page Up/Down |
Scroll (Reading Mode) | Quick scrolling when Reading Mode is on |
| Shortcut | Action | Description |
|---|---|---|
Ctrl+F |
Toggle fold/expand | Fold or expand current output block |
Ctrl+D |
Unfold all | Expand all folded output blocks |
| Shortcut | Action | Description |
|---|---|---|
Ctrl+B |
Add bookmark | Create bookmark at current position with custom name |
Ctrl+J |
Next bookmark | Jump to next bookmark (wraps around) |
Ctrl+K |
Previous bookmark | Jump to previous bookmark (wraps around) |
| Shortcut | Action | Description |
|---|---|---|
Ctrl+H |
Toggle High Contrast | Switch between standard and high contrast themes |
Ctrl+Plus |
Increase font size | Make text larger (max: 32pt) |
Ctrl+Minus |
Decrease font size | Make text smaller (min: 12pt) |
Ctrl+0 |
Reset font size | Return to default size (14pt) |
| Shortcut | Action | Description |
|---|---|---|
Ctrl+M |
Keyword manager | Open keyword monitoring manager |
Ctrl+O |
Output panels | Show categorized output (errors/warnings/status) |
| Command | Description |
|---|---|
help |
Display comprehensive help with all shortcuts and features |
clear or cls |
Clear the terminal screen |
exit or quit |
Close the application |
| Command | Description |
|---|---|
bash |
Switch to Bash mode with Unix commands |
powershell or pwsh |
Switch to PowerShell mode |
cmd |
Switch to Windows Command Prompt mode |
| Command | Description |
|---|---|
sudo su or sudo |
Restart application with administrator rights (UAC prompt) |
| Command | Description |
|---|---|
monitor add <keyword> |
Add keyword to monitoring list |
monitor remove <keyword> |
Remove keyword from monitoring |
monitor list |
Display all monitored keywords |
monitor clear |
Remove all monitored keywords |
Features:
- Full access to PowerShell cmdlets and scripts
- Object-based pipeline processing
- .NET Framework integration
Examples:
Get-Process | Sort-Object CPU -Descending
Get-ChildItem -Recurse -Filter "*.txt"Path Completion: Uses backslashes (\)
Features:
- Classic Windows command prompt
- Batch file support
- Legacy DOS commands
Examples:
dir /s /b *.txt
ipconfig /allPath Completion: Uses backslashes (\)
Features:
- 46+ bundled Unix commands (no WSL required)
- Unix-style pipes and redirection
- Shell scripting support
Examples:
ls -la | grep "\.txt"
find . -name "*.log"
cat file.txt | sed 's/old/new/g'Path Completion: Uses forward slashes (/)
Note: Windows executables (like code, npm, node) are automatically detected and routed through CMD.
Supported Screen Readers:
- NVDA (NonVisual Desktop Access) - Recommended
- JAWS (Job Access With Speech)
- Windows Narrator
Announcement System:
- Uses UIA (UI Automation) Notification events
- Immediate announcements for all command output
- Context-aware messages
- Full output text announced (not truncated)
What Gets Announced:
- Complete command output
- Error messages
- Shell mode changes
- Bookmark navigation with name and context
- Fold/unfold actions with line count
- All keyboard shortcut activations
How it works:
- Press
Ctrl+Rto enable Reading Mode - Use arrow keys to navigate through output
- Screen reader reads each line as you move
- Press
Ctrl+Ragain to return to command input
Benefits:
- Read output at your own pace
- Navigate back to previous information
- Skip through content quickly
The terminal automatically detects and categorizes output:
Block Types:
- Normal: Regular command output
- Error: Error messages and exceptions
- Stack Trace: Multi-line stack traces (auto-folded)
- JSON: JSON formatted data
- Large Text: Outputs exceeding 50 lines (auto-folded)
Automatic Folding Triggers:
- Output exceeds 50 lines
- Stack trace detected
- Large JSON responses
Manual Control:
- Ctrl+F: Toggle fold/expand current block
- Ctrl+D: Unfold all blocks at once
Access categorized output with Ctrl+O:
Error Panel: All error messages and exceptions with timestamps Warning Panel: Warning messages and deprecation notices Status Panel: Success messages and completion notifications
- .NET 8.0 SDK or later
- Windows 10/11 (x64)
- Git
git clone https://github.com/ibrasonic/AccessibleTerminal.git
cd AccessibleTerminal
# Build Release version
dotnet build -c Release
# Publish self-contained executable
dotnet publish -c Release -r win-x64 --self-contained -o MyAppThe published application will be in the MyApp folder.
Framework: .NET 8.0 with Windows Presentation Foundation (WPF) Language: C# 12
Key Components:
- MainWindow.xaml.cs (2,876 lines) - UI logic, screen reader integration, features
- CommandExecutor.cs (393 lines) - Multi-shell command execution
- MainWindow.xaml - WPF UI layout with AutomationProperties
Announcement Mechanism:
// Uses UIA Notification event for reliable screen reader announcements
peer.RaiseNotificationEvent(
AutomationNotificationKind.ActionCompleted,
AutomationNotificationProcessing.MostRecent,
message,
activityId
);Location: bin/unix/ (365 files, 0.20 MB)
46 Core Commands:
- File operations:
ls,cp,mv,rm,mkdir,touch,cat,find - Text processing:
grep,sed,awk,cut,sort,uniq,wc,head,tail - System utilities:
ps,kill,chmod,chown,du,df - Networking:
curl,wget,ssh,scp - Compression:
tar,gzip,gunzip,zip,unzip - Editors:
vim,nano - And more...
Contributions are welcome! We especially appreciate improvements to accessibility features.
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes and test thoroughly
- Test with screen readers (NVDA, JAWS, Narrator)
- Commit:
git commit -m "Add: Description" - Push:
git push origin feature/your-feature - Open a Pull Request
- Tested with NVDA screen reader
- All keyboard shortcuts work
- Reading mode functions correctly
- High contrast mode displays properly
- Commands execute in all three shell modes
MIT License - Copyright (c) 2025 Ibrahim Badawy (@IBRASONIC)
Permission is granted to use, copy, modify, and distribute this software for any purpose with or without fee.
See full license text in the source files.
Ibrahim Badawy (@IBRASONIC)
- π§ Email: ibrahim.m.badawy@gmail.com
- π GitHub: github.com/ibrasonic
- Microsoft .NET Team - For the excellent .NET 8.0 framework and WPF
- Git for Windows - For providing Unix binaries
- NVDA Community - For accessibility testing and feedback
| Metric | Value |
|---|---|
| Total Code Lines | 3,269 lines (C#) |
| Framework | .NET 8.0 WPF |
| Published Size | ~150 MB (self-contained) |
| Unix Commands | 46 commands (365 files) |
| Supported Shells | 3 (PowerShell, CMD, Bash) |
| Keyboard Shortcuts | 25+ combinations |
| Screen Readers | 3 (NVDA, JAWS, Narrator) |
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: ibrahim.m.badawy@gmail.com
Made with β€οΈ and β¨οΈ for accessibility and productivity
If you find this project helpful, please consider giving it a β on GitHub!