NullByte is a lightweight Electron-based desktop tool that gives you instant access to Google's Gemini AI while you code. It sits on top of your IDE, browser, or terminal as a non-intrusive floating panel — perfect for quick code explanations, debugging help, and on-the-fly learning.
⚠️ Disclaimer: NullByte is designed as a personal productivity and learning tool. It is not intended for use during interviews, exams, proctored assessments, or any scenario where external assistance is prohibited. Please use this tool ethically and responsibly.
- Always-On-Top Panel — A floating panel that stays visible over your IDE, browser, or any other application so you can reference AI-generated solutions without switching windows.
- Click-Through Mode — The panel doesn't interfere with your workflow; mouse events pass through to the application underneath.
- Global Hotkeys — Control everything via keyboard shortcuts without leaving your current app.
- Gemini AI Integration — Leverages Google's latest multimodal AI models for intelligent code analysis and solutions.
- Screenshot & Solve — Capture a portion of your screen (error messages, code snippets, UI bugs) and let AI analyze it instantly.
- Secure API Key Storage — Your Gemini API key is stored with encryption on your local machine.
The fastest way for macOS users to install NullByte and keep it updated is through our custom Homebrew tap:
brew tap 101yogeshsharma/nullbyte
brew install nullbyteNote: You may be prompted to allow the application to open since it is an unsigned release currently.
Windows users can soon install NullByte natively via Microsoft's Winget package manager!
winget install NullByte(Note: NullByte relies on central submission to microsoft/winget-pkgs. If the latest release isn't available immediately, give the pull request a few hours to merge).
Make sure you have the following installed on your machine:
| Tool | Version | Download |
|---|---|---|
| Node.js | v18 or higher | nodejs.org |
| NPM | Comes with Node.js | — |
| Git | Any recent version | git-scm.com |
git clone https://github.com/101yogeshsharma/NullByte.git
cd NullBytenpm installNullByte uses Google's Gemini AI under the hood. You'll need a free API key:
- Go to Google AI Studio.
- Sign in with your Google account.
- Click "Get API Key" → "Create API Key".
- Copy the key — you'll paste it into NullByte when you first launch it.
Note: Your API key may have restrictions. If the default
gemini3 27Bmodel fails, try selecting another model from the app's dropdown menu.
npm run startThis launches NullByte directly. You can also use:
npm run devTo create a standalone installer that you can share or install on any machine:
# To build macOS (.dmg)
npm run build:mac
# To build Windows (.exe)
npm run build:winThe output installers will be placed in the dist/ folder.
💡 Tip for Git Bash / WSL users: You can also use the included build script:
chmod +x build.sh ./build.shIt handles dependency checks, cleans previous builds, and creates the
.exein one step.
NullByte/
├── main.js # Electron main process — window creation, hotkeys, AI logic
├── preload.js # Preload script — bridges main ↔ renderer securely
├── renderer/ # Frontend UI files
│ └── overlay.html # The overlay's HTML, CSS, and client-side JS
├── assets/
│ └── icon.png # App icon (512×512)
├── build/
│ └── installer.nsh # NSIS installer customization script
├── verify_key.js # Gemini API key validation utility
├── electron-builder.yml # Electron Builder configuration
├── package.json # Project metadata and scripts
└── build.sh # Bash build helper script
- Launch NullByte.
- Enter your API Key — Get a free Gemini API key from Google AI Studio and paste it when prompted.
- Use keyboard shortcuts to interact with NullByte:
| Shortcut | Action |
|---|---|
Ctrl + Shift + S |
Capture a screenshot (adds to queue) |
Ctrl + Shift + G / Ctrl + Shift + Enter |
Solve with AI |
Ctrl + Shift + D |
Solve (alternative shortcut) |
Ctrl + Shift + Q |
Toggle NullByte visibility |
Ctrl + Shift + X |
Clear screenshot queue |
Ctrl + Shift + M |
Toggle AI model selection |
Ctrl + Shift + Arrow Keys |
Scroll through the solution |
- Workflow: Capture a screenshot of a coding problem or error → press Solve → read the AI-generated explanation and solution right in NullByte.
- Always-On-Top Window — Built as an Electron
BrowserWindowwithalwaysOnTopenabled, using a frameless, transparent design for minimal visual footprint. - Click-Through — Uses Electron's
setIgnoreMouseEventsAPI so the tool doesn't block interaction with underlying apps. - Compact UI — Uses a toolbar-style window to keep the interface minimal and out of the way.
- Self-Hiding Capture — NullByte temporarily hides before taking screenshots to ensure clean captures of the content beneath it.
- Icon — Replace
assets/icon.pngwith your own 512×512 PNG. - Theme — Edit the styles in
renderer/overlay.htmlto customize colors, fonts, and layout.
| Problem | Solution |
|---|---|
npm install fails |
Make sure you have Node.js v18+ installed. Run node -v to check. |
| NullByte doesn't appear | Press Ctrl + Shift + Q to toggle visibility. Check if the app is running in the system tray. |
| "Invalid API Key" error | Double-check your Gemini API key at Google AI Studio. Make sure there are no extra spaces. |
| Build fails with privilege errors | Run your terminal as Administrator and try again. |
| Screenshots are blank | Make sure you're not running the app in a virtual machine, as some VMs restrict screen capture APIs. |
Contributions are welcome! Here's how you can help:
- Fork this repository.
- Create a branch for your feature or fix:
git checkout -b feature/your-feature-name
- Make your changes and commit them:
git commit -m "Add: your feature description" - Push to your fork:
git push origin feature/your-feature-name
- Open a Pull Request against the
mainbranch of this repository.
- 🐛 Bug fixes and stability improvements
- 🎨 UI/UX enhancements
- 🌐 Multi-platform support (macOS, Linux)
- 📝 Documentation improvements
- ✨ New AI model integrations
This project is licensed under the Apache License 2.0 — see the LICENSE file for details.