Create and search notes using voice commands through your Omi device. Save ideas, reminders, meeting notes - all hands-free!
- Create Notes - Save notes using natural voice commands
- Search Notes - Find your notes instantly by keywords
- Organize by Notebook - Save to specific notebooks and sections
- List Recent Notes - See what you've been working on
- Read Note Content - Retrieve full content of any note
- Secure OAuth - Industry-standard OAuth 2.0 with Microsoft
- Install the OneNote app from the Omi App Store
- Click "Connect with Microsoft" to authenticate
- Start using voice commands!
| Command | Description |
|---|---|
| "Create a note about meeting with John" | Create a quick note |
| "Save a note titled Shopping List with milk, eggs, bread" | Create note with title |
| "Search my notes for project ideas" | Search by keywords |
| "Show my recent notes" | List recent notes |
| "What notebooks do I have?" | List your notebooks |
| Field | Value |
|---|---|
| App Name | OneNote |
| Category | Productivity |
| Description | Create and search OneNote notes using voice commands. Save ideas, meeting notes, reminders, and more - all hands-free through Omi. |
| Author | Omi Community |
| Version | 1.0.0 |
- External Integration (required for chat tools)
- Chat (for voice command responses)
| URL Type | URL |
|---|---|
| App Home URL | https://your-app.up.railway.app/ |
| Setup Completed URL | https://your-app.up.railway.app/setup/onenote |
| Auth URL | https://your-app.up.railway.app/auth/microsoft |
| Chat Tools Manifest URL | https://your-app.up.railway.app/.well-known/omi-tools.json |
Note: Omi automatically appends
?uid=USER_IDto these URLs.
- Go to Azure Portal
- Navigate to Azure Active Directory > App registrations > New registration
- Enter app name (e.g., "Omi OneNote Integration")
- Select Accounts in any organizational directory and personal Microsoft accounts
- Click Register
- In your app registration, go to Authentication
- Click Add a platform > Web
- Add redirect URI:
https://your-app.up.railway.app/auth/microsoft/callback - For local development, also add:
http://localhost:8080/auth/microsoft/callback - Click Configure
- Go to Certificates & secrets
- Click New client secret
- Add a description and select expiration
- Copy the secret value immediately (it won't be shown again)
- Go to API permissions
- Click Add a permission > Microsoft Graph > Delegated permissions
- Add these permissions:
User.ReadNotes.ReadNotes.ReadWriteNotes.Createoffline_access
- Click Grant admin consent if you have admin access (optional but recommended)
This app exposes a manifest endpoint at /.well-known/omi-tools.json that Omi automatically fetches.
| Tool | Description |
|---|---|
create_note |
Create a new note in OneNote |
search_notes |
Search for notes by keywords |
list_notebooks |
List all notebooks |
list_sections |
List sections in a notebook |
list_recent_notes |
Show recently modified notes |
get_note_content |
Get full content of a note |
- Python 3.8+
- Microsoft Azure account with app registration
# Navigate to the plugin directory
cd plugins/onenote
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Create .env file with your credentials
cat > .env << EOF
MICROSOFT_CLIENT_ID=your_client_id
MICROSOFT_CLIENT_SECRET=your_client_secret
MICROSOFT_REDIRECT_URI=http://localhost:8080/auth/microsoft/callback
MICROSOFT_TENANT=common
PORT=8080
EOF
# Run the server
python -m uvicorn main:app --reload --port 8080| Variable | Description | Default |
|---|---|---|
MICROSOFT_CLIENT_ID |
Azure AD Application (client) ID | Required |
MICROSOFT_CLIENT_SECRET |
Client secret from Azure AD | Required |
MICROSOFT_REDIRECT_URI |
OAuth callback URL | http://localhost:8080/auth/microsoft/callback |
MICROSOFT_TENANT |
Azure AD tenant (common for multi-tenant) |
common |
PORT |
Server port | 8080 |
REDIS_URL |
Redis connection URL (optional for production) | None |
- Go to Railway and sign in
- Click "New Project" > "Deploy from GitHub repo"
- Select your repository and choose the
plugins/onenotefolder
- In your Railway project, click "+ New" > "Database" > "Add Redis"
- Railway automatically creates and connects the Redis instance
- The
REDIS_URLenvironment variable is set automatically
Go to your service's Variables tab and add:
| Variable | Value |
|---|---|
MICROSOFT_CLIENT_ID |
Your Azure AD Application ID |
MICROSOFT_CLIENT_SECRET |
Your client secret from Azure |
MICROSOFT_REDIRECT_URI |
https://YOUR-APP.up.railway.app/auth/microsoft/callback |
MICROSOFT_TENANT |
common |
Add your Railway URL as a redirect URI in Azure Portal:
- Go to your app registration > Authentication
- Add redirect URI:
https://YOUR-APP.up.railway.app/auth/microsoft/callback
Update your app URLs in the Omi App Store:
| URL Type | Value |
|---|---|
| App Home URL | https://YOUR-APP.up.railway.app/ |
| Setup Completed URL | https://YOUR-APP.up.railway.app/setup/onenote |
| Auth URL | https://YOUR-APP.up.railway.app/auth/microsoft |
| Chat Tools Manifest URL | https://YOUR-APP.up.railway.app/.well-known/omi-tools.json |
| Endpoint | Method | Description |
|---|---|---|
/ |
GET | Home page / App settings |
/health |
GET | Health check |
/auth/microsoft |
GET | Start OAuth flow |
/auth/microsoft/callback |
GET | OAuth callback |
/setup/onenote |
GET | Check setup status |
/disconnect |
GET | Disconnect account |
/.well-known/omi-tools.json |
GET | Chat tools manifest |
/tools/create_note |
POST | Create a note |
/tools/search_notes |
POST | Search notes |
/tools/list_notebooks |
POST | List notebooks |
/tools/list_sections |
POST | List sections |
/tools/list_recent_notes |
POST | List recent notes |
/tools/get_note_content |
POST | Get note content |
- Complete the Microsoft OAuth flow by clicking "Connect with Microsoft" in app settings
- Check spelling of the notebook name
- The app uses fuzzy matching, but very different names won't match
- Make sure the notebook exists in your OneNote
- The app automatically refreshes tokens
- If issues persist, disconnect and reconnect your account
- Verify your Azure AD app registration settings
- Ensure redirect URI matches exactly
- Check that all required API permissions are granted
MIT License - feel free to modify and distribute.
For issues or feature requests, please open an issue on GitHub or contact the Omi community.
Made with love for Omi