A lightweight desktop AI assistant with global hotkey access.
OSshift is a desktop application that provides quick access to AI assistance through global hotkeys. It sits in your system tray and can be instantly summoned with a double-press of the right shift key or Ctrl+Shift+O, allowing you to interact with AI without disrupting your workflow.
- Global Hotkey Access: Quickly summon the assistant with a double-press of the right shift key or Ctrl+Shift+O
- System Tray Integration: Access the app from your system tray without cluttering your taskbar
- Text Selection Capture: Select text anywhere on your screen and send it to the assistant with a hotkey
- Minimalist UI: Clean, distraction-free interface that stays out of your way
- Dark/Light Theme Support: Choose your preferred visual theme
- Settings Persistence: Your preferences are saved between sessions
- API Key Management: Securely store your AI provider API keys (for future AI integration)
- Node.js (v14 or higher)
- pnpm package manager
-
Clone the repository:
git clone https://github.com/yourusername/osshift.git cd osshift
-
Install dependencies:
pnpm install
-
Start the development server:
pnpm dev
To create a production build:
pnpm make
This will create executable files in the release
directory.
Note: Before building for production, create an
assets
directory in the project root and add an icon.png file for the application icon.
- Launch the application
- The app will minimize to your system tray
- Use the global hotkey (double-press right shift or Ctrl+Shift+O) to show/hide the assistant
- Type your query or select text anywhere on your screen before using the hotkey
- The selected text will be automatically sent to the assistant
src/main
: Electron main process codemain.ts
: Application entry pointwindow.ts
: Window managementhotkeys.ts
: Global hotkey registrationipc.ts
: IPC communication between main and renderer processes
src/renderer
: React UI componentsApp.tsx
: Main application componentcomponents/
: UI componentsstyles/
: Styling
src/preload
: Preload script for secure IPC communication
pnpm dev
: Start the development serverpnpm build
: Build the applicationpnpm lint
: Run ESLintpnpm format
: Format code with Prettierpnpm package
: Package the application for distributionpnpm make
: Build and package the application
Contributions are welcome! Here's how you can contribute:
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature
- Commit your changes:
git commit -am 'Add my feature'
- Push to the branch:
git push origin feature/my-feature
- Submit a pull request
- Follow the existing code style
- Write clean, maintainable, and testable code
- Document your code with comments
- Update the README if you add or change features
- AI Integration: Connect to various AI providers
- Custom Hotkey Configuration: Allow users to set their preferred hotkeys
- Context-aware Assistance: Provide assistance based on the current application
- Plugin System: Allow for extensibility through plugins
- Cross-platform Support: Ensure compatibility with Windows, macOS, and Linux
This project is licensed under the MIT License - see the LICENSE file for details.