A personal assistant Agent for everyone.
With Local LLM and virtualization, your personal data can never be sent externally.
Streamline your daily life with Xoul.
π νκ΅μ΄ | English
| β‘ Practical AI Agent | Not a chatbot β it manages files, sends emails, browses the web, and runs code. 18 builtβin tools at OS level. |
| π VMβbased Security | All actions run inside a QEMU virtual machine. Your host system stays untouched. |
| π Daily Automation | Turn repetitive tasks (news digest, server checks, email triage) into scheduled workflows. |
| π₯ Communityβdriven | Import workflows, personas, and code snippets shared by others β or publish your own. |
- π Personal Assistant β Calendar, email, and contacts management (Google integration)
- π Personas & Code β Switch agent roles or run Python snippets from the community hub
- π Workflows β Multiβstep automation templates with scheduling support
- βοΈ AI Arena β Agent playground where AIs discuss topics and play social deduction games
- π₯οΈ Host PC Control β Limited host interaction (browser launch, file operations)
| Component | Minimum | Recommended |
|---|---|---|
| CPU | x86β64, 8 cores | β |
| RAM | 8 GB | 16 GB+ |
| GPU | NVIDIA 30βseries, 8 GB VRAM | NVIDIA 40βseries, 16 GB+ VRAM |
| OS | Windows 11 (10 experimental) | β |
| Disk | 20 GB free | β |
The setup script installs everything automatically, but these are what it sets up:
- Python 3.12 β installed via
wingetif not found - Ollama β local LLM inference engine
- QEMU β virtual machine for sandboxed agent execution
- Visit the Xoul Download Page
- Download the latest release zip and (optionally) the VM image
- Run
install.bat
install.bat automatically handles file placement and runs the setup script.
The interactive setup will then walk you through each step:
git clone https://github.com/xoul-project/xoul.git
cd xoul
.\scripts\setup_env.ps1π Setup Steps Detail (Click to expand)
Choose between Korean and English for all UI and messages.
Three options:
| Mode | Description |
|---|---|
| Local (recommended) | Runs on your GPU via Ollama. Models autoβdownload. |
| Commercial API | Claude, GPTβ5, Gemini, DeepSeek, Grok, Mistral β bring your API key. |
| External | Any OpenAIβcompatible endpoint (vLLM, LM Studio, etc.). |
Local models are selected based on your VRAM:
| Model | VRAM |
|---|---|
| Nemotronβ3βNano 4B (Q8) | ~5 GB |
| Nemotronβ3βNano 4B (BF16) | ~8 GB |
| GPTβoss 20B | ~13 GB |
| NemotronβCascadeβ2 30B | ~20 GB |
Additionally, BGEβM3 (embedding) and Qwen 2.5 3B (summarization, CPUβonly) are installed automatically.
QEMU is installed via winget. The setup tests WHPX hardware acceleration and creates or copies a VM image (~10 GB).
[!IMPORTANT] Enabling WHPX (Windows Hypervisor Platform) delivers 3β5Γ faster VM performance. We strongly recommend setting it up.
GUI setup:
- Press
Win + Rβ typeoptionalfeaturesβ Enter - Check β Hyper-V and β Windows Hypervisor Platform
- Restart your PC
PowerShell setup (Run as Administrator):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform -NoRestart
Restart-Computer[!TIP] After enabling, re-run
setup_env.ps1and WHPX acceleration will be automatically detected and applied.
A .venv is created with Python 3.12. All dependencies (openai, PyQt6, etc.) are installed from requirements.txt.
If a preβbuilt xoul.qcow2 is found, it's copied to the VM directory. Otherwise, a fresh image is created from a cloud image (~10β15 min).
Interactive prompts for:
- User profile β name, location, agent name
- Email β Gmail with App Password (optional)
β οΈ Web Search β Tavily API key (recommended, free tier available). Search quality degrades significantly without it.- Telegram / Discord / Slack β bot token setup (optional)
- GitHub β Personal Access Token for repo tools (optional)
The agent code is deployed to the VM and all services start automatically. Once setup is complete, the Desktop App launches automatically.
To launch the Desktop App after setup:
c:\xoul\desktop\xoul.batPress Ctrl+Space anywhere to open the Quick Bar β a floating input bar that lets you instantly type commands to your agent without switching windows.
Use the Quick Bar to search and open a website directly in Chrome β no window switching needed.
"Search Youtube channel which is related to spring music and open it in chrome"
Workflows are multi-step automation templates that chain tools together β news digest, server health checks, email triage, and more. Trigger any workflow with a single command.
"Run morning briefing workflow"
Browse and import community-shared workflows, personas, and code snippets from the Xoul Hub with a single click β instantly extend your agent's capabilities.
Join the AI Arena where multiple agents discuss topics and play social deduction games. Watch your agent interact autonomously with others in real time.
Chat with your agent through Telegram β manage tasks, run workflows, and get notifications on the go.
Models are automatically selected based on your available VRAM during setup.
| # | Model | VRAM | Speed | Quality |
|---|---|---|---|---|
| 1 | Nemotron-3-Nano 4B (Q8) | 7 GB | Fast | Low |
| 2 | Gemma 4 E2B |
8 GB | Fast | Mid |
| 3 | Nemotron-3-Nano 4B (BF16) | 10 GB | Fast | Mid |
| 4 | Gemma 4 E4B |
10 GB | Fast | Mid |
| 5 | Qwen3-VL-8B-Instruct | 14 GB | Fast | Mid |
| 6 | GPT-oss 20B | 16 GB | Fast | Good |
| 7 | Gemma 4 26B |
18 GB | Mid | Good |
| 8 | Gemma 4 31B |
20 GB | Mid | Nice |
| 9 | Nemotron-Cascade-2 30B | 24 GB | Little Slow | Nice |
Note
Additionally, BGE-M3 (embedding) and Qwen 2.5 3B (summarization, CPU-only) are installed automatically.
| Client | Description |
|---|---|
| Desktop (PyQt6) | Native Windows app with chat UI |
| Telegram | Chat with your agent via Telegram bot |
| Discord | Mention your bot in any channel |
| Slack | Socket Mode integration |
| Terminal | CLI interface |
xoul/
βββ server.py # Main agent server
βββ assistant_agent.py # Agent logic & tool orchestration
βββ llm_client.py # LLM provider abstraction
βββ vm_manager.py # QEMU VM lifecycle
βββ browser_daemon.py # Headless Chromium controller
βββ desktop/ # PyQt6 desktop client
βββ tools/ # 18 built-in tools
βββ scripts/ # Setup, deploy, launcher
βββ locales/ # i18n (ko, en)
βββ services/ # Systemd service files
If you need to re-run the setup, execute the following commands in order:
.\scripts\setup_env.ps1 # Re-run setup
.\scripts\launcher.ps1 # Start servicesMIT
- π Website
- π¬ GitHub Discussions





