Revolutionary Focus Tool - An AI-powered Chrome Extension designed to enhance web accessibility and productivity for users with disabilities.
Katilix is a comprehensive accessibility solution that combines intelligent assistive features with AI-powered tools to help users with ADHD, dyslexia, visual impairments, and other disabilities navigate the web more effectively. The extension provides personalized recommendations, usage tracking, and real-time page assistance through advanced AI capabilities.
-
ADHD Support
- Focus Halo Mode: Dims the screen except around your cursor for enhanced concentration
- Reading Line Guide: Highlights the current line to prevent skipping
- Website Blocker: Redirects distracting sites to maintain focus
-
Vision Impairment Support
- Smart Contrast Adjustment: Customizable contrast levels (low to high)
- Hover Zoom: Magnify text and elements on hover
- Adjustable zoom levels (140%+ magnification)
-
Dyslexia Support
- Dyslexia-Friendly Font & Spacing: Enhanced readability with specialized fonts
- Paragraph Focus: Highlights paragraphs for easier reading
- Text-to-speech integration recommendations
- Page Summarizer: Generate brief, standard, or detailed summaries of any webpage
- Interactive Q&A: Ask questions about page content and get instant AI-powered answers
- Quick Prompts: Pre-configured prompts for common tasks (summarize, main points, explain simply)
- Chat History: Maintain conversation context for deeper understanding
- Real-time website usage monitoring
- Visual analytics dashboard
- Personalized insights based on browsing patterns
- Disability-specific recommendations (e.g., Pomodoro technique for ADHD users)
- Time management statistics
- Three theme options: Light, Dark, and Night mode
- Customizable settings per disability mode
- Responsive popup interface
- Smooth transitions and modern UI design
- Website blocker for distraction-free browsing
- Local time tracking per site
- Adaptive accessibility engine (coming soon - learns patterns and suggests settings)
- Content script injections for real-time page modifications
This monorepo contains three main components:
React-based browser extension with Vite build system
Tech Stack:
- React 18.2 + React DOM
- Vite for fast development and building
- Tailwind CSS + PostCSS for styling
- Chrome Extension Manifest V3
- Puppeteer for advanced automation
Key Components:
src/popup/- Extension popup UIsrc/content/- Content scripts for page manipulationsrc/background/- Service worker for background taskssrc/features/- Feature modules (AI assistant, disability support, tracker)src/services/- API integration layer
Express.js REST API with AI and database integration
Tech Stack:
- Express.js
- PostgreSQL with pg driver
- Google Generative AI (Gemini)
- Passport.js for authentication (Local + JWT)
- Express Session management
- CORS enabled
Features:
- AI endpoints for summarization and Q&A
- User preferences management
- Usage tracking and analytics
- JWT-based authentication
- Database health checks
API Routes:
/api/ai/summarize- Page summarization/api/ai/ask- Q&A functionality/api/tracker/log- Usage logging/api/tracker/stats- Retrieve usage statistics/api/prefs- User preferences management
React + TypeScript admin dashboard
Tech Stack:
- React 18.2 with TypeScript
- Vite build system
- Tailwind CSS + Radix UI components
- React Router for navigation
- Recharts for data visualization
- Axios for API calls
Features:
- User activity analytics
- Visual charts and graphs
- Settings management
- Responsive design
- Node.js v16 or higher
- npm or yarn
- Chrome Browser (for extension testing)
- PostgreSQL database (for backend)
- Google Gemini API Key (for AI features)
-
Clone the repository:
git clone https://github.com/yourusername/katilix.git cd katilix -
Install all dependencies:
npm run install:all
Or install individually:
# Root dependencies npm install # Extension dependencies cd extension && npm install # Server dependencies cd ../server && npm install # Dashboard dependencies cd server/frontend && npm install
Create a .env file in the server/ directory:
# Server Configuration
PORT=3000
NODE_ENV=development
CORS_ORIGIN=http://localhost:5173
# Google Gemini AI
GEMINI_API_KEY=your_gemini_api_key_here
# PostgreSQL Database
AZURE_SQL_SERVER=your_server.database.windows.net
AZURE_SQL_DATABASE=katilix_db
AZURE_SQL_USER=your_username
AZURE_SQL_PASSWORD=your_password
# JWT Authentication
SESSION_SECRET=your_session_secret_here
JWT_SECRET=your_jwt_secret_hereCreate a .env file in the frontend/ directory:
VITE_NODE_ENV= development
VITE_API_URL= http://localhost:8080/(keep in mind, this may not connect you to our DB since we have it securily managing IPs, so you may need to connect it to your own DB)
cd server
npm run dev
# Server runs on http://localhost:8080cd extension
npm run dev
# Build outputs to extension/dist/cd server/frontend
npm run dev
# Dashboard runs on http://localhost:5173- Open Chrome and navigate to
chrome://extensions/ - Enable Developer mode (toggle in top right)
- Click Load unpacked
- Select the
extension/packaged/directory - The Katilix extension icon should appear in your toolbar
npm run build:extension
# Output: extension/packaged/npm run build:servernpm run build:allkatilix/
βββ extension/ # Chrome Extension
β βββ src/
β β βββ popup/ # Extension popup UI
β β βββ content/ # Content scripts
β β βββ background/ # Background service worker
β β βββ features/ # Feature modules
β β β βββ ai-assistant/ # AI chat & summarizer
β β β βββ disability/ # Disability modes & settings
β β β βββ tracker/ # Usage tracking
β β βββ services/ # API services
β β βββ components/ # Shared components
β βββ public/ # Static assets
β βββ packaged/ # Build output
β
βββ server/ # Backend API
β βββ controllers/ # Route controllers
β βββ routes/ # API routes
β βββ models/ # Database models
β βββ middleware/ # Auth & JWT handlers
β βββ config/ # Azure & Gemini config
β βββ queries/ # SQL queries
β βββ frontend/ # Analytics dashboard
β βββ src/
β βββ pages/ # Dashboard pages
β βββ components/ # UI components
β βββ assets/ # Static assets
β
βββ package.json # Root package config
The extension requires the following permissions:
tabs- Access to tab informationstorage- Local and sync storage for settingsactiveTab- Access to the current active tabscripting- Inject content scriptsnotifications- User notificationsalarms- Periodic background taskshost_permissions- Access to webpage content
- Adaptive accessibility engine with ML-based pattern learning
- Multi-language support
- Firefox and Edge extension versions
- Mobile app companion
- Advanced analytics dashboard
- Text-to-speech integration
- Screen reader optimization
- Collaborative features for educators
- Export usage reports