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) | VARS-mac-arm64.dmg |
| macOS | Intel | VARS-mac-x64.dmg |
| Linux | x64 | VARS-linux-x64.AppImage |
- OpenAI Integration: GPT-4o, GPT-4o-mini, GPT-5.2, Whisper transcription
- Google Gemini Integration: Gemini 2.5/3.0 Flash & Pro models with free tier support.
- Configurable Quality Tiers: Free, Fast, Balanced, and Quality modes
- Automatic Fallback: Smart retry with model fallback for free tier
- System Audio: Capture audio from calls, meetings, and any application (uses PulseAudio/PipeWire on Linux)
- Microphone Input: Direct microphone recording for voice questions
- Real-time Transcription: Live audio streaming with OpenAI Realtime API or Gemini Live API
- Capture the foreground application window (not the VARS window)
- AI-powered image analysis with custom questions
- Quick actions: Summarize, Extract Code, Answer Questions
- Upload custom documents (
.txt,.md,.json) - AI uses your knowledge base to provide contextual answers
- Powered by OpenAI Assistants API with Vector Store
- Invisible to Screen Sharing: Window protected from capture on macOS and Windows
- Always-on-Top: Floats above other windows without interfering
- System Tray Integration: Runs quietly in background
- Frameless Design: Minimal, non-intrusive interface
- Interface and responses in English, Portuguese (BR), and Spanish
- Configurable transcription and response language
- Global hotkeys work even when VARS is in background
- Text input for keyboard-only workflow
- Conversation history navigation
- Node.js 18.0 or higher (Download)
- npm (comes with Node.js)
- API Key from one of the providers:
- OpenAI API Key
- 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:
xdotool,wmctrl, orxprop - 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) - Click the ⚙️ Settings button
- Enter your API Key (OpenAI or Google)
- Select your preferred Provider and Quality Tier
- (Optional) Add knowledge base files
- Click Save
| Action | macOS | Windows/Linux |
|---|---|---|
| Start/Stop Recording | ⌥ + Space |
Ctrl + Space |
| Switch Audio Mode | ⌥ + M |
Ctrl + M |
| Screenshot Capture | ⌥ + Shift + S |
Ctrl + Shift + S |
| History Navigation | ⌥ + ↑/↓ |
Ctrl + ↑/↓ |
| Zoom In | ⌥ + + |
Ctrl + + |
| Zoom Out | ⌥ + - |
Ctrl + - |
| Reset Zoom | ⌥ + 0 |
Ctrl + 0 |
- 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: Summarize, Extract Code, or Ask Question
- VARS captures the window and analyzes it with AI
- Type directly in the input field at the top
- Press Enter to send to AI
- Use
Ctrl+↑/↓to navigate conversation history
# Install dependencies first
npm install
# Build for your current platform
npm run build# Using npm script
npm run build:win
# Or using the batch script
.\scripts\build_win.bat# Build for both Intel and Apple Silicon
npm 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 linuxBuilt applications are saved in the dist/ folder:
| Platform | Output Format |
|---|---|
| Windows | .exe (NSIS installer) |
| macOS | .dmg (separate builds for arm64 and x64) |
| Linux | .AppImage |
The build is configured in package.json using electron-builder. Key configurations:
- App ID:
com.vars.app - Product Name:
VARS - macOS: Hardened runtime, microphone entitlements
- Windows: NSIS installer with desktop shortcut
- Linux: AppImage with Utility category
| Provider | Free Tier | Paid Tiers | Features |
|---|---|---|---|
| Google Gemini | ✅ Gemini 2.5/3.0 Flash | Fast, Balanced, Quality | Free API usage, automatic fallback |
| OpenAI | ❌ | Fast (4o-mini), Balanced (4o), Quality (5.2) | Assistants API, Vector Store |
| Tier | Speed | Cost | Best For |
|---|---|---|---|
| Free | Medium | Free | Testing, light usage (Google only) |
| Fast | Fastest | Low | Quick responses, simple questions |
| Balanced | Medium | Medium | General usage (recommended) |
| Quality | Slower | Higher | Complex analysis, long context |
Configuration is stored in ~/.vars/config.json and includes:
- API keys (encrypted storage)
- Provider and tier preferences
- System prompt customization
- Knowledge base file paths
- Audio device preferences
- Language settings
vars/
├── src/
│ ├── main/ # Electron main process
│ │ ├── index.js # App entry point, window management
│ │ ├── config.js # Configuration management
│ │ ├── ipc-handlers.js # IPC communication handlers
│ │ ├── openai.js # OpenAI API integration
│ │ ├── google.js # Google Gemini integration
│ │ ├── realtime.js # OpenAI Realtime API
│ │ ├── gemini-realtime.js# Gemini Live API
│ │ ├── screen-capture.js # Cross-platform screen capture
│ │ └── system-audio.js # Linux system audio capture
│ ├── renderer/ # Electron renderer process
│ │ ├── index.html # Main UI
│ │ ├── renderer.js # UI logic
│ │ └── styles.css # Styling
│ ├── config/ # Configuration files
│ │ ├── models.json # AI model definitions
│ │ └── prompts.json # System prompts (i18n)
│ ├── assets/ # Icons and images
│ └── preload.js # Preload script for IPC
├── scripts/ # Build scripts
│ ├── build_all.sh # macOS/Linux build
│ └── build_win.bat # Windows build
├── build/ # Build resources
│ └── entitlements.mac.plist# macOS entitlements
├── 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
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
xdotoolis installed
AI responses are slow
- Try switching to a faster tier (Fast instead of Quality)
- Google Gemini free tier may have rate limits; consider upgrading
- Check your internet connection
"API key not configured" error
- Open Settings (⚙️) and enter your API key
- Make sure you selected the correct provider (OpenAI or Google)
- Verify your API key is valid at the provider's dashboard
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