plugins/omi-linear-app/README.md
Manage your Linear issues with voice commands through your Omi device. Create issues, track your work, update statuses, and add comments β all hands-free!
Current ngrok URL: https://spacious-undiscouragingly-kelle.ngrok-free.dev
| Field | Value |
|---|---|
| App Name | Linear |
| Category | Productivity |
| Description | Manage your Linear issues with voice commands. Create issues, track work, update statuses, and add comments β all hands-free through your Omi device. |
| Field | URL |
|---|---|
| App Home URL | https://spacious-undiscouragingly-kelle.ngrok-free.dev/ |
| Setup Completed URL | https://spacious-undiscouragingly-kelle.ngrok-free.dev/setup/linear |
| Chat Tools Manifest URL | https://spacious-undiscouragingly-kelle.ngrok-free.dev/.well-known/omi-tools.json |
https://spacious-undiscouragingly-kelle.ngrok-free.dev/auth/linear/callback
| Command | Description |
|---|---|
| "Create an issue: Fix login bug" | Create a new issue |
| "Create urgent issue: Server is down" | Create with priority |
| "Show my issues" | List your assigned issues |
| "Show my in-progress issues" | Filter by status |
| "Move ENG-123 to Done" | Update issue status |
| "Mark PROD-456 as In Progress" | Start working on an issue |
| "Search for authentication issues" | Find issues by keyword |
| "What's the status of ENG-789?" | Get issue details |
| "Tell me about PROD-123" | Get full issue information |
| "Add comment to ENG-456: Fixed the bug" | Add a comment to an issue |
| Field | Value |
|---|---|
| App Name | Linear |
| Category | Productivity & Work |
| Description | Manage your Linear issues with voice commands. Create issues, track work, update statuses, and add comments β all hands-free through your Omi device. |
| Author | Omi Community |
| Version | 1.0.0 |
| URL Type | URL |
|---|---|
| App Home URL | https://YOUR-APP.up.railway.app/ |
| Setup Completed URL | https://YOUR-APP.up.railway.app/setup/linear |
| Chat Tools Manifest URL | https://YOUR-APP.up.railway.app/.well-known/omi-tools.json |
Important: Omi automatically appends
?uid=USER_IDto these URLs. Do NOT include{uid}in the URL.
This app exposes a manifest endpoint at /.well-known/omi-tools.json that Omi automatically fetches when the app is created or updated.
| Tool | Description |
|---|---|
create_issue | Create a new issue in Linear |
list_my_issues | List issues assigned to the user |
update_issue_status | Update an issue's workflow status |
search_issues | Search for issues by text |
get_issue | Get detailed info about an issue |
add_comment | Add a comment to an existing issue |
https://YOUR-APP.up.railway.app/auth/linear/callbackThe app requests these Linear permissions:
read - Read access to workspace datawrite - Write access to issuesissues:create - Create new issuescomments:create - Add comments to issues# Navigate to the plugin directory
cd plugins/linear
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Copy environment file and configure
cp .env.example .env
# Edit .env with your credentials
# Run the server
python main.py
LINEAR_CLIENT_ID=your_client_id
LINEAR_CLIENT_SECRET=your_client_secret
LINEAR_REDIRECT_URI=https://your-domain.com/auth/linear/callback
PORT=8080
REDIS_URL= # Optional: for production use
# Start ngrok
ngrok http 8080
# Update LINEAR_REDIRECT_URI in .env with ngrok URL
# Update redirect URI in Linear OAuth app settings
plugins/linear folderREDIS_URL environment variable is set automaticallyGo to your service's Variables tab and add:
| Variable | Value |
|---|---|
LINEAR_CLIENT_ID | Your Linear OAuth Client ID |
LINEAR_CLIENT_SECRET | Your Linear OAuth Client Secret |
LINEAR_REDIRECT_URI | https://YOUR-APP.up.railway.app/auth/linear/callback |
Note: Replace
YOUR-APPwith your actual Railway app domain (shown in Settings β Domains)
If deploying from the main repo, set the Root Directory to plugins/linear:
plugins/linearAdd your Railway URL as a redirect URI in your Linear OAuth application settings:
https://YOUR-APP.up.railway.app/auth/linear/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/linear |
| Chat Tools Manifest URL | https://YOUR-APP.up.railway.app/.well-known/omi-tools.json |
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Railway Project β
βββββββββββββββββββββββββββββββββββββββββββββββββββ€
β βββββββββββββββββ βββββββββββββββββββββ β
β β Linear App ββββββΆβ Redis Database β β
β β (FastAPI) β β (Persistent) β β
β β β β β β
β β - OAuth β β - User tokens β β
β β - Chat tools β β - Settings β β
β β - GraphQL β β - Default teams β β
β βββββββββββββββββ βββββββββββββββββββββ β
β β β
β βΌ β
β https://YOUR-APP.up.railway.app β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
| Endpoint | Method | Description |
|---|---|---|
/ | GET | Home page / App settings |
/health | GET | Health check |
/auth/linear | GET | Start OAuth flow |
/auth/linear/callback | GET | OAuth callback |
/setup/linear | GET | Check setup status |
/disconnect | GET | Disconnect account |
/tools/create_issue | POST | Chat tool: Create issue |
/tools/list_my_issues | POST | Chat tool: List my issues |
/tools/update_issue_status | POST | Chat tool: Update status |
/tools/search_issues | POST | Chat tool: Search issues |
/tools/get_issue | POST | Chat tool: Get issue details |
/tools/add_comment | POST | Chat tool: Add comment |
When creating issues, you can specify priority:
| Priority | Color | Description |
|---|---|---|
| π΄ Urgent | Red | Critical issues needing immediate attention |
| π High | Orange | Important issues to address soon |
| π‘ Medium | Yellow | Standard priority issues |
| π΅ Low | Blue | Nice-to-have or backlog items |
| βͺ None | Gray | No priority set |
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 β€οΈ for Omi