AI-powered assistant that listens to your calls and provides intelligent, knowledge-based answers — completely invisible to screen sharing.
🌐 Visit our Website • Download • Features • Installation • Usage • Donate
The motivation behind this project came from observing the growing popularity of Desktop Virtual Agents designed to assist candidates during job interviews. However, most of these tools are either paid or have limited features. This inspired me to create a free and accessible solution, recognizing that many job seekers—especially in developing countries like Brazil—may not have the financial means to afford expensive services while searching for employment.
Additionally, this project aims to accelerate changes in recruitment processes. Current selection methodologies often suffer from structural flaws, eliminating excellent candidates while selecting those who merely fit a "non-human" or artificial standard. By leveling the playing field, we hope to encourage a shift towards more authentic and effective evaluation methods.
A motivação para criar este projeto surgiu ao observar a crescente popularização de Agentes Virtuais de Desktop projetados para auxiliar candidatos em entrevistas de emprego. No entanto, a maioria dessas ferramentas é paga ou possui recursos limitados. Isso me inspirou a desenvolver uma solução gratuita e acessível, pois entendo que muitos candidatos, especialmente em países em desenvolvimento como o Brasil, podem não ter condições financeiras para arcar com custos elevados enquanto buscam uma oportunidade no mercado de trabalho.
Além disso, este projeto visa acelerar mudanças nos processos seletivos. As metodologias de seleção atuais muitas vezes sofrem de falhas estruturais, eliminando excelentes candidatos enquanto selecionam aqueles que apenas se encaixam em um padrão "não humano" ou artificial. Ao nivelar o campo de jogo, esperamos incentivar uma mudança em direção a métodos de avaliação mais autênticos e eficazes.
Download the latest version for your operating system from the Releases page:
| Platform | Architecture | Download |
|---|---|---|
| Windows | x64 | VARS-win-x64.exe |
| macOS | Apple Silicon (M1/M2/M3/M4) | VARS-mac-arm64.dmg |
| macOS | Intel | VARS-mac-x64.dmg |
| Linux | x64 | VARS-linux-x64.AppImage |
- OpenAI OAuth: Login with your ChatGPT Plus/Pro account — no API key needed
- OpenAI API Key: Direct API key for full control
- Google Gemini API Key: Free tier available with generous limits
- Seamless switching between connection modes
- OpenAI: GPT-4o-mini (Fast), GPT-4o (Balanced), GPT-5.2 (Quality)
- Google Gemini: Gemini 3.0 Flash/Pro, Gemini 2.5 Flash/Pro with free tier
- 4 Quality Tiers: Free, Fast, Balanced, and Quality — each with optimized parameters
- Smart Retry: Automatic model fallback with exponential backoff (free tier)
- Local Whisper (Free, Offline): Multiple models (Tiny to Medium) — no internet required
- Cloud OpenAI/Gemini: High-accuracy cloud transcription
- Real-time Transcription: Live audio streaming support
- Auto-detect questions from live transcription and generate instant AI answers
- Question queue with visual tabs and status indicators (unviewed, generating, ready)
- Non-blocking analysis every 5 seconds with smart deduplication
- Perfect for: Long meetings, interviews, lectures with multiple questions
- System Audio: Capture from calls, meetings, and applications (cross-platform)
- Microphone Input: Direct recording with device selection
- Quick Toggle: Switch modes via keyboard shortcut
- Captures foreground window with cross-platform support
- Quick actions: Answers, Code analysis, Summary, Custom questions
- AI-powered image analysis via OpenAI Vision or Gemini Vision
- Upload documents (PDF, TXT, DOCX, MD) for contextual AI answers
- Vector Store integration (OpenAI Assistants API / Google File Search)
- Manage files directly from settings UI
- Invisible to screen sharing (macOS/Windows content protection)
- Always-on-top frameless window with adjustable opacity
- System tray integration with Show/Hide toggle
- Interact with apps behind VARS while keeping window visible
- Global hotkey (⌥+T / Ctrl+Alt+T) and toolbar toggle
- Smart control: Hold Ctrl to temporarily interact with VARS
- Perfect for overlays on top of your workflow
- Custom system prompt with AI-powered optimizer
- Brief Mode: Ultra-short responses for live situations
- English, Português (BR), Español interface and responses
- Language-aware transcription and prompts
- 8-step interactive tutorial on first launch with auto-navigation
- Global hotkeys work in background
- Text input mode and history navigation
- Zoom controls (70%–130%)
- Automatic version check on startup with GitHub releases integration
- Node.js 18.0 or higher (Download)
- npm (comes with Node.js)
- One of the following for AI access:
- OpenAI account (ChatGPT Plus/Pro) for OAuth login — no API key needed
- OpenAI API Key for direct access
- Google AI Studio API Key — free tier available
# Clone the repository
git clone https://github.com/helvecioneto/vars.git
cd vars
# Install dependencies
npm install
# Start the application
npm start
# Or start in development mode (with DevTools)
npm run dev🍎 macOS
- macOS 10.15 (Catalina) or later
- Microphone permission required (system will prompt)
- Screen Recording permission required for screen capture
🪟 Windows
- Windows 10 or later
- No additional permissions required
🐧 Linux
- X11 or Wayland with XWayland
- Screen capture requires one of:
gnome-screenshot,spectacle(KDE),scrot, orimport(ImageMagick) - System audio requires PulseAudio or PipeWire with
parec
# Ubuntu/Debian
sudo apt install xdotool pulseaudio-utils
# Fedora
sudo dnf install xdotool pulseaudio-utils
# Arch
sudo pacman -S xdotool pulseaudio
⚠️ Note: Screen protection (invisible to screen sharing) does not work on Linux.
- Launch VARS (
npm startor double-click the app) - The onboarding tour will guide you through initial setup
- Choose your Connection mode (OAuth, OpenAI API Key, or Gemini API Key)
- Select an AI Model preset
- Choose a Transcription engine (Local Whisper recommended for free offline use)
- (Optional) Add knowledge base files and click Fit
- You're ready to go!
| Action | macOS | Windows/Linux |
|---|---|---|
| Start/Stop Recording | ⌥ + Space |
Ctrl + Space |
| Switch Audio Mode | ⌥ + M |
Ctrl + M |
| Screenshot Capture | ⌥ + Shift + S |
Ctrl + Shift + S |
| Toggle Click-Through | ⌥ + T |
Ctrl + Alt + T |
| Increase Opacity | ⌥ + ] |
Ctrl + Alt + ] |
| Decrease Opacity | ⌥ + [ |
Ctrl + Alt + [ |
- Press
Ctrl+Space(or⌥+Spaceon Mac) to start recording - Speak or let the system audio play
- Press the same shortcut to stop recording
- VARS will transcribe and send to AI for analysis
- View the response in the floating window
- Focus the application you want to capture
- Press
Ctrl+Shift+S(or⌥+Shift+Son Mac) - Select an action: Answers, Code, Summary, or type a Custom Question
- VARS captures the window and analyzes it with AI
- Click the Smart Listener button (brain icon) in the toolbar to enable
- Start recording (
Ctrl+Spaceor⌥+Space) - As you speak or audio plays, VARS automatically:
- Detects questions and important points every 5 seconds
- Generates AI responses for each detected question
- Shows question tabs in the response window with notification badges
- Click any question tab to view its AI-generated answer
- When you stop recording, no final response is sent (Smart Listener already provided incremental answers)
- Disable Smart Listener to return to standard mode (single response after recording stops)
Best For:
- Long meetings with multiple topics
- Job interviews with various questions
- Lectures or presentations with Q&A segments
- Extended conversations where context evolves
- Press
Ctrl+Alt+T(or⌥+Ton Mac) or click the cursor icon button in the toolbar - Notice the purple glow around the window border indicating click-through is active
- Click anywhere to interact with applications behind VARS
- To interact with VARS: Hold
Ctrlkey (macOS/Windows) — the window becomes interactive while held - Toggle the shortcut again to disable click-through mode
Use Cases:
- Position VARS at the top of your screen for constant AI availability while coding
- Keep the response window visible on a second monitor for reference
- Monitor transcriptions while interacting with other applications
- Type directly in the input field ("Ask me anything...")
- Press Enter to send to AI
- Use
Ctrl+↑/↓to navigate conversation history
# Install dependencies first
npm install
# Build for your current platform
npm run buildnpm run build:win
# Or using the batch script
.\scripts\build_win.batnpm run build:mac
# Or using the shell script
./scripts/build_all.sh macnpm run build:linux
# Or using the shell script
./scripts/build_all.sh linux| Platform | Output Format |
|---|---|
| Windows | .exe (NSIS installer) |
| macOS | .dmg (separate builds for arm64 and x64) |
| Linux | .AppImage |
| Tab | Description |
|---|---|
| IA | Connection mode, API keys, Model preset, Transcription engine, Local Whisper management |
| Behavior | Language, Brief Mode, System Prompt with AI Optimizer |
| Knowledge | Upload and manage knowledge base files (.pdf, .txt, .docx, .md) |
| Audio | Microphone and system audio device selection |
| Interface | Window opacity control (20%–100%) |
| About | Version info, update checker, donation links |
| Provider | Tier | Model | Max Tokens |
|---|---|---|---|
| OpenAI | Fast | gpt-4o-mini |
1,024 |
| OpenAI | Balanced | gpt-4o |
4,096 |
| OpenAI | Quality | gpt-5.2 |
16,384 |
| Free | gemini-3-flash-preview + fallbacks |
2,048 | |
| Fast | gemini-3-flash-preview |
4,096 | |
| Balanced | gemini-2.5-flash |
8,192 | |
| Quality | gemini-3-pro-preview |
8,192 |
| Model | Size | Notes |
|---|---|---|
| Tiny | 75 MB | Fastest, lower accuracy |
| Base | 142 MB | Good balance for simple audio |
| Small | 466 MB | Recommended — best accuracy/size ratio |
| Medium | 1.5 GB | Best accuracy, slower |
- Settings:
~/.vars/config.json - Whisper Models:
~/.vars/models/ - OAuth Credentials:
~/.codex/auth.json+ macOS Keychain
vars/
├── src/
│ ├── preload.js # Context bridge (Electron IPC)
│ ├── assets/ # Icons, QR images
│ ├── config/
│ │ ├── models.json # AI model definitions per provider/tier
│ │ └── prompts.json # System prompts (EN, PT-BR, ES)
│ ├── main/
│ │ ├── index.js # App entry point, window, tray, shortcuts
│ │ ├── config.js # Config load/save/migration
│ │ ├── ipc-handlers.js # IPC handler registration
│ │ ├── screen-capture.js # Cross-platform screen capture
│ │ ├── system-audio.js # System audio capture (PulseAudio/loopback)
│ │ ├── handlers/
│ │ │ ├── ai.js # AI responses, image analysis, KB, prompt optimizer
│ │ │ ├── audio.js # Transcription, realtime, whisper management
│ │ │ ├── config.js # Config IPC handlers
│ │ │ ├── media.js # Media-related handlers
│ │ │ ├── misc.js # Miscellaneous handlers
│ │ │ └── window.js # Window management
│ │ └── providers/
│ │ ├── openai/ # Chat, vision, transcription, assistants, realtime, OAuth
│ │ ├── google/ # Chat, vision, transcription, KB, realtime
│ │ ├── local/ # Local Whisper: whisper.cpp bindings, model manager
│ │ └── shared/ # Retry utilities with fallback
│ └── renderer/
│ ├── index.html # Main UI
│ ├── main.js # Renderer entry point
│ ├── events/ # Event handlers
│ ├── history/ # Conversation history
│ ├── input/ # Text input handling
│ ├── onboarding/ # Guided first-run tutorial
│ ├── recording/ # Audio capture & transcription
│ ├── screenshot/ # Screenshot UI
│ ├── settings/ # Settings tabs (API, auto-save, devices, KB, whisper, etc.)
│ ├── state/ # Centralized app state
│ ├── styles/ # CSS modules
│ ├── ui/ # UI components (response, status, tooltips, zoom, visibility)
│ └── utils/ # Error handling, formatting, bounds
├── scripts/ # Build scripts (macOS/Linux/Windows)
├── build/ # Build resources (entitlements)
├── docs/ # Website files
├── package.json # Dependencies & build config
└── README.md
Recording doesn't work
- macOS: Grant microphone permission in System Preferences → Privacy & Security → Microphone
- Linux: Ensure PulseAudio/PipeWire is running:
pulseaudio --check - Check the audio device selection in Settings → Audio tab
Screen capture shows wrong window
- VARS captures the foreground window, not the window under cursor
- Make sure the target window is focused before pressing the shortcut
- On Linux, ensure
gnome-screenshot,spectacle, orscrotis installed
AI responses are slow
- Switch to a faster model preset (Fast instead of Quality)
- Google Gemini free tier may have rate limits — consider using an API key
- Check your internet connection
"API key not configured" error
- Open Settings (⚙️) → IA tab
- Choose a connection type and enter credentials
- If using OAuth, click Login and authenticate in the browser
- If using API key, paste your key and click Test
Local Whisper not working
- Make sure you downloaded a model in Settings → IA tab → Whisper section
- The "Small" model (466 MB) is recommended for best accuracy
- If you get errors, try deleting and re-downloading the model
If VARS helps you in your daily work, consider supporting its development!
Your sponsorship helps:
- 🚀 Develop new features
- 🐛 Fix bugs faster
- 📚 Improve documentation
- ☕ Keep the developer caffeinated
- ⭐ Star this repository to help others discover VARS
- 🐛 Report bugs and suggest features via Issues
- 🔀 Contribute code via Pull Requests
- 📢 Share VARS with your colleagues and friends
Contributions are welcome! Please read the contributing guidelines before submitting a PR.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the GNU General Public License v3.0 (GPLv3).
This license guarantees your freedom to share and change the software, ensuring it remains free software for all its users.
Key Permissions:
- ✅ Commercial use
- ✅ Modification
- ✅ Distribution
- ✅ Private use
Conditions:
- ℹ️ Disclose source
- ℹ️ License and copyright notice
- ℹ️ Same license (Copyleft)
Disclaimer: This software is provided "as is", without warranty of any kind. Please see the LICENSE file for the full license text and important legal disclaimers regarding the use of recording features.
Privacy & Open Source Transparency: Since this tool is Open Source, all privacy-related logic (audio and screen capture) can be verified directly in the source code. We encourage users to audit the code to ensure transparency and trust regarding how their data is handled.
Made with ❤️ for productive meetings