Skip to main content
Get your own AI-powered search engine running in less than 5 minutes. This guide will have you performing intelligent searches with Google Gemini 2.0 Flash and Deepseek reasoning.

Prerequisites

Before you begin, ensure you have:
  • Node.js v18 or higher installed (download here)
  • npm package manager (comes with Node.js)
  • Google API Key with Gemini API access (get one free)
  • OpenRouter API Key for Deepseek (get one free)
Both API keys are completely free to obtain. Google provides generous free tier access to Gemini 2.0 Flash, and OpenRouter offers free access to Deepseek R1 Distill Llama 70B.

Quick Setup

1

Clone the repository

Clone OmniSearches to your local machine:
git clone https://github.com/kiwigaze/OmniSearches.git
cd OmniSearches
2

Install dependencies

Install all required packages using npm:
npm install
This will install all frontend and backend dependencies including React, Vite, Express, and the Google Generative AI SDK.
3

Configure environment variables

Create a .env file in the root directory with your API keys:
GOOGLE_API_KEY=your_google_api_key_here
REASON_MODEL_API_KEY=your_openrouter_api_key_here
REASON_MODEL_API_URL=https://openrouter.ai/api/v1
REASON_MODEL=deepseek/deepseek-r1-distill-llama-70b:free
Never commit your .env file to version control. The .gitignore is already configured to exclude it.
Replace the placeholder values:
  • your_google_api_key_here - Your Google AI Studio API key
  • your_openrouter_api_key_here - Your OpenRouter API key
4

Start the development server

Launch the application in development mode:
npm run dev
The server will start on port 3000. You’ll see output indicating the server is running.
5

Open in your browser

Navigate to the application:
http://localhost:3000
You should see the OmniSearches homepage with a search interface.
6

Perform your first search

Try these example searches to explore different modes:
  • Default mode: “What are the latest developments in quantum computing?”
  • Reasoning mode: “Explain why the sky appears blue”
  • Image search: “Mount Everest” (check the images tab)
  • Concise mode: “Population of Tokyo”

What You Get

Once running, OmniSearches provides:
  • Real-time web search powered by Google Search integration
  • AI-generated answers with source citations and references
  • 4 search modes: Concise, Default, Exhaustive, and Reasoning
  • Image search from Wikimedia Commons
  • Related questions to expand your research
  • Follow-up questions that maintain conversation context

Search Modes Explained

Concise

Quick, brief answers (max 150 tokens). Perfect for facts and simple queries.

Default

Balanced responses with comprehensive coverage. Best for most searches.

Exhaustive

Detailed, in-depth analysis (up to 65K tokens). Use for research topics.

Reasoning

Deep reasoning powered by Deepseek. Explains the “why” behind answers.

Verify Installation

To confirm everything is working correctly:
  1. Check the console - You should see “serving on port 3000” without errors
  2. Perform a search - Try “test query” and verify you get results with sources
  3. Check reasoning mode - Enable reasoning mode and verify streaming responses appear
  4. View sources - Expand the sources section to see web citations

Common Issues

If port 3000 is occupied, you can change it by setting the PORT environment variable:
PORT=3001 npm run dev
If you see authentication errors:
  • Verify your .env file is in the root directory
  • Ensure no extra spaces in API keys
  • Check that your Google API key has Gemini API enabled
  • Confirm your OpenRouter key is valid
If you encounter import errors:
rm -rf node_modules package-lock.json
npm install

Next Steps

Installation Guide

Detailed installation and configuration options

Architecture

Learn how OmniSearches works under the hood

API Reference

Explore the REST API endpoints

Deployment

Deploy to Railway, Vercel, or your own server

Need Help?

If you encounter issues:

Build docs developers (and LLMs) love