Complete Sayl Documentation
This guide covers everything you need to run and configure Sayl, from initial installation to low-level CLI commands, targeting v0.1.0 on Windows.
1. Getting Started & Installation
Sayl currently supports 64-bit Windows 10 and Windows 11.
- Open the latest GitHub Release and download
SAYL-Setup-x64-0.1.0.exe. - Launch the installer; it installs inside user scope without requiring administrator elevation.
- Sayl will be ready in your Start Menu and Desktop shortcuts.
Because Sayl is a new open-source project without a costly commercial EV code-signing certificate, Windows may display a blue warning screen saying 'Windows protected your PC / Unknown Publisher'.
How to continue:
1. Click 'More info' inside the prompt.
2. Click 'Run anyway' that appears at the bottom.
Sayl's code is 100% open-source and auditable on GitHub for full verification.
2. Adding a Download
Sayl provides multiple quick ways to start a download:
- Toolbar or shortcut: Click 'Add Download' or press Ctrl + N. If you have a URL in your clipboard, it is pasted automatically.
- Drag and drop: Drag any download link directly from your browser into the Sayl window.
- Duplicate detection: If the link already exists in your tasks, Sayl asks whether you want to reveal the existing task or download it anew, preventing accidental duplicates.
3. Categories & Search
As your downloads grow, Sayl automatically groups them based on file extensions and MIME types:
- 6 Functional Categories: Video, Audio, Documents, Programs, Compressed, and Other for miscellaneous files.
- Status Filters: Switch between All, Active, Paused, Completed, or Failed tasks.
- Live Instant Search: Type in the search box to filter files and URLs in real-time.
- View Modes: Choose between Cards view for rich detail or Table view for dense listing.
4. Progress Window
When downloading, Sayl can show a dedicated progress window providing deep insights into transfer health:
- Parallel Segment Bars: Visual segmented progress bars showing the buffer fill rate of each individual connection.
- Live Metrics: Real-time transfer speed, downloaded vs total size, and estimated time remaining (ETA).
- Direct Actions: Quick buttons to open the finished file or reveal it in Windows Explorer.
- In Settings, you can enable/disable this popup or configure it to close automatically once done.
5. Background Operation & System Tray
Sayl operates quietly in the background without getting in your way:
- Closing or minimizing the window keeps tasks running in the background with an icon in the Windows notification tray.
- Double-clicking the tray icon restores the main application window immediately.
- Right-clicking the tray icon provides quick options to Pause All, Resume All, or Exit completely.
6. Start with Windows
You can configure Sayl to launch automatically on Windows startup. This allows pending downloads to continue automatically whenever you boot up your PC, with negligible memory footprint.
7. Auto-Shutdown on Completion
When downloading large files overnight or before leaving your desk, enable 'Shutdown PC when all downloads complete':
- 30-Second Safety Countdown: Upon completion, Sayl displays a clear 30-second warning dialog with an instant cancel button.
- Strict Safety Guardrails: Shutdown will not trigger if any tasks are paused, failed, or incomplete.
8. Prevent Sleep
Downloads often fail when Windows enters sleep mode after inactivity. Sayl utilizes Windows power APIs to inhibit system sleep while downloads are actively in flight, releasing the lock automatically once tasks finish.
9. Resumption & Server Errors
Sayl is built with strict integrity guarantees for your downloaded files:
- How Resumption Works: Requests byte chunks using HTTP Range requests and validates strong ETag and Last-Modified headers before stitching data.
- Atomic
.partFiles: Data writes exclusively to a.partfile, synced viafsync, and only renamed to the final filename upon 100% verified completion. - Server Failures: Clear error reporting for expired tokens (403) or server overload (503), retaining downloaded chunks safely.
- Crash Recovery: WAL replay automatically safely sets incomplete tasks to Paused after an unexpected system shutdown.
10. Browser Extension & Setup
The browser extension allows Sayl to capture download links directly from Google Chrome, Microsoft Edge, Brave, and compatible Chromium browsers:
- Open Sayl, then go to Settings (gear icon or Ctrl+,).
- Navigate to the Browser Extension section and click Activate.
- Your browser will open the official extension store page; click Add to browser.
Once installed, Sayl captures downloads seamlessly, and you can right-click any link to choose 'Download with Sayl'.
Advanced: Manual Developer Installation (Load unpacked)
If you are building from source or developing the extension locally, you can load it unpacked:
- Open extension settings in your browser:
chrome://extensionsoredge://extensions. - Enable 'Developer mode' in the top toolbar.
- Click 'Load unpacked' and select
extensions/browser/chromium. - Copy the assigned Extension ID.
- Run the registration script in PowerShell:
powershell -ExecutionPolicy Bypass -File tools/register-native-host.ps1 -ExtensionId <EXTENSION_ID>
11. Command-Line Interface (sayl CLI)
Sayl includes a high-performance standalone CLI (sayl.exe) providing full programmatic control:
Core Commands:
| Command & Syntax | Description |
|---|---|
sayl add <urls...> |
Add one or more URLs to the download queue. |
sayl start <id> | --all |
Start a specific queued task by ID, or start every queued task. |
sayl list [--json] |
List all download tasks in tabular format or structured JSON. |
sayl info <id> |
Display detailed telemetry and state information about a task. |
sayl pause <id> |
Pause an active or queued download task safely. |
sayl cancel <id> |
Cancel an active or queued download task. |
sayl remove <id> [--delete-file] |
Remove a task record, optionally deleting downloaded and partial files. |
sayl recover |
Recover non-terminal tasks interrupted by crash or restart. |
sayl events [--idle-exit <ms>] |
Stream live engine events as JSON lines until interrupted. |
Global Options:
| Option | Default | Description |
|---|---|---|
--download-dir <PATH> |
%USERPROFILE%\Downloads\SAYL |
Target destination directory for downloads. |
--data-dir <PATH> |
<download-dir>\.data |
Storage directory for task records and journals. |
--connections <N> |
4 |
Max concurrent connections per task. |
--concurrent <N> |
3 |
Max concurrent active download tasks. |
--lang <ar|en> |
ar |
CLI output language (Arabic or English). |
--json |
— | Output command results in JSON format. |
-q, --quiet |
— | Suppress progress bars and informational messages. |
-v, --verbose |
— | Enable verbose diagnostic logs. |
Exit Codes:
0: Success · 2: Usage error · 3: Task failed · 4: Cancelled · 5: Store or I/O error.
12. Settings Option by Option
Open settings anytime by clicking the gear icon or pressing Ctrl + ,. Here is what each option controls:
| Setting | Range | Default | Details |
|---|---|---|---|
| Download folder download_dir |
Valid folder path | %USERPROFILE%\Downloads |
Default destination directory for finished downloads. |
| Max active downloads max_concurrent_tasks |
1 to 32 | 3 |
Number of active download tasks allowed concurrently. |
| Max connections per task max_connections_per_task |
1 to 64 | 4 |
Number of chunked connections opened per task for parallel acceleration. |
| Theme theme |
Auto / Dark / Light | system |
Theme appearance: follow system preference, dark, or light. |
| Interface language language |
Arabic / English | ar |
Application language and layout direction. |
| View mode view_mode |
Cards / Table | cards |
Default layout: rich visual Cards or compact Table. |
| Prevent sleep prevent_sleep |
On / Off | true |
Prevents Windows from entering sleep mode while downloads are in flight. |
| Show download window show_download_window |
On / Off | true |
Automatically shows dedicated progress window when a download starts. |
| Auto-close download window close_download_window_on_finish |
On / Off | false |
Automatically closes the progress window when task finishes. |
Keyboard Shortcuts:
- Ctrl + N: Add a new download and auto-paste URL.
- Space: Pause or resume selected task.
- Delete: Cancel or remove selected task.
- Ctrl + O: Open Downloads directory in Windows Explorer.
- Ctrl + ,: Open settings dialog.
- Esc: Close dialog or cancel input.
13. Data Storage Locations
Sayl keeps its data transparent and self-contained on your PC:
- Settings & Store: Saved in standard Windows app data:
%APPDATA%\SAYL\
containingsettings.jsonand thestore\directory. - Completed Files: Located in
%USERPROFILE%\Downloads\or your custom directory. - Partial Files (.part): Kept next to download destination until 100% complete.
- Complete Cleanup: To erase all data, simply delete
%APPDATA%\SAYL\.
14. Building Sayl from Source
Sayl is 100% open-source; you can compile and audit it locally:
- Prerequisites:
• Windows 10/11 x64
• Rust GNU toolchain:stable-x86_64-pc-windows-gnu
• Node.js 18+ with npm - Setup Environment in PowerShell:
$env:RUSTFLAGS = "-C linker=rust-lld" - Run Checks and Test Suite:
cargo check --workspacecargo test --workspace - Build Desktop UI (Tauri):
cd apps/desktopnpm installnpm run tauri build
15. Contributing Code
Contributions are welcome. Before submitting a Pull Request, please ensure:
- All deterministic workspace tests pass cleanly via
cargo test --workspace. - Code is formatted according to standard formatting using
cargo fmt --all. - Use standard imperative commit messages (e.g.,
fix(http): handle chunk timeout gracefully). - Consult
CONTRIBUTING.mdin the repository for full guidelines.
16. Reporting Issues
If you encounter a bug or unexpected behavior:
- General Bugs & Features: Open an issue on GitHub Issues using our issue templates.
- Security Vulnerabilities: Please report security concerns privately per the instructions in
SECURITY.md.
17. Plugins
A sandboxed WebAssembly plugin runtime is planned for future milestones (targeted for v0.5.0). In the current release (v0.1.0), plugin APIs do not exist yet. Follow our GitHub releases for roadmap progress.
18. Themes
Sayl currently features two built-in official themes: Dark and Light, plus automatic system switching. Custom user-created theme packs and catalogs are planned for upcoming releases and are not part of v0.1.0.
19. Frequently Asked Questions
Does Sayl download videos from YouTube right now?
Not in v0.1.0. Full video stream extraction and quality selection are scheduled for v0.2.0.
Does Sayl collect any analytics or link telemetry?
Zero telemetry. Sayl has no analytics, no account requirements, and no intermediate proxy servers. All traffic goes directly from your PC to the download host.
A download stalled at a certain percentage, what should I do?
Press Pause and then Resume. If the server issued a temporary token that expired, copy the fresh URL to restart.
Does Sayl support BitTorrent or Magnet links?
BitTorrent protocol support is on the roadmap for v0.4.0 via librqbit. v0.1.0 focuses exclusively on direct HTTP/HTTPS downloads.