Skip to main content

PyPI version Python version License

Geegle

Geegle is a CLI chat app that combines web search, academic research, and session management using SQLite for local data storage. It uses APIs from OpenAI, Tavily, and Exa to provide answers with web sources, for users seeking information directly from their terminal.

Features

  • Real-Time Web Search: Integrates Tavily for up-to-date web information
  • Academic Research: Uses Exa to fetch research papers and scholarly content
  • Session Management: Store and switch between multiple conversation sessions using SQLite
  • Model Selection: Choose between different AI models (GPT-3.5, GPT-4, Claude, etc.)
  • Prompt Customization: Create and manage custom system prompts to tailor responses
  • Command Autocomplete: Tab completion for commands and arguments
  • Interactive Menus: User-friendly navigation for all features
  • Data Export: Export session data to JSON files for backup or sharing

Installation

Follow these steps to set up Geegle on your system.

Prerequisites

Python: Version 3.7 or higher pip: Latest version recommended

Install the package

pip install geegle

Configuration

Geegle requires API keys for OpenAI, Tavily, and Exa. You can configure them in three ways:

  1. First-Time Setup Wizard

When you first run Geegle, it will prompt you to enter your API keys if they aren't found:

geegle

You'll be prompted to enter your API keys, which will be saved in ~/.geegle/config.json

  1. Environment Variables You can set the following environment variables:
export OPENAI_API_KEY=your_openai_api_key
export TAVILY_API_KEY=your_tavily_api_key
export EXA_API_KEY=your_exa_api_key

You can get these API keys from:

https://platform.openai.com/docs/overview https://tavily.com/ https://exa.ai/

Usage

Start the application:

geegle

Quick Start:

  1. Type a question (e.g., "What's the capital of France?") and press Enter.
  2. Use commands (starting with /) to manage sessions or data.
  3. Press Tab to autocomplete commands and arguments.
  4. Type exit to quit.

Commands

Basic Commands

/clear: Clears the current session's conversation history.
/clear all: Deletes all session data (requires confirmation).
/export [filename]: Exports all sessions to a JSON file (default: sessions_export.json).
/help: Shows a list of commands and usage instructions.

Session Management

/session: Opens the session management menu.
/session [name]: Switches directly to the specified session.

Model Selection

/model: Opens the model selection menu.
/model [name]: Switches directly to the specified model.

Available models:

  • gpt-3.5-turbo
  • gpt-4-turbo-preview
  • gpt-4o
  • claude-3-opus-20240229
  • claude-3-sonnet-20240229
  • claude-3-haiku-20240307

Prompt Customization

/prompt: Opens the prompt customization menu.
/prompt [template_name]: Uses the specified prompt template.
/prompt [text]: Sets a custom system prompt.

Default templates:

  • default: General assistant
  • concise: Brief, factual responses
  • detailed: In-depth analysis
  • coding: Code-focused assistance

Keyboard Shortcuts

Tab: Autocomplete commands and arguments ↑/↓: Navigate command history exit: Exits the application

Examples

Creating a new session

/session
# Select "n" to create a new session
# Enter "product-research"
# Now you're in a new conversation session

Switching models

/model
# View available models and select one
# Or use direct command: /model gpt-4o

Customizing prompts

/prompt
# Create a custom prompt or use a template
# Or use direct command: /prompt coding

Advanced Usage

Autocomplete

Press Tab to complete commands and arguments:

/m[Tab]       # Completes to "/model"
/model g[Tab]  # Shows available models starting with "g"
/session p[Tab] # Completes to existing sessions starting with "p"

Multi-line Prompts

When creating custom prompts, you can enter multiple lines:

/prompt
# Select "c" to create custom prompt
# Enter your prompt, press Enter twice when done

Adding Custom Models

You can add custom models through the model menu:

/model
# Select "a" to add a custom model
# Enter the model identifier

Contributing

See CONTRIBUTING.md for details on how to contribute to this project.

License

This project is licensed under the Apache License 2.0 - see the License file for details.

Metadata

Release files for geegle 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for geegle 0.0.3
File Size Uploaded Provenance
geegle-0.0.3.tar.gz 19.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for geegle 0.0.3
File Interpreter ABI Platform
geegle-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 40.2 kB

Release files / geegle-0.0.3.tar.gz

Download URL geegle-0.0.3.tar.gz
Size 19.9 kB
Tags Source
SHA-256 checksum
How to use checksums
3d4386a1fa620b4bc2ed61df6a8d174ebc53742ebbb32d6208c2f7c7f6b54615
BLAKE2b-256 checksum
How to use checksums
f95363181c4a831d16983aed5cdbcec0e1098353cd9169b5ff005d1254f92d17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release files / geegle-0.0.3-py3-none-any.whl

Download URL geegle-0.0.3-py3-none-any.whl
Size 20.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f14e34c4a77d246e2c569eec97d4c94a12ef2de53c30dbc5df2f363634894c09
BLAKE2b-256 checksum
How to use checksums
9d943c5f0cb598b48db2f24ffd306e1e1298223c75c7b2b974a7068ddb4d8d8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Security for geegle 0.0.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page