Versatile Almost Local, Eventually Reasonable Assistant
Desktop AI Assistant with Local Model Support
Cowork-Local-LLM-NDT-1.mp4
- β 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
- β 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
- β
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/
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)
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
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
# 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/v1TL;DR: ValeDesk gives you the power of ChatGPT/Claude with the freedom of open source and privacy of local execution.
- Rust 1.74+ (install)
- Node.js 20+
- Python 3 (for
execute_pythontool)
# Clone and enter
git clone https://github.com/vakovalskii/ValeDesk.git
cd ValeDesk
# Install dependencies
npm install
# Run in development mode
make devnpm run test# Build DMG (macOS)
make bundle
# Output: ValeDesk-0.0.8.dmg# 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.dmgWindows build requires cross-compilation setup. Check .github/workflows/ for CI builds.
- Click Settings (βοΈ) in the app
- Configure your API:
- API Key β your key (or
dummy-keyfor local models) - Base URL β API endpoint (must include
/v1) - Model Name β model identifier
- Temperature β 0.0-2.0 (default: 0.3)
- API Key β your key (or
- Click Save Settings
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"
}Browse and install verified skills for ValeDesk: Skills Marketplace
All tools follow snake_case naming convention (verb_noun pattern):
| 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) |
| Tool | Description |
|---|---|
execute_js |
Run JavaScript in secure Node.js vm sandbox |
execute_python |
Run Python code (system Python with pip packages) |
| 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) |
| Tool | Description |
|---|---|
manage_todos |
Create/update task plans with visual progress tracking |
| 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
| Tool | Description |
|---|---|
manage_memory |
Store/read persistent user preferences |
Security: All file operations are sandboxed to the workspace folder only.
# Build executable and installer
npm run dist:win
# Output: dist/ValeDesk Setup 0.0.8.exe# Build DMG (ARM64)
npm run dist:mac-arm64
# Build DMG (Intel x64)
npm run dist:mac-x64# Build AppImage
npm run dist:linux- 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 settingsapi-settings.jsonβ API configurationskills-settings.jsonβ Skills marketplace configuration
~/.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)
See CURSOR.md for development guidelines and project architecture.
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
