{"id":28799294,"url":"https://github.com/bgeneto/aianywhere","last_synced_at":"2026-04-18T12:02:28.375Z","repository":{"id":299661741,"uuid":"1003654183","full_name":"bgeneto/AIAnywhere","owner":"bgeneto","description":"A Windows desktop application that provides universal AI assistance through global hotkeys.","archived":false,"fork":false,"pushed_at":"2025-06-17T17:13:28.000Z","size":106,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-17T17:33:03.990Z","etag":null,"topics":["ai","assintant","llm","windows","wpf"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bgeneto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-17T13:19:28.000Z","updated_at":"2025-06-17T17:13:31.000Z","dependencies_parsed_at":"2025-06-17T17:36:28.945Z","dependency_job_id":"1939387c-bbcc-4c97-a1c6-5d08dcba909e","html_url":"https://github.com/bgeneto/AIAnywhere","commit_stats":null,"previous_names":["bgeneto/aianywhere"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bgeneto/AIAnywhere","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgeneto%2FAIAnywhere","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgeneto%2FAIAnywhere/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgeneto%2FAIAnywhere/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgeneto%2FAIAnywhere/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bgeneto","download_url":"https://codeload.github.com/bgeneto/AIAnywhere/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgeneto%2FAIAnywhere/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260499357,"owners_count":23018291,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","assintant","llm","windows","wpf"],"created_at":"2025-06-18T06:05:48.364Z","updated_at":"2026-04-18T12:02:28.367Z","avatar_url":"https://github.com/bgeneto.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AI Anywhere\r\n\r\nA powerful multiplatform desktop application that provides universal AI assistance through global hotkeys. Access any LLM model from anywhere on your system - Word documents, IDEs, browsers, or any text field. Built with Tauri 2.0 (Rust + TypeScript + Tailwind CSS).\r\n\r\n\u003cimg width=\"674\" height=\"470\" alt=\"image\" src=\"https://github.com/user-attachments/assets/0f44a96a-94da-4ce6-aea5-de82212be6c9\" /\u003e\r\n\r\n## ✨ Key Features\r\n\r\n- **Universal Hotkey**: Press `Ctrl+Space` (configurable) from any application\r\n- **Smart Text Capture**: Automatically detects selected text with clipboard fallback\r\n- **System Tray Integration**: Runs minimized with right-click context menu\r\n- **Streaming Responses**: Real-time token-by-token output with cancel support\r\n- **Conversation History**: Searchable, persistent history with re-run capability\r\n- **Custom Tasks Library**: Create your own AI tasks with dynamic options\r\n- **Multiple Response Modes**: Auto-paste, clipboard mode, or review mode\r\n- **Encrypted Configuration**: API keys stored securely with AES-GCM encryption\r\n- **Markdown \u0026 LaTeX**: Full rendering support including syntax highlighting and KaTeX math\r\n\r\n### 🤖 Built-in AI Tasks\r\n\r\n| Task | Description |\r\n|------|-------------|\r\n| **Custom Task** | Flexible AI help for any question |\r\n| **Email Reply** | Professional replies with tone/length options |\r\n| **Text Summarization** | Condense text with format options |\r\n| **Text Translation** | 14+ languages supported |\r\n| **Text Rewriting** | Improve text with configurable tones |\r\n| **Image Generation** | DALL-E, FLUX.1, or compatible models |\r\n| **Speech-to-Text** | Whisper-compatible transcription |\r\n| **Text-to-Speech** | Natural-sounding audio generation |\r\n| **Unicode Symbols** | Quick access to special characters |\r\n| **WhatsApp Response** | Casual message replies |\r\n\r\n## 📥 Installation\r\n\r\n### Download \u0026 Install\r\n1. Download from [Releases](../../releases) (`.msi` for Windows, `.AppImage` for Linux)\r\n2. Run the installer - AI Anywhere appears in your system tray\r\n3. Right-click tray icon → Settings to configure\r\n\r\n### From Source\r\n```bash\r\ngit clone https://github.com/bgeneto/AIAnywhere.git\r\ncd AIAnywhere\r\nnpm install\r\nnpm run dev          # Development mode\r\nnpm run tauri build  # Production build\r\n```\r\n\r\n### Linux Dependencies\r\n\r\n\u003cdetails\u003e\r\n\u003csummary\u003eDebian/Ubuntu\u003c/summary\u003e\r\n\r\n```bash\r\nsudo apt install libwebkit2gtk-4.1-0 libayatana-appindicator3-1 libxdo3\r\n```\r\n\u003c/details\u003e\r\n\r\n\u003cdetails\u003e\r\n\u003csummary\u003eFedora/RedHat\u003c/summary\u003e\r\n\r\n```bash\r\nsudo dnf install webkit2gtk4.1 libayatana-appindicator3 libxdo\r\n```\r\n\u003c/details\u003e\r\n\r\n**Wayland**: Ensure you have a compatible portal (e.g., `xdg-desktop-portal-gnome`) for global shortcuts.\r\n\r\n## 🚀 Quick Start\r\n\r\n1. **Right-click** the system tray icon → **Settings**\r\n2. Configure:\r\n   - **API Base URL**: Your LLM endpoint (e.g., `https://api.openai.com/v1`)\r\n   - **API Key**: Your API key (encrypted automatically)\r\n   - **LLM Model**: Click \"Get Models\" and select one\r\n3. **Save** and start using!\r\n\r\n### Basic Workflow\r\n1. Select text in any application (optional)\r\n2. Press hotkey (`Ctrl+Space`)\r\n3. Choose task and configure options\r\n4. Click **Send** or press `Ctrl+Enter`\r\n\r\n## 🌐 Supported AI Providers\r\n\r\nWorks with any **OpenAI-compatible API**. Auto-detects available models.\r\n\r\n| Provider | Base URL | Notes |\r\n|----------|----------|-------|\r\n| **OpenAI** | `https://api.openai.com/v1` | Full support |\r\n| **Anthropic** | `https://api.anthropic.com/v1` | Text only |\r\n| **Google Gemini** | `https://generativelanguage.googleapis.com/v1beta/openai/` | Text + vision |\r\n| **Ollama** | `http://localhost:11434/v1` | Local LLMs |\r\n| **LM Studio** | `http://localhost:1234/v1` | Local LLMs |\r\n| **OpenRouter** | `https://openrouter.ai/api/v1` | 100+ models |\r\n| **Together AI** | `https://api.together.xyz/v1` | Open-source models |\r\n| **Azure OpenAI** | `https://\u003cresource\u003e.openai.azure.com/v1` | Enterprise |\r\n\r\n## ⚙️ Configuration\r\n\r\n### Settings Overview\r\n\r\n| Setting | Default | Description |\r\n|---------|---------|-------------|\r\n| `hotkey` | `Ctrl+Space` | Global activation |\r\n| `pasteBehavior` | `reviewMode` | `autoPaste`, `clipboardMode`, or `reviewMode` |\r\n| `disableTextSelection` | `false` | Skip auto text capture for faster startup |\r\n| `enableDebugLogging` | `false` | Log API requests |\r\n\r\n## 🐛 Troubleshooting\r\n\r\n\u003cdetails\u003e\r\n\u003csummary\u003e\u003cstrong\u003eAPI Key not working\u003c/strong\u003e\u003c/summary\u003e\r\n\r\n- Verify key is correct (no spaces)\r\n- Check endpoint URL format\r\n- Enable `enableDebugLogging` to see errors\r\n- Verify account has credits\r\n\u003c/details\u003e\r\n\r\n\u003cdetails\u003e\r\n\u003csummary\u003e\u003cstrong\u003eText selection not working\u003c/strong\u003e\u003c/summary\u003e\r\n\r\n- Copy text manually (`Ctrl+C`) before hotkey\r\n- Use \"Clipboard Mode\" in Settings\r\n- Some protected apps block text capture\r\n\u003c/details\u003e\r\n\r\n\u003cdetails\u003e\r\n\u003csummary\u003e\u003cstrong\u003ePaste not working\u003c/strong\u003e\u003c/summary\u003e\r\n\r\n- Try \"Review Mode\" first\r\n- Use \"Clipboard Mode\" for protected fields\r\n- Restart app if paste stops responding\r\n\u003c/details\u003e\r\n\r\n\u003cdetails\u003e\r\n\u003csummary\u003e\u003cstrong\u003eLinux: Application won't start\u003c/strong\u003e\u003c/summary\u003e\r\n\r\nInstall missing dependencies:\r\n```bash\r\n# Debian/Ubuntu\r\nsudo apt install libayatana-appindicator3-1 libxdo3 libwebkit2gtk-4.1-0\r\n\r\n# Fedora\r\nsudo dnf install libayatana-appindicator3 libxdo webkit2gtk4.1\r\n```\r\n\r\nFor Wayland + NVIDIA issues:\r\n```bash\r\nWEBKIT_DISABLE_DMABUF_RENDERER=1 ai-anywhere\r\n```\r\n\u003c/details\u003e\r\n\r\n\u003cdetails\u003e\r\n\u003csummary\u003e\u003cstrong\u003eLinux Wayland: Global hotkey and text capture limitations\u003c/strong\u003e\u003c/summary\u003e\r\n\r\nDue to Wayland's security model, the following limitations apply:\r\n\r\n- **Global hotkeys may not work**: Wayland prevents applications from registering global shortcuts directly. You may need to configure a system-level shortcut in your desktop environment (GNOME/KDE Settings → Keyboard Shortcuts) to launch AI Anywhere.\r\n\r\n- **Automatic text capture is not possible**: Wayland blocks applications from simulating keystrokes (like Ctrl+C) in other apps. **You must manually copy (Ctrl+C) your selected text before triggering the hotkey.**\r\n\r\n**Recommended workflow on Wayland:**\r\n1. Select text in any application\r\n2. Press `Ctrl+C` to copy\r\n3. Press your system shortcut to open AI Anywhere (or use the tray icon)\r\n4. The copied text will automatically appear in the prompt\r\n\r\n**Note:** These are fundamental Wayland security restrictions, not bugs. Consider using an X11 session if you need full global hotkey support.\r\n\u003c/details\u003e\r\n\r\n## 👨‍💻 Development\r\n\r\n### Prerequisites\r\n- Node.js 18+\r\n- Rust 1.70+ ([rustup.rs](https://rustup.rs/))\r\n- Platform build tools (VS Build Tools / XCode / build-essential)\r\n\r\n### Project Structure\r\n```\r\nAIAnywhere/\r\n├── src/                    # React frontend\r\n│   ├── components/         # UI components\r\n│   ├── context/           # AppContext state\r\n│   ├── i18n/              # Translations (en, pt-BR)\r\n│   └── types/             # TypeScript definitions\r\n├── src-tauri/             # Rust backend\r\n│   └── src/\r\n│       ├── lib.rs         # Tauri commands\r\n│       ├── llm.rs         # API communication\r\n│       ├── operations.rs  # Task definitions\r\n│       └── config.rs      # Configuration\r\n└── package.json\r\n```\r\n\r\n### Commands\r\n```bash\r\nnpm run dev           # Development with hot reload\r\nnpm run build         # Production build\r\nnpm run tauri build   # Create installers\r\ncargo fmt \u0026\u0026 cargo clippy  # Format/lint Rust\r\n```\r\n\r\n### Adding a New Task\r\n1. Add to `OperationType` enum in `operations.rs`\r\n2. Define options and system prompt in `get_operations()`\r\n3. Update TypeScript type in `src/types/index.ts`\r\n\r\n## 🤝 Contributing\r\n\r\n1. Fork the repository\r\n2. Create feature branch (`git checkout -b feature/Amazing`)\r\n3. Commit changes (`git commit -m 'Add Amazing'`)\r\n4. Push and open a Pull Request\r\n\r\nSee [Architecture Overview](docs/SOFTWARE_ARCHITECTURE.md) for detailed guidelines.\r\n\r\n## ❓ FAQ\r\n\r\n**Q: Is my API key safe?**  \r\nA: Yes. Encrypted with AES-GCM-256, stored locally, never transmitted except to your configured endpoint.\r\n\r\n**Q: Does it work on macOS/Linux?**  \r\nA: Yes! Build from source, or use Linux releases. macOS binaries coming soon.\r\n\r\n**Q: Can I customize prompts?**  \r\nA: Yes. Edit `config.json` directly with placeholders like `{tone}`, `{language}`.\r\n\r\n**Q: What data is collected?**  \r\nA: None. Zero telemetry. Data only goes to your configured LLM API.\r\n\r\n## 📚 Links\r\n\r\n- [Releases](../../releases) | [Issues](../../issues) | [Discussions](../../discussions)\r\n- [Architecture Docs](docs/SOFTWARE_ARCHITECTURE.md)\r\n- [User Manual](USER_MANUAL.md)\r\n\r\n## 📄 License\r\n\r\nMIT License - Copyright (c) 2025 LABiA-FUP/UnB\r\n\r\n---\r\n\r\n**Made with ❤️ for productivity enthusiasts who want AI assistance everywhere they work.**\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgeneto%2Faianywhere","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbgeneto%2Faianywhere","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgeneto%2Faianywhere/lists"}