Skip to content

scanos-org/scanos-extension

Repository files navigation

Scanos

Browse the web with confidence and avoid malicious destinations before you click.

Scanos is a powerful browser extension that protects you from malicious websites and threats by leveraging VirusTotal's comprehensive threat detection capabilities. Scan URLs in real-time and get instant security insights before visiting potentially dangerous sites.


Features

  • Real-time URL Scanning — Scan any URL instantly using VirusTotal API
  • Threat Detection — Identify malicious websites, phishing attempts, and malware
  • Popup Interface — Clean, intuitive popup UI for quick access and settings
  • Content Overlay — Visual feedback directly on web pages
  • Caching System — Efficient caching to minimize API calls
  • API Key Management — Secure settings panel to manage your VirusTotal API key
  • Lightweight & Fast — Minimal performance impact on your browsing experience
  • TypeScript — Fully typed for reliability and maintainability

Tech Stack

  • Framework: Plasmo — Modern browser extension framework
  • UI Library: React 18
  • Styling: Tailwind CSS
  • Language: TypeScript
  • Icons: Lucide React & FontAwesome
  • API Client: Axios
  • Component Library: Radix UI

Installation

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • A VirusTotal API key (get one free at virustotal.com)

Development Setup

  1. Clone the repository

    git clone https://github.com/yourusername/scanos.git
    cd scanos
  2. Install dependencies

    npm install
  3. Start development server

    npm run dev

    This will build and watch your extension as you make changes.

  4. Load extension in Chrome

    • Open chrome://extensions/
    • Enable "Developer mode" (top-right corner)
    • Click "Load unpacked"
    • Select the build/chrome-mv3-dev directory (created by Plasmo)
  5. Add your VirusTotal API key

    • Click the Scanos extension icon
    • Go to Settings
    • Enter your VirusTotal API key
    • Save

Usage

Basic Scanning

  1. Copy a URL you want to check
  2. Click the Scanos extension icon
  3. Paste the URL in the input field
  4. Click "Scan" to check the URL
  5. View the scan results instantly

Settings

  • API Key: Add/update your VirusTotal API key
  • Additional Options: Configure extension behavior (coming soon)

Building

Development Build

npm run dev

Production Build

npm run build

Output is in build/chrome-mv3-prod/ directory

Package Extension

npm run package

Creates a distributable package file.


Project Structure

scanos/
├── src/
│   ├── background/          # Service Worker scripts
│   │   ├── handlers.ts       # Request handlers
│   │   ├── cache.ts          # Caching logic
│   │   ├── storage.ts        # Storage management
│   │   └── virustotal.ts     # VirusTotal API integration
│   ├── content/              # Content scripts
│   │   ├── scanner.ts        # URL scanning logic
│   │   ├── overlay.ts        # Page overlay system
│   │   └── targets.ts        # Target element selection
│   ├── components/           # React components
│   │   ├── popup/            # Popup pages
│   │   │   ├── Home.tsx
│   │   │   └── Settings.tsx
│   │   └── ui/               # UI components
│   ├── hooks/                # Custom React hooks
│   └── lib/
│       ├── types.ts          # TypeScript types
│       ├── constants.ts      # App constants
│       └── utils.ts          # Utility functions
├── background.ts             # Service Worker entry
├── content.ts                # Content script entry
├── popup.tsx                 # Popup entry
├── package.json
└── tsconfig.json

API Requirements

VirusTotal API

This extension uses the VirusTotal API for URL scanning. Official VirusTotal URL: https://www.virustotal.com/

Getting Started:

  1. Visit virustotal.com
  2. Create an account (free)
  3. Navigate to your profile settings
  4. Generate an API key
  5. Add it to Scanos settings

Free Plan Limits:

  • 500 requests per day
  • Rate limit: ~4 requests per minute

Security & Privacy

  • Local storage only — Your API key is stored locally in your browser
  • No tracking — We don't collect any data about your browsing
  • Open source — Transparent code for security auditing
  • Permissions explained:
    • storage — Stores your API key locally
    • clipboardRead — Reads URLs from clipboard
    • https://*/* — Scans URLs from all HTTPS sites

Troubleshooting

Extension not loading?

  • Ensure Developer mode is enabled in chrome://extensions/
  • Check the browser console for errors (F12)
  • Verify the build/chrome-mv3-dev folder exists

API errors?

  • Verify your VirusTotal API key is correct
  • Check your API rate limits and usage
  • Ensure you have internet connection

Scans not working?

  • Check if VirusTotal is accessible from your location
  • Verify API key permissions
  • Clear extension storage and try again

License

This project is licensed under the MIT License. See LICENSE file for details.


Author

G. Kishon


Contributing

Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request.


Learn More


Made with ❤️ by G. Kishon

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors