Skip to content

tungnguyensipher/AtherAgent

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

31 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AtherAgent

An AI-powered search engine with a generative UI and advanced research capabilities.

πŸ—‚οΈ Overview

πŸ›  Features

Core Features

  • 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

Chat & History

  • 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

Research & Analysis

  • 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

Search Capabilities

  • 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

AI Providers

  • OpenAI (Default)
  • Google Generative AI
  • Azure OpenAI
  • Anthropic
  • Ollama
  • Groq
  • DeepSeek
  • Fireworks
  • OpenAI Compatible

Additional Features

AtherAgent Chat

A powerful chat interface with multimodal capabilities, built with Next.js and TypeScript.

Features

  • πŸ’¬ 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

Chat Components

The chat interface is built with modular components:

Core Components

  • ChatPanel: Main chat interface with expandable input
  • FileDropzone: File upload with drag & drop support
  • ImagePreview: Media preview and management
  • SourceQuickInsert: Research source integration
  • AutoComplete: AI suggestions

Features & Capabilities

Input

  • Expandable text area with preview
  • Markdown & full-size toggles
  • IME support
  • Enter to submit, Shift+Enter for newline

Files

  • Drag & drop upload
  • Validation & progress tracking
  • Preview & removal options

Shortcuts

  • Search: ⌘/. (Mac), Ctrl + . (Win/Linux)
  • Model: ⌘/Ctrl + ↑
  • Quick Insert: @ + arrows, Enter to select, Esc to dismiss

Search Source Integration

Quick reference and URL insertion from search results with filtering, real-time updates, keyboard navigation, and metadata preservation.

File Upload

  • Images (JPEG, PNG, GIF) //TODO: Add more formats
  • Documents (PDF)
  • Size limit: //TODO
  • Drag & drop with progress tracking and previews

Research Integration //TODO

  • Source and citation management
  • Relevance scoring
  • Context preservation
  • Search integration

Accessibility //TODO

  • Keyboard navigation
  • Screen reader support
  • ARIA labels
  • Focus management

πŸ”¬ Deep Research

Comprehensive topic exploration with configurable depth levels (1-10), source tracking, relevance scoring, and progress visualization.

πŸ“Š Chart Generation

Dynamic data visualization with:

  • Multiple chart types

  • Real-time updates

  • Custom styling

  • Natural language queries

  • Data analysis integration

  • JSON/custom data input

  • Docker ready

🧱 Stack

Core Framework

AI & Search

  • OpenAI - Default AI provider (Optional: Google AI, Anthropic, Groq, Ollama, Azure OpenAI, DeepSeek, Fireworks)
  • Tavily AI - Default search provider
  • Alternative providers:
    • SearXNG - Self-hosted search
    • Exa - Neural search

Data Storage

  • Supabase - Primary database (PostgreSQL)
    • Row Level Security (RLS)
    • Real-time subscriptions
    • JSONB support
    • Complex relationships
  • Redis - Local Redis option

Database Features

  • 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

UI & Styling

  • 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

Authentication

  • NextAuth.js - Authentication for Next.js
  • Simple credential provider setup for demo:
    • Username: demo
    • Password: demo
  • Easily extensible to support:
    • OAuth providers (GitHub, Google, etc.)
    • Database integration
    • Custom authentication logic

πŸš€ Quickstart

1. Fork and Clone repo

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

2. Configure environment variables

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]

3. Run with Docker (Recommended for beginners)

This will start all required services: Next.js app, Supabase, Redis, and SearXNG.

docker compose up -d

The following services will be available:

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

4. Run locally (Alternative)

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):

#Start the App Visit http://localhost:3000 in your browser.

🌐 Deploy for Cloudflare Pages or Vercel

// TODO: Add deploy instructions

βœ… Verified models

List of models applicable to all

  • 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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 98.1%
  • JavaScript 1.7%
  • Other 0.2%