An AI-powered search engine with a generative UI and advanced research capabilities.
- π Features
- 𧱠Stack
- π Quickstart
- π Search Engine
- β Verified models
- AI-powered search with GenerativeUI
- Multiple search providers (Tavily, SearXNG, Exa)
- Model selection with visible reasoning
- Demo authentication (username: demo, password: demo)
- Deep research with configurable depth
- Dynamic charts and visualizations
- Source tracking and scoring
- Multimodal chat interface
- File attachments with previews
- Markdown and full-size toggles
- Redis-based chat history
- Share and delete chat functionality
- Source quick insert
- IME support
- Configurable research depth (1-10)
- Activity tracking and visualization
- Source quality assessment
- Time and authority tracking
- Real-time data visualization
- Multiple chart types
- Responsive layouts
- URL and video search
- Multi-level exploration
- Context preservation
- SearXNG integration
- Customizable depth and engines
- Results filtering
- Safe search
- Content crawling
- Domain filtering
- Redis caching
- OpenAI (Default)
- Google Generative AI
- Azure OpenAI
- Anthropic
- Ollama
- Groq
- DeepSeek
- Fireworks
- OpenAI Compatible
A powerful chat interface with multimodal capabilities, built with Next.js and TypeScript.
- π¬ Text-based chat with AI models
- π File attachments and image uploads
- π Research mode with source integration
- π‘ AI-powered text suggestions
- π― Context-aware responses
- πΌοΈ Image and document previews
- π± Responsive design
- βΏ Accessibility support
The chat interface is built with modular components:
ChatPanel
: Main chat interface with expandable inputFileDropzone
: File upload with drag & drop supportImagePreview
: Media preview and managementSourceQuickInsert
: Research source integrationAutoComplete
: AI suggestions
- Expandable text area with preview
- Markdown & full-size toggles
- IME support
- Enter to submit, Shift+Enter for newline
- Drag & drop upload
- Validation & progress tracking
- Preview & removal options
- Search:
β/.
(Mac),Ctrl + .
(Win/Linux) - Model:
β/Ctrl + β
- Quick Insert:
@
+ arrows, Enter to select, Esc to dismiss
Quick reference and URL insertion from search results with filtering, real-time updates, keyboard navigation, and metadata preservation.
- Images (JPEG, PNG, GIF) //TODO: Add more formats
- Documents (PDF)
- Size limit: //TODO
- Drag & drop with progress tracking and previews
- Source and citation management
- Relevance scoring
- Context preservation
- Search integration
- Keyboard navigation
- Screen reader support
- ARIA labels
- Focus management
Comprehensive topic exploration with configurable depth levels (1-10), source tracking, relevance scoring, and progress visualization.
Dynamic data visualization with:
-
Multiple chart types
-
Real-time updates
-
Custom styling
-
Natural language queries
-
Data analysis integration
-
JSON/custom data input
-
Docker ready
- Next.js - App Router, React Server Components
- TypeScript - Type safety
- Vercel AI SDK - Text streaming / Generative UI
- OpenAI - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)
- Tavily AI - Default search provider
- Alternative providers:
- Supabase - Primary database (PostgreSQL)
- Row Level Security (RLS)
- Real-time subscriptions
- JSONB support
- Complex relationships
- Redis - Local Redis option
- Comprehensive data model with:
- User profiles and preferences
- Project organization
- Research session tracking
- Chat message history
- Source management
- Research state tracking
- Real-time updates via Supabase
- Row Level Security for data protection
- Complex relationships and constraints
- Performance-optimized indexes
- JSONB for flexible metadata
- Automated timestamps and sequences
- Team collaboration support
- Activity tracking and metrics
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - Re-usable components
- Radix UI - Unstyled, accessible components
- Lucide Icons - Beautiful & consistent icons
- Chart.js - Dynamic chart generation
- Custom chart styling and theming support
- Responsive design with mobile optimization
- Accessibility-first components
- NextAuth.js - Authentication for Next.js
- Simple credential provider setup for demo:
- Username:
demo
- Password:
demo
- Username:
- Easily extensible to support:
- OAuth providers (GitHub, Google, etc.)
- Database integration
- Custom authentication logic
Fork the repo to your Github account, then run the following command to clone the repo:
git clone [email protected]:[YOUR_GITHUB_ACCOUNT]/atheragent.git
cp .env.local.example .env.local
Fill in the required environment variables in .env.local
:
# Required
OPENAI_API_KEY= # Get from https://platform.openai.com/api-keys
TAVILY_API_KEY= # Get from https://app.tavily.com/home
# Authentication (Required for demo login)
NEXTAUTH_URL=http://localhost:3000 # Your app URL
NEXTAUTH_SECRET= # Generate with: openssl rand -base64 32
# Supabase Configuration (for local development)
NEXT_PUBLIC_SUPABASE_URL=http://localhost:54321
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24iLCJleHAiOjE5ODM4MTI5OTZ9.CRXP1A7WOeoJeXxjNni43kdQwgnWNReilDMblYTn_I0
# Optional: Redis Configuration (if not using Docker)
REDIS_URL=redis://localhost:6379
# Optional: SearXNG Configuration (if not using Docker)
SEARXNG_URL=[Get SearXNG URL from Site]
This will start all required services: Next.js app, Supabase, Redis, and SearXNG.
docker compose up -d
The following services will be available:
- Web App: http://localhost:3000
- Supabase Studio: http://localhost:54323
- Email: [email protected]
- Password: demo123
- Supabase API: http://localhost:54321
- Redis: localhost:6379
- SearXNG: http://localhost:8080
To view logs:
docker compose logs -f app # For Next.js app logs
docker compose logs -f # For all services
To stop all services:
docker compose down
To reset all data (including database):
docker compose down -v
docker compose up -d
If you prefer to run services individually:
# Install dependencies
npm install --legacy-peer-deps
# --legacy-peer-deps is required for Next.js 15.0.3 which is too modern for others
# Start the development server
npm run dev
You'll also need to run these services separately (if you're not using Docker):
- Supabase: Follow Supabase CLI setup
- Redis: Install and run locally
- SearXNG: Follow SearXNG setup
#Start the App Visit http://localhost:3000 in your browser.
// TODO: Add deploy instructions
- OpenAI
- o3-mini
- gpt-4o
- gpt-4o-mini
- gpt-4-turbo
- gpt-3.5-turbo
- Google
- Gemini 2.0 Pro (Experimental)
- Gemini 2.0 Flash Thinking (Experimental)
- Gemini 2.0 Flash
- Anthropic
- Claude 3.5 Sonnet
- Claude 3.5 Hike
- DeepSeek
- DeepSeek V3
- DeepSeek R1