Skip to content

Versatile Almost Local, Eventually Reasonable Assistant πŸ”«

License

Notifications You must be signed in to change notification settings

vakovalskii/ValeDesk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

266 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ValeDesk

Versatile Almost Local, Eventually Reasonable Assistant

Version Platform License

Desktop AI Assistant with Local Model Support


Cowork-Local-LLM-NDT-1.mp4

✨ Features

Core Capabilities

  • βœ… Task Planning β€” visual todo panel with progress tracking, persisted per session
  • βœ… Scheduled Tasks β€” create reminders and recurring tasks with auto-execution
  • βœ… OpenAI SDK β€” full API control, compatible with any OpenAI-compatible endpoint
  • βœ… Local Models β€” vLLM, Ollama, LM Studio support
  • βœ… Code Sandboxes β€” JavaScript (Node.js vm) and Python (system subprocess) execution
  • βœ… Document Support β€” PDF and DOCX text extraction (bundled, works out of the box)
  • βœ… Web Search β€” Tavily and Z.AI integration for internet search
  • βœ… Telegram Parsing β€” render t.me channels with reactions, views, auto-scroll for older posts
  • βœ… Security β€” directory sandboxing for safe file operations
  • βœ… Cross-platform β€” Windows, macOS, Linux with proper shell commands

UI/UX Features

  • βœ… Modern Interface β€” React + Tauri with smooth auto-scroll and streaming
  • βœ… Message Editing β€” edit and resend messages with history truncation
  • βœ… Session Persistence β€” sessions survive app restart (SQLite backed)
  • βœ… Session Management β€” pin important sessions, search through chat history
  • βœ… Keyboard Shortcuts β€” Cmd+Enter/Ctrl+Enter to send messages
  • βœ… Spell Check β€” built-in spell checking with context menu suggestions
  • βœ… Permission System β€” ask/default modes for tool execution control

Advanced Features

  • βœ… Memory System β€” persistent storage of user preferences in ~/.valera/memory.md
  • βœ… Token Tracking β€” display input/output tokens and API duration
  • βœ… Optimized Streaming β€” requestAnimationFrame-based UI updates (60fps)
  • βœ… Stop Streaming β€” interrupt LLM responses at any time
  • βœ… Loop Detection β€” automatic detection of stuck tool call loops (5+ sequential same-tool calls)
  • βœ… Request Timeouts β€” 5-minute timeout with auto-retry for LLM requests
  • βœ… Session Logging β€” full request/response JSON logs per iteration in ~/.valera/logs/sessions/

πŸ€” Why ValeDesk?

Open Architecture & Full Control

ValeDesk isn't just another AI assistant β€” it's a framework you own. Built with TypeScript and Tauri, every component is transparent and modifiable:

  • Readable codebase β€” well-structured, documented code you can understand
  • Easy customization β€” add new tools, modify prompts, change UI without black boxes
  • Your rules β€” adjust behavior, safety limits, and workflows to match your needs
  • No vendor lock-in β€” works with any OpenAI-compatible API (vLLM, Ollama, LM Studio)

100% Local & Private

Everything runs on your machine:

  • Local inference β€” use Ollama, vLLM, or LM Studio for complete privacy
  • No data collection β€” your conversations never leave your computer
  • Offline capable β€” works without internet (except web search tools)
  • Sandboxed execution β€” secure JavaScript sandbox and file operation restrictions

Experiment & Iterate

Perfect for developers, researchers, and AI enthusiasts:

  • Test local models β€” compare Qwen, Llama, DeepSeek, and others
  • Debug API calls β€” full request/response logs for every interaction
  • Prototype tools β€” add custom functions in minutes
  • Monitor performance β€” track tokens, timing, and resource usage

Real Use Cases

# Run Ollama locally (free, 100% private)
ollama serve
# Configure ValeDesk: http://localhost:11434/v1

# Or use vLLM for faster inference
vllm serve Qwen/Qwen2.5-14B-Instruct --port 8000
# Configure ValeDesk: http://localhost:8000/v1

TL;DR: ValeDesk gives you the power of ChatGPT/Claude with the freedom of open source and privacy of local execution.

πŸš€ Quick Start

Prerequisites

  • Rust 1.74+ (install)
  • Node.js 20+
  • Python 3 (for execute_python tool)

Development (macOS/Linux)

# Clone and enter
git clone https://github.com/vakovalskii/ValeDesk.git
cd ValeDesk

# Install dependencies
npm install

# Run in development mode
make dev

Tests

npm run test

Build Standalone App

# Build DMG (macOS)
make bundle

# Output: ValeDesk-0.0.8.dmg

Manual Build Steps

# 1. Build sidecar binary
npm run build:sidecar

# 2. Build Tauri app
cd src-tauri && cargo build --release

# 3. Create DMG
hdiutil create -volname "ValeDesk" \
  -srcfolder src-tauri/target/release/bundle/macos/ValeDesk.app \
  -ov -format UDZO ValeDesk-0.0.8.dmg

Windows (coming soon)

Windows build requires cross-compilation setup. Check .github/workflows/ for CI builds.

Configuration

  1. Click Settings (βš™οΈ) in the app
  2. Configure your API:
    • API Key β€” your key (or dummy-key for local models)
    • Base URL β€” API endpoint (must include /v1)
    • Model Name β€” model identifier
    • Temperature β€” 0.0-2.0 (default: 0.3)
  3. Click Save Settings

Example Configurations

Local vLLM:

{
  "apiKey": "dummy-key",
  "baseUrl": "http://localhost:8000/v1",
  "model": "qwen3-30b-a3b-instruct-2507"
}

OpenAI:

{
  "apiKey": "sk-...",
  "baseUrl": "https://api.openai.com/v1",
  "model": "gpt-4"
}

🎯 Skills Marketplace

Browse and install verified skills for ValeDesk: Skills Marketplace

image

πŸ› οΈ Available Tools

All tools follow snake_case naming convention (verb_noun pattern):

File Operations

Tool Description
run_command Execute shell commands (PowerShell/bash)
read_file Read text file contents
write_file Create new files
edit_file Modify files (search & replace)
search_files Find files by glob pattern (*.pdf, src/**/*.ts)
search_text Search text content in files (grep)
read_document Extract text from PDF/DOCX (max 10MB)

Code Execution

Tool Description
execute_js Run JavaScript in secure Node.js vm sandbox
execute_python Run Python code (system Python with pip packages)

Web Tools

Tool Description
search_web Search the internet (Tavily/Z.AI)
extract_page Extract full page content (Tavily only)
read_page Read web page content (Z.AI Reader)
render_page Render JS-heavy pages via Chromium (Telegram, SPAs)

Task Management

photo_2026-01-19_00-55-13

Tool Description
manage_todos Create/update task plans with visual progress tracking

Scheduler

Tool Description
schedule_task Create, list, update, delete scheduled tasks

Features:

  • One-time reminders β€” "remind me in 30 minutes"
  • Recurring tasks β€” every minute, hour, day, week, month
  • Auto-execution β€” tasks with prompts automatically start new chat sessions
  • Native notifications β€” macOS system notifications
  • Default model β€” set preferred model for scheduled tasks

Memory

Tool Description
manage_memory Store/read persistent user preferences

Security: All file operations are sandboxed to the workspace folder only.

πŸ“¦ Building

Windows

# Build executable and installer
npm run dist:win

# Output: dist/ValeDesk Setup 0.0.8.exe

macOS

# Build DMG (ARM64)
npm run dist:mac-arm64

# Build DMG (Intel x64)
npm run dist:mac-x64

Linux

# Build AppImage
npm run dist:linux

πŸ” Data Storage

Application Data

  • Windows: C:\Users\YourName\AppData\Roaming\ValeDesk\
  • macOS: ~/Library/Application Support/ValeDesk/
  • Linux: ~/.config/ValeDesk/

Files:

  • sessions.db β€” SQLite database with chat history, todos, scheduled tasks, and settings
  • api-settings.json β€” API configuration
  • skills-settings.json β€” Skills marketplace configuration

Global Data

  • ~/.valera/memory.md β€” persistent memory storage
  • ~/.valera/logs/sessions/{session-id}/ β€” per-session API logs:
    • turn-001-request.json β€” full request (model, messages, tools, temperature)
    • turn-001-response.json β€” full response (usage, content, tool_calls)

πŸ› οΈ Contributing

See CURSOR.md for development guidelines and project architecture.

⭐ Star History

Star History Chart

πŸ“„ License

ValeDesk Community License β€” free for individuals and companies with revenue under $1M/year. Commercial license required for larger organizations.

See LICENSE for full terms.


Made with ❀️ by Valerii Kovalskii