A Chrome/Chromium browser extension that provides DevOps mentoring, infrastructure guidance, and writing assistance powered by GitHub Copilot CLI via the Copilot SDK for Node.js.
- π οΈ DevOps Mentor - Expert guidance on AWS, Azure, GCP, Kubernetes, CI/CD, and Infrastructure as Code
- βοΈ Writing Assistant - Email composition, rewriting, translation, and grammar fixes
- π» Development Helper - Code review, debugging, and best practices
- π¬ Multi-Session Support - Manage multiple independent conversations
- π Context Awareness - Use selected text and page context in conversations
- π Streaming Responses - Real-time streaming of AI responses
- π§ Custom DevOps Tools - Config analysis, error diagnosis, file access
- π― Selection Toolbar - Quick actions on text selection
- π«§ Floating Bubble - Persistent UI overlay on any webpage
- β¨οΈ Keyboard Shortcuts - Full keyboard navigation support
- π i18n Support - English and Spanish localization
- Node.js 20+
- pnpm 9+
- GitHub Copilot CLI installed and authenticated (Installation Guide)
- Chrome/Chromium browser
If you want to run the backend in Docker with Copilot CLI auth/session persistence, see:
cd devmentorai
pnpm installpnpm dev:backendThe backend will start on http://localhost:3847.
pnpm build:extensionThen load the extension in Chrome:
- Go to
chrome://extensions - Enable "Developer mode"
- Click "Load unpacked"
- Select the
apps/extension/.output/chrome-mv3folder
For development with hot reload:
# Terminal 1: Backend
pnpm dev:backend
# Terminal 2: Extension (with hot reload)
cd apps/extension && pnpm devdevmentorai/
βββ apps/
β βββ extension/ # WXT Chrome Extension
β β βββ src/
β β β βββ entrypoints/ # Background, content, sidepanel, options
β β β βββ components/ # React UI components
β β β βββ hooks/ # React hooks (useKeyboardShortcuts)
β β β βββ services/ # Communication adapter (HTTP/Native)
β β βββ public/
β β βββ _locales/ # i18n (en, es)
β β
β βββ backend/ # Node.js Backend
β βββ src/
β β βββ routes/ # API endpoints
β β βββ services/ # CopilotService, SessionService
β β βββ tools/ # Custom DevOps tools
β β βββ native/ # Native Messaging host
β β βββ db/ # SQLite database
β βββ tests/ # Vitest unit tests (57 tests)
β
βββ packages/
β βββ shared/ # Shared types & contracts
β
βββ tests/
β βββ e2e/ # Playwright E2E tests
β
βββ docs/
βββ ARCHITECTURE.md # Detailed architecture docs
βββ DOCKER_COPILOT_SETUP.md # Docker backend + Copilot CLI guide
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Chrome Extension (WXT) β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
β β Side Panel β β Content β β Background β β
β β (Chat UI) β β Scripts β β (Service Worker) β β
β β Activity β β - Bubble β β - Context menus β β
β β Settings β β - Toolbar β β - Message routing β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
HTTP/SSE or Native Messaging
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Node.js Backend β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
β β Session β β Copilot β β DevOps Tools β β
β β Service β β Service β β - analyze_config β β
β β β β - Retry β β - analyze_error β β
β β SQLite DB β β - MCP β β - read_file β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
JSON-RPC
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β GitHub Copilot CLI β
β (pre-installed & authenticated) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Type | Icon | Description |
|---|---|---|
| DevOps | π§ | Expert in cloud, Kubernetes, CI/CD, IaC, with custom analysis tools |
| Writing | βοΈ | Email, rewriting, translation, grammar, tone adjustment |
| Development | π» | Code review, debugging, best practices |
| General | π¬ | General-purpose assistant |
The backend provides specialized tools for DevOps analysis:
| Tool | Description |
|---|---|
read_file |
Read local files (sandboxed) |
list_directory |
Browse file system |
analyze_config |
Analyze K8s/Docker/Terraform/GH Actions configs |
analyze_error |
Diagnose errors with solutions |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/health |
Health check |
| GET | /api/sessions |
List sessions |
| POST | /api/sessions |
Create session |
| GET | /api/sessions/:id |
Get session |
| PATCH | /api/sessions/:id |
Update session |
| DELETE | /api/sessions/:id |
Delete session |
| POST | /api/sessions/:id/resume |
Resume session |
| POST | /api/sessions/:id/abort |
Abort request |
| GET | /api/sessions/:id/messages |
Get messages |
| POST | /api/sessions/:id/chat |
Send message |
| POST | /api/sessions/:id/chat/stream |
Stream message (SSE) |
| GET | /api/models |
List available models |
| GET | /api/tools |
List available tools |
| POST | /api/tools/execute |
Execute a tool |
| POST | /api/tools/analyze-config |
Analyze configuration |
| POST | /api/tools/analyze-error |
Diagnose error |
| Shortcut | Action |
|---|---|
Ctrl+Shift+N |
Create new session |
Ctrl+K |
Focus chat input |
Ctrl+Enter |
Send message |
Ctrl+/ |
Show shortcuts help |
Ctrl+Shift+S |
Open settings |
Escape |
Close modal / Cancel |
Alt+β/β |
Previous/Next session |
# Backend unit tests (57 tests)
cd apps/backend && pnpm vitest run
# Build extension
pnpm build:extension
# All tests
pnpm testThe backend stores data in ~/.devmentorai/:
devmentorai.db- SQLite database with sessions and messages
The extension uses Chrome's storage.local for:
- Active session ID
- User preferences (theme, bubble position, toolbar enabled)
- Communication mode (HTTP or Native)
For enhanced security, you can use Native Messaging instead of HTTP:
# Get your extension ID from chrome://extensions
cd apps/backend
node src/native/install-native-host.js <extension-id>Then enable "Native Messaging" in DevMentorAI settings.
- Add the type to
packages/shared/src/types/session.ts - Add the agent config to
packages/shared/src/contracts/session-types.ts - Update the UI in
apps/extension/src/components/NewSessionModal.tsx
Add tools in apps/backend/src/tools/devops-tools.ts:
export const myTool: Tool = {
name: 'my_tool',
description: 'What this tool does',
parameters: {
type: 'object',
properties: {
param1: { type: 'string', description: 'Parameter description' }
},
required: ['param1']
},
handler: async (params) => {
// Implementation
return result;
},
};-
Phase 1 (MVP) β Complete
- Monorepo setup with pnpm
- WXT extension with React + Tailwind
- Fastify backend with SQLite
- Copilot SDK integration
- Chat UI with streaming
- DevOps/Writing/Development modes
- Context menu actions
- i18n (English/Spanish)
- 37 unit tests
-
Phase 2 (UX) β Complete
- Multi-session UI improvements
- Floating bubble UI (draggable)
- Selection toolbar with quick actions
- Tone adjustment (formal/casual/technical)
- Settings page
- Model selection per session
- Quick prompts for session types
-
Phase 3 (Advanced) β Complete
- Native Messaging support
- Communication adapter abstraction
- Activity view (tool visibility)
- Custom DevOps tools (4 tools)
- Retry logic with exponential backoff
- MCP server configuration
- Keyboard shortcuts
- 57 unit tests total
- Full documentation
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please read our Contributing Guide and Code of Conduct before getting started.
If you find DevMentorAI useful, consider supporting the project: