The AIotate binary is a single self-contained executable that includes:
- ✅ Go backend server
- ✅ React frontend (embedded)
- ✅ WebSocket support
- ✅ Desktop webview wrapper
- ✅ All static assets
- Tectonic LaTeX compiler - For PDF generation
- macOS:
brew install tectonic - Windows:
scoop install tectonic - Linux:
sudo apt install tectonicorcargo install tectonic
- macOS:
- AI API Key - For worksheet generation
- Gemini API (free tier available): https://aistudio.google.com/app/apikey
- OpenRouter API (pay-as-you-go): https://openrouter.ai/keys
When users run AIotate for the first time:
The application automatically creates:
./
├── set.json # Configuration file
├── badger-db/ # Database
├── storage/
│ ├── bucket/ # Generated PDFs
│ └── queue_data/ # Queue persistence
├── generated/ # LaTeX files
│ └── gemini_fixes/ # AI fix attempts
├── zp-database/ # JSON debug exports
│ ├── users/
│ ├── sessions/
│ ├── notebooks/
│ ├── queue/
│ └── styles/
└── logs/ # Application logs
If Tectonic is not installed, the app shows:
╔════════════════════════════════════════════════════════════════╗
║ TECTONIC NOT FOUND ║
╚════════════════════════════════════════════════════════════════╝
AIotate requires Tectonic LaTeX compiler to generate PDFs.
Installation instructions:
[Platform-specific instructions shown here]
After installation, restart AIotate.
A default set.json is created with empty API keys:
{
"AI_PROVIDER": "gemini",
"GEMINI_API_KEY": "",
"OPENROUTER_API_KEY": "",
"AI_MAIN_MODEL": "",
"AI_UTILITY_MODEL": "",
"MAX_SESSIONS": 2,
"SHEET_QUEUE_DIR": "./storage/queue_data"
}Users can configure API keys through:
- Settings page in the UI (recommended)
- Manual edit of
set.json
Once Tectonic is installed and API keys are configured:
- ✅ Create worksheets
- ✅ Organize in notebooks
- ✅ Generate PDFs
- ✅ All features available
aiotate-[platform]/
├── aiotate (or aiotate.exe)
└── README.txt
AIotate - AI-Powered Educational Worksheet Generator
====================================================
REQUIREMENTS:
1. Tectonic LaTeX compiler
macOS: brew install tectonic
Windows: scoop install tectonic
Linux: sudo apt install tectonic
2. AI API Key (optional, for generation)
Get free key: https://aistudio.google.com/app/apikey
FIRST RUN:
1. Run the aiotate executable
2. Application will create necessary directories
3. Configure API key in Settings
4. Start creating worksheets!
SUPPORT:
- Documentation: under construction
- Issues: https://github.com/Nadhila-dot/AIotate/issues
- Website: nadhi.dev
Made with ❤️ by Nadhi.dev
- Gatekeeper: Users may need to right-click → Open on first run
- Permissions: May prompt for network access
- Universal Binary: Provide separate builds for Intel and Apple Silicon
- SmartScreen: May show warning on first run
- Antivirus: Some may flag the executable (false positive)
- Dependencies: No additional DLLs needed
- Permissions: Make executable:
chmod +x aiotate - Dependencies: Requires GTK WebKit2 (
libwebkit2gtk-4.0) - Desktop Integration: Can create .desktop file for menu entry
All user data is stored relative to the executable:
- Configuration:
./set.json - Database:
./badger-db/ - Generated PDFs:
./storage/bucket/ - LaTeX files:
./generated/
This makes the application portable - users can move the entire directory.
To upgrade:
- Download new binary
- Replace old binary
- Keep existing data directories
- Restart application
All user data (notebooks, settings, PDFs) is preserved.
To remove AIotate:
- Delete the binary
- Delete the data directories (if desired)
- No registry entries or system files to clean
- API keys stored in plain text in
set.json - Recommend setting file permissions:
chmod 600 set.json - Database is local-only (no cloud sync)
- No telemetry or analytics
Install Tectonic following platform instructions above.
- Check Tectonic is installed:
tectonic --version - Check LaTeX file in
./generated/sheet-[id]/ - Try manual compilation:
tectonic file.tex
- Check API key is configured in Settings
- Verify API key is valid
- Check internet connection
- Review logs in
./logs/
- Check file permissions
- Ensure port 317 is available
- Check logs in
./logs/ - Try running from terminal to see errors
For issues or questions:
- GitHub: https://github.com/Nadhila-dot/AIotate
- Email: hello@nadhi.dev
- Website: nadhi.dev