Skip to content

Repository files navigation

Itqan — إتقان

English · العربية

A local desktop AI Prompt Engineering Studio — convert developer requests (Arabic or English) into structured, LLM-optimized prompts. All data stays on your machine. No telemetry, no cloud sync, no account.

Stack: Tauri 2 · React 19 · TypeScript 5.8 · Tailwind CSS v4 · SQLite · Rust

Features

  • Multi-provider LLM support — OpenAI, Anthropic, Azure OpenAI, Google Gemini, Groq, and Ollama (local models).
  • Encrypted API keys — AES-256-GCM with the master key stored in the OS keyring (Windows Credential Manager, macOS Keychain, Linux secret-service).
  • Handlebars template engine — write meta-prompts with {{variable}} placeholders; 4 built-in templates included.
  • Streaming responses — token-by-token output with cancel support.
  • Execution history — prompts, outputs, tokens, latency, and cost stored locally in SQLite.
  • Cost tracking — automatic pricing lookup across ~30 models.
  • Monaco Editor — full-featured template editor with a side-by-side diff viewer.
  • Template import/export — share template bundles as JSON files.
  • Signed auto-updates — cryptographically verified releases via the Tauri updater.
  • Arabic-first RTL UI — with full LTR support for English content.

Requirements

  • Node.js 24+
  • Rust 1.95+ (stable, MSVC toolchain on Windows)
  • Windows: Visual Studio 2022 BuildTools with the "Desktop development with C++" workload.

Development

:: Dev mode — opens a native Tauri window with hot reload + devtools
dev.bat

:: Production build — produces .msi + .exe installers
build.bat

:: Rust type-check only (fast iteration)
dev-check.bat

The .bat wrappers automatically load the MSVC environment from VS 2022 BuildTools before invoking cargo/npm.

Do not open http://localhost:1420 in a regular browser — the Tauri IPC bridge only exists inside the native window, so invoke() calls will silently fail.

Architecture

React UI ──invoke──▶ Tauri Commands ──▶ Services (llm, pricing, templates) ──▶ DB / HTTP / Keyring
            ◀──emit stream events──

Single process, no background services, no queues. Streaming flow:

  1. Frontend calls execute_template_stream with a template + variables.
  2. The command renders the prompt, registers a cancel channel, and spawns a tokio task.
  3. The provider adapter streams chunks from the LLM API via mpsc.
  4. Each chunk is emitted to the frontend as a StreamEvent::Delta.
  5. On completion (or cancellation), the execution row — including partial output and computed cost — is persisted to SQLite.

Project Structure

itqan/
├── src-tauri/              Rust backend
│   ├── src/
│   │   ├── commands/       Tauri command handlers (IPC layer)
│   │   ├── crypto/         AES-256-GCM + OS keyring
│   │   ├── db/             SQLite via sqlx (migrations, models)
│   │   ├── errors/         Unified AppError
│   │   ├── llm/            LlmProvider trait + per-provider adapters
│   │   ├── pricing/        Model pricing catalog
│   │   └── templates/      Handlebars rendering + built-in prompts
│   └── migrations/         SQL migrations (idempotent, run on startup)
├── src/                    React frontend
│   ├── components/ui/      Primitive components (Button, Card, Input, CodeEditor…)
│   ├── lib/                Typed IPC wrappers, types, utilities
│   ├── stores/             Zustand (cross-cutting state only)
│   └── views/              Top-level tabs (Executor, Templates, Providers, History)
└── scripts/env.bat         MSVC environment loader

Data Locations

What Where
SQLite database %APPDATA%\com.wosoolsoft.itqan\itqan.db (Windows)
Master encryption key Windows Credential Manager: service com.wosoolsoft.itqan
UI preferences localStorage under itqan.* keys

Security & Privacy

  • API keys are never logged or returned in plaintext — only masked previews (first 4 + last 4 chars).
  • All LLM traffic goes directly from your machine to the provider you configured. No proxy, no middleman.
  • No telemetry. No analytics. No "phone home."

License

Copyright © 2026 WosoolSoft. All rights reserved.

Source-available for viewing, study, and personal use. Redistribution, modification, and derivative works require prior written permission. See LICENSE for full terms.

About

Local desktop AI prompt engineering studio — turn developer requests into structured, LLM-optimized prompts. Multi-provider (OpenAI, Anthropic, Gemini, Ollama…), encrypted keys, fully offline.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages