Skip to content

bniladridas/path

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

460 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python 3.8+ Rust 1.75+ License: CC BY 4.0

Discord Server

Note

Need help? Join the Discord Server and get help with setup and usage.

An AI-powered media exploration application using Flask and Google Gemini.

Why did I make this?

I wanted to create a media exploration tool that combines the power of Google's Gemini AI with an intuitive interface. Existing solutions were either too complex or lacked the features I needed.

The main goal was to provide two ways to interact with Gemini AI:

  1. A web application for browser-based exploration
  2. A CLI for terminal-based workflows

Harper brings both together in a single, easy-to-use package.

Features

  • AI-powered search using Google Gemini models
  • Image generation with Gemini 2.5 Flash Image
  • Interactive TUI for terminal-based workflows
  • Human verification flow (CAPTCHA-like)
  • OpenAI compatible API endpoints
  • Dual interfaces: Web (Flask) and CLI (Rust)

Getting Started

Prerequisites

  • Python 3.8+
  • Node.js 16+
  • npm
  • Rust 1.75+ (for CLI)

Web Application

# Clone the repository
git clone https://github.com/bniladridas/path.git
cd path

# Install dependencies
pip install -r requirements.txt
npm install

# Set up environment
cp .env.example .env
# Edit .env with your GEMINI_API_KEY

# Run the app
python run.py

Open your browser and navigate to http://localhost:8000

CLI

# Build the Rust CLI
cd rust
cargo build --release
cp target/release/harper ~/.local/bin/harper

# Set up environment
cp .env.example .env
# Edit .env with your GEMINI_API_KEY

Usage

# Web app - open http://localhost:8000

# CLI
harper tui           # Interactive TUI
harper search "query" # Command line search
harper image --prompt "a sunset" # Generate image

Demo

harper-tui.mov

TUI Controls

Key Action
Type Start searching
Enter Submit query
Esc Clear or quit

API Reference

Google Gemini

General: Overview | API Docs | Pricing

Python: PyPI | SDK Docs

JavaScript: NPM | Node

Supported Models

  • Gemini 2.5 Flash
  • Gemini 2.5 Flash Image

Tech Stack

Web Application

  • Flask 3.1.2 - Web framework
  • Google GenAI SDK - AI integration
  • Gunicorn - WSGI server
  • Playwright - E2E testing
  • Vercel - Deployment

CLI

  • Rust - Programming language
  • Crossterm - Terminal UI
  • Ratatui - TUI library
  • Reqwest - HTTP client

API Key Setup

Get your API key from Google AI Studio:

curl "https://generativelanguage.googleapis.com/v1beta/models?key=YOUR_API_KEY"

License

This work is licensed under a Creative Commons Attribution 4.0 International License.


CI/CD

CircleCI GitHub Actions Vercel

Join Us

Join Slack

Note

If the Slack invite link expires, please fork the repository and submit a PR to update the invite link. Community contributions help keep the invite link working for everyone!

Contributions are welcome! Please feel free to submit a Pull Request.

About

AI-powered media exploration via Gemini. Built with a branch-based architecture—done ☑️ Docs: https://bniladridas.github.io/path/

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors