Skip to content

Alfrahi/Wasl

Repository files navigation

Wasl (وَصْل): Native Local AI Interface

Wasl is a high-performance, privacy-centric desktop interface for Ollama. Built with Tauri 2, Next.js (Static Export), and Rust, it provides a seamless experience for interacting with local LLMs while maintaining 100% data sovereignty.

Demo

🚀 Overview

Wasl (meaning "Connection" in Arabic) is designed to be more than just a chat interface. It is a robust desktop application that leverages native system capabilities through a secure IPC bridge, ensuring that your AI interactions are fast, reliable, and completely private.


✨ Features

  • 100% Offline AI Assistant – No cloud services. Ever.
  • Thinking & Reasoning Visualization – Supports structured <thought> blocks rendered via ThinkingBlock.tsx for transparent AI reasoning.
  • Mermaid Diagram Rendering – Automatically renders diagrams from mermaid code blocks using MermaidRenderer.tsx.
  • Enhanced Markdown Engine – Advanced parsing via MarkdownRenderer.tsx, combining code, diagrams, and reasoning blocks seamlessly.
  • Structured Planning Workflows – Enables step-by-step reasoning and planning inside conversations.
  • Privacy-First Design – All data remains on your machine.
  • Bilingual Native UI – Full RTL (Right-to-Left) support for Arabic using the Tajawal font and logical CSS properties.
  • Model Management – Pull, delete, and switch between Ollama models locally.
  • Rich Chat Experience – Streaming responses, syntax highlighting, attachments, and long-context conversations.
  • High Performance – Virtualized rendering (React Virtuoso) for smooth handling of large chat histories.
  • System Diagnostics – Built-in logs viewer and system health monitoring.

🏗 Architecture

The project follows a modern, scalable architecture tailored for pure desktop environments:

  • Core Framework: Tauri 2 (Rust) for backend and secure system access.

  • Frontend: Next.js 16 with Static Site Generation (SSG) only — no SSR for maximum compatibility and performance.

  • Domain-Driven Design (DDD): Organized under src/features/ into domains (Chat, Library, Settings, Sidebar, Layout).

  • Component Architecture:

    • ThinkingBlock.tsx – Renders structured reasoning (<thought> tags)
    • MermaidRenderer.tsx – Converts Mermaid syntax into diagrams
    • MarkdownRenderer.tsx – Unified renderer for rich AI responses
  • IPC-Only System Access: All system operations (filesystem, dialogs, Ollama API) go through src/lib/ipc.ts.

  • Local-First Storage: Uses tauri-plugin-store for persistent local data.


🏗️ Development Standards

This project follows strict engineering standards, including:

  • Domain-Driven Design (DDD) structure
  • 100% offline-first architecture
  • Strict TypeScript typing (no loose types)
  • Barrel file exports for domain boundaries
  • RTL-first styling using logical CSS properties
  • IPC-only system access (no direct OS calls from UI)

These standards are mandatory for all contributions.


🛠 Installation

Prerequisites

Setup

  1. Clone the repository.

  2. Install dependencies:

    pnpm install
  3. Start the development environment:

    pnpm dev
  4. Build for production:

    pnpm build

🤝 Contributing

Contributions are welcome. Please ensure that:

  • All features follow the domain-driven structure
  • IPC patterns are strictly respected
  • Code aligns with mentioned development standards
  • Components remain modular and reusable

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


وَصْل (Wasl): واجهة ذكاء اصطناعي محلية أصلية

وَصْل هي واجهة سطح مكتب عالية الأداء ومتمركزة حول الخصوصية لـ Ollama. تم بناؤها باستخدام Tauri 2 و Next.js (تصدير ثابت) و Rust، لتوفير تجربة سلسة للتفاعل مع نماذج اللغة المحلية مع الحفاظ على سيادة البيانات بنسبة 100%.

Demo

🚀 نظرة عامة

تم تصميم "وَصْل" لتكون أكثر من مجرد واجهة دردشة؛ فهي تطبيق سطح مكتب متين يستفيد من قدرات النظام الأصلية من خلال جسر IPC آمن، مما يضمن أن تكون تفاعلاتك مع الذكاء الاصطناعي سريعة وموثوقة وخاصة تماماً.


✨ الميزات

  • مساعد ذكاء اصطناعي يعمل بالكامل دون اتصال – بدون أي خدمات سحابية.
  • عرض التفكير والاستدلال – دعم كتل <thought> لعرض خطوات التفكير بشكل مرئي.
  • دعم مخططات Mermaid – تحويل الأكواد إلى مخططات تفاعلية داخل الدردشة.
  • محرك Markdown متقدم – معالجة متكاملة للنصوص، الكود، والمخططات.
  • سير عمل تخطيطي منظم – تمكين التفكير خطوة بخطوة داخل المحادثات.
  • الخصوصية أولاً – جميع البيانات تبقى على جهازك.
  • واجهة ثنائية اللغة – دعم كامل للغة العربية (RTL) باستخدام خط Tajawal.
  • إدارة النماذج – تحميل، حذف، والتبديل بين نماذج Ollama.
  • تجربة دردشة غنية – استجابات فورية، تمييز كود، وإرفاق ملفات.
  • أداء عالي – استخدام القوائم الافتراضية للتعامل مع المحادثات الطويلة بسلاسة.
  • تشخيص النظام – عرض السجلات ومراقبة حالة النظام.

🏗 البنية الهندسية

يتبع المشروع بنية حديثة وقابلة للتوسع:

  • إطار العمل الأساسي: Tauri 2 (Rust)

  • الواجهة الأمامية: Next.js 16 (توليد ثابت فقط)

  • التصميم المدفوع بالمجالات (DDD): تنظيم الكود داخل src/features/

  • مكونات رئيسية:

    • ThinkingBlock.tsx – عرض التفكير
    • MermaidRenderer.tsx – عرض المخططات
    • MarkdownRenderer.tsx – معالجة المحتوى
  • الوصول عبر IPC فقط: من خلال src/lib/ipc.ts

  • التخزين المحلي: باستخدام tauri-plugin-store


🏗️ معايير التطوير

يتبع المشروع معايير صارمة، وتشمل:

  • بنية DDD
  • العمل دون اتصال بالكامل
  • استخدام TypeScript بشكل صارم
  • تنظيم الكود عبر Barrel Files
  • تصميم يدعم RTL أولاً
  • الوصول للنظام فقط عبر IPC

🛠 التثبيت

المتطلبات

الإعداد

pnpm install
pnpm dev
pnpm build

🤝 المساهمة

المساهمات مرحب بها. يرجى الالتزام بمعايير المشروع واتباع بنية DDD واستخدام IPC بشكل صارم.


📄 الترخيص

هذا المشروع مرخص بموجب MIT - راجع ملف LICENSE.

About

Wasl is a privacy-centric desktop interface for Ollama, designed for local-first AI interactions.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages