https://github.com/sharex/xerahs
XerahS (ShareX.Avalonia) is a cross platform reimagining of the ShareX user interface built with Avalonia. It targets modern UX modular architecture and long term maintainability while preserving core workflows speed and reliability. It provides a foundation for future desktop experiences on Windows macOS and Linux with consistent accessible design
https://github.com/sharex/xerahs
avalonia sharex xerahs
Last synced: 9 days ago
JSON representation
XerahS (ShareX.Avalonia) is a cross platform reimagining of the ShareX user interface built with Avalonia. It targets modern UX modular architecture and long term maintainability while preserving core workflows speed and reliability. It provides a foundation for future desktop experiences on Windows macOS and Linux with consistent accessible design
- Host: GitHub
- URL: https://github.com/sharex/xerahs
- Owner: ShareX
- License: gpl-3.0
- Created: 2025-12-29T01:59:54.000Z (3 months ago)
- Default Branch: develop
- Last Pushed: 2026-02-15T06:14:17.000Z (29 days ago)
- Last Synced: 2026-02-15T06:54:00.565Z (29 days ago)
- Topics: avalonia, sharex, xerahs
- Language: C#
- Homepage: https://xerahs.com
- Size: 25.8 MB
- Stars: 133
- Watchers: 1
- Forks: 3
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
- Roadmap: docs/ROADMAP.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# XerahS
A cross-platform port of the popular **ShareX** screen capture and file sharing tool, built with **Avalonia UI** and .NET 10.

*(Note: Project is in active development)*
## ⚠️ About This Project
**XerahS is developed using agentic coding workflows.** This project embraces AI-assisted development as a first-class engineering practice, leveraging tools like GitHub Copilot, Claude, and other AI agents to accelerate feature development, refactoring, and code quality improvements. The codebase is architected with bleeding-edge technologies (.NET 10, Avalonia 11.3+) and prioritizes patterns that maximize AI comprehension: strict nullability, exhaustive documentation, and standardized MVVM architecture.
**XerahS is and will always be free**, just like ShareX, built out of passion, not for profit. It's developed entirely through agentic coding as a parallel project to ShareX, designed to align with different user preferences and values. You're welcome to give it a try or stick with whatever tool works best for you.
**If agentic coding is not your style**, we encourage you to try the original [**ShareX**](https://github.com/ShareX/ShareX) for Windows, which is developed using traditional methods and has a mature, battle-tested codebase backed by years of community contributions.
**Built by the community, for the community.** XerahS is a collaborative effort driven by passionate contributors who believe in open-source development. Every feature, every improvement, and every line of code represents a shared vision of making powerful screen capture tools accessible to everyone, everywhere.
For developers interested in AI-first development and cross-platform experimentation, XerahS offers a modern foundation built for the future of software engineering.
## ✨ Key Features
- **Cross-Platform Desktop**: Runs on Windows, Linux, and macOS (targeting).
- **Mobile Support (Experimental)**: .NET MAUI implementation for **Android** and **iOS** with file upload, share extension, and uploader configuration.
- **Modern UI**: Reimagined interface inspired by modern design principles.
- **Powerful Capture**:
- **Region Capture**: supports multi-monitor setups with crosshair cursor.
- **Fullscreen** & **Window** capture modes.
- **macOS Support (MVP)**:
- Screenshot service via native `screencapture`
- Global hotkeys powered by SharpHook (requires Accessibility permission)
- **Advanced Annotation Tools**:
- **17 Annotation Types**: Rectangle, Ellipse, Line, Arrow, Text, Number/Step, Blur, Pixelate, Magnify, Highlight, Freehand, SpeechBalloon, Image/Sticker, Spotlight, SmartEraser, Crop, plus base types
- **Basic Shapes**: Rectangle, Ellipse, Line, Arrow, Text, Number/Step
- **Effect Shapes**: Blur, Pixelate, Magnify, Highlight with real-time preview
- **Freehand Tools**: Pen, Highlighter, Smart Eraser
- **Advanced Shapes**: Speech Balloon, Image/Sticker insertion, Spotlight
- **Object-based** selection, moving, resizing, and deletion
- **Full Undo/Redo** support
- **Keyboard Shortcuts**: V(Select), R(Rectangle), E(Ellipse), A(Arrow), L(Line), P(Pen), H(Highlighter), T(Text), B(Balloon), N(Number), C(Crop), M(Magnify), S(Spotlight), F(Effects)
- **Workflows (Zero Inheritance)**:
- **Unique Settings**: Each workflow is fully independent with its own hotkeys and tasks.
- **No "Default" Inheritance**: Reduces configuration errors by avoiding complex inheritance chains.
- **Task Workflow**: Configurable after-capture tasks (Save, Copy, Upload, Image Effects)
- **Modern Capture Architecture**:
- **Windows**: Uses fast `Desktop Duplication API` (DXGI) for high-performance capture.
- **macOS**: Leverages native `ScreenCaptureKit` for performant, permission-compliant recording.
- **Linux**: X11 and Wayland support.
- **Image Editor**:
- **Hardware Accelerated**: Fully GPU-accelerated rendering using Skia/Metal/Direct2D. renders 4K+ images at 60FPS.
- **40+ Effects**: Organized into Adjustments, Filters, Manipulations, and Drawings.
- **Real-time Preview**: Apply effects with instant visual feedback.
- **Serialization**: Save and load annotations with full type support.
## 📱 Mobile (Experimental)
XerahS now includes an experimental **.NET MAUI** mobile implementation for Android and iOS, bringing ShareX's powerful upload capabilities to mobile devices.
### Mobile Features
- **File Upload**: Upload images, videos, and files from your device
- **Share Extension (iOS)**: Share content directly from other apps into XerahS
- **Uploader Support**: Configure Amazon S3 and Custom Uploaders
- **Settings Sync**: Mobile-optimized settings interface
### Building Mobile
#### Prerequisites
- [.NET 10.0 SDK](https://dotnet.microsoft.com/download/dotnet/10.0)
- **Android**: Android SDK API 21+ with emulator or physical device
- **iOS**: Xcode 16+ (macOS required), iOS 15.0+ target
#### Build & Run
```bash
# Android
dotnet build src/XerahS.Mobile.Maui/XerahS.Mobile.Maui.csproj -f net10.0-android
dotnet run --project src/XerahS.Mobile.Maui/XerahS.Mobile.Maui.csproj -f net10.0-android
# iOS (macOS only)
dotnet build src/XerahS.Mobile.Maui/XerahS.Mobile.Maui.csproj -f net10.0-ios
dotnet run --project src/XerahS.Mobile.Maui/XerahS.Mobile.Maui.csproj -f net10.0-ios
```
### Project Structure
- `XerahS.Mobile.Maui` - Main MAUI application (Android/iOS)
- `XerahS.Mobile.UI` - Shared mobile UI components
- `XerahS.Mobile.Android` - Android-specific platform code
- `XerahS.Mobile.iOS` - iOS-specific platform code
- `XerahS.Mobile.iOS.ShareExtension` - iOS Share Extension for receiving shared content
---
## 🚀 Getting Started
### Cloning the Repository
XerahS requires the XerahS.Editor submodule. Clone with:
```bash
git clone --recursive https://github.com/ShareX/XerahS.git
```
If you already cloned without `--recursive`, initialize the submodule:
```bash
cd XerahS
git submodule update --init --recursive
```
### Prerequisites
- [.NET 10.0 SDK](https://dotnet.microsoft.com/download/dotnet/10.0)
### Arch Linux (AUR)
Arch Linux users can install the latest development version via the community-maintained AUR package [`xerahs-git`](https://aur.archlinux.org/packages/xerahs-git) (maintained by @unicxrn).
This package builds directly from the source code and automatically handles dependencies, including the .NET 10 SDK. It can be installed using an AUR helper like `yay`:
```bash
yay -S xerahs-git
```
### macOS Permissions (Screen Recording)
Screen capture on macOS requires Screen Recording permission:
1. Open **System Settings** > **Privacy & Security** > **Screen Recording**.
2. Enable XerahS for screen capture access.
3. Restart the app after granting permission.
### macOS Permissions (Global Hotkeys)
Global hotkeys use SharpHook and need Accessibility permission:
1. Open **System Settings** > **Privacy & Security** > **Accessibility**.
2. Enable XerahS (or the published app bundle) for accessibility access.
3. Restart the app and retest hotkeys.
### macOS Troubleshooting ("App is damaged")
If you see a message saying **"XerahS is damaged and can't be opened"**, it is due to macOS security (Gatekeeper) on quarantined downloads. To fix it:
1. Open **Terminal**.
2. Type the following command (do not hit Enter yet):
```bash
xattr -cr
```
3. Drag the **XerahS.app** file from Finder into the Terminal window (this pastes the full path).
4. Only now, press **Enter**.
## 🛠️ Developer Information
See [DEVELOPER_README.md](DEVELOPER_README.md) for architecture details and contribution guidelines.
## 📄 [License](LICENSE.txt)