A browser extension to detect misinformation across the web
Features • Installation • How It Works • Backend Setup • Development • License
## Announcement March 25, 2025Pinocchio servers going offline. Your own server, api key, and build of the extension is now required to use it.
Pinocchio is a powerful browser extension that helps users navigate the complex landscape of online information by:
- Analyzing web content for potential misinformation using AI
- Providing reliability scores from 0-10 (with Pinocchio's nose growing accordingly!)
- Generating comprehensive reports with context and verified sources
- Creating a database of all analyzed pages for historical reference
- Supporting sharing of fact-check results
- Download the extension ZIP file from our website
- Unzip/extract the downloaded file to a location on your computer
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer Mode" in the top-right corner
- Click "Load unpacked" and select the extracted extension folder
- The Pinocchio icon should now appear in your browser toolbar
The extension requires the backend server to be running:
- Set up the server as described in the Backend Setup section
- The extension is configured to connect to
http://172.105.18.148:8080by default - To use a different server address, modify
popup.jsandmanifest.jsonaccordingly
- Installation: Add the Pinocchio extension to your browser.
- Browse & Analyze: When visiting a webpage, click the Pinocchio icon to analyze the content.
- Review Results: Get instant feedback with:
- A misinformation score (0-10)
- Visual indication via Pinocchio's growing nose
- A detailed report explaining potential issues
- Links to verified sources
- Additional context about the topic
- Download Reports: Save detailed HTML reports for future reference.
- Access Dashboard: Visit the report dashboard to view all previously analyzed pages.
The backend server uses Flask with Google's Gemini AI for content analysis:
- Python 3.8+
- Google Gemini API key
- SQLite (included with Python)
- Create a
.envfile in thebackenddirectory with:
GEMINI_API_KEY=your_gemini_api_key
DATABASE_PATH=reports.db
REPORTS_DIR=reports
- Install dependencies:
cd backend
pip install flask flask-cors google-generativeai python-dotenv- Start the server:
python app.pyThe server will run at http://127.0.0.1:8080 by default.
Pinocchio/
├── extension/ # Chrome extension files
│ ├── images/ # Extension icons and images
│ ├── libs/ # JavaScript libraries
│ ├── background.js # Extension background script
│ ├── content.js # Content script for web pages
│ ├── manifest.json # Extension manifest
│ ├── popup.html # Extension popup UI
│ ├── popup.js # Extension popup logic
│ └── styles.css # Extension styling
│
├── backend/ # Server-side code
│ ├── reports/ # Stored HTML reports
│ ├── static/ # Static assets for web UI
│ ├── templates/ # HTML templates
│ │ ├── index.html # Homepage template
│ │ └── reports.html # Reports dashboard template
│ ├── app.py # Flask application
│ ├── db_service.py # Database operations
│ └── gemini_service.py # Gemini AI integration
│
└── README.md # This file
- Make changes to the extension files in the
extensiondirectory - Reload the extension in Chrome (
chrome://extensions/and click the refresh icon)
- Make changes to the server files in the
backenddirectory - Restart the Flask server to apply changes
POST /api/analyze: Analyze webpage content for misinformationPOST /api/reports: Save a new report to the databaseGET /api/reports: Retrieve list of all reportsGET /api/reports/{id}: Get specific report dataGET /api/reports/{id}/html: Get HTML content of a specific report
- Adrian Maier
- Dimeji Aiyesan
- Ashton Grant
- Hariz Shirazi
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by the classic tale of Pinocchio, whose nose grows when he tells lies
- Powered by Google's Gemini AI for content analysis
- Built with Flask, SQLite, Gemini, and Chrome Extension APIs