{"id":27443018,"url":"https://github.com/duriantaco/geegle-py","last_synced_at":"2025-04-15T01:18:24.519Z","repository":{"id":287848372,"uuid":"964317439","full_name":"duriantaco/geegle-py","owner":"duriantaco","description":"Access web search engine via a CLI using wrappers ","archived":false,"fork":false,"pushed_at":"2025-04-14T09:14:20.000Z","size":357,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-15T01:18:10.316Z","etag":null,"topics":["cli","llm","python","python3"],"latest_commit_sha":null,"homepage":"https://geegle-py.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/duriantaco.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"License","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-11T02:58:22.000Z","updated_at":"2025-04-14T17:30:29.000Z","dependencies_parsed_at":"2025-04-14T09:40:37.475Z","dependency_job_id":"cda58331-cb8a-40f0-92c8-9c7bfc36d471","html_url":"https://github.com/duriantaco/geegle-py","commit_stats":null,"previous_names":["duriantaco/geegle-py"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duriantaco%2Fgeegle-py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duriantaco%2Fgeegle-py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duriantaco%2Fgeegle-py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duriantaco%2Fgeegle-py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/duriantaco","download_url":"https://codeload.github.com/duriantaco/geegle-py/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248986313,"owners_count":21194025,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","llm","python","python3"],"created_at":"2025-04-15T01:18:23.896Z","updated_at":"2025-04-15T01:18:24.513Z","avatar_url":"https://github.com/duriantaco.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![PyPI version](https://badge.fury.io/py/geegle.svg)](https://badge.fury.io/py/geegle)\n[![Python version](https://img.shields.io/badge/python-3.7%20|%203.8%20|%203.9%20|%203.10-blue)](https://www.python.org/downloads/)\n[![License](https://img.shields.io/badge/license-Apache%202.0-green)](https://www.apache.org/licenses/LICENSE-2.0)\n\n# Geegle\nGeegle 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.\n\n# Features\n\n* Real-Time Web Search: Integrates Tavily for up-to-date web information\n* Academic Research: Uses Exa to fetch research papers and scholarly content\n* Session Management: Store and switch between multiple conversation sessions using SQLite\n* Model Selection: Choose between different AI models (GPT-3.5, GPT-4, Claude, etc.)\n* Prompt Customization: Create and manage custom system prompts to tailor responses\n* Command Autocomplete: Tab completion for commands and arguments\n* Interactive Menus: User-friendly navigation for all features\n* Data Export: Export session data to JSON files for backup or sharing\n\n# Installation\nFollow these steps to set up Geegle on your system.\n\n## Prerequisites\n\nPython: Version 3.7 or higher\npip: Latest version recommended\n\n# Install the package\n\n```bash \npip install geegle\n```\n\n# Configuration\n\nGeegle requires API keys for OpenAI, Tavily, and Exa. \n\nYou can get these API keys from:\n\nhttps://platform.openai.com/docs/overview\nhttps://tavily.com/\nhttps://exa.ai/\n\n* API keys are stored securely in your system's keychain using the `keyring` library\n* You can update your API keys anytime using the `/model` command and selecting the key management option\n* For security reasons, API keys are not included in exported session data\n\n# Usage\n\nStart the application:\n\n```bash\ngeegle\n```\n\n# Quick Start:\n\n1. Type a question (e.g., \"What's the capital of France?\") and press `Enter`.\n2. Use commands (starting with /) to manage sessions or data.\n3. Press `Tab` to autocomplete commands and arguments.\n4. Type `exit` to quit.\n\n# Commands\n## Basic Commands\n\n```bash\n/clear: Clears the current session's conversation history.\n/clear all: Deletes all session data (requires confirmation).\n/export [filename]: Exports all sessions to a JSON file (default: sessions_export.json).\n/help: Shows a list of commands and usage instructions.\n/rerank\n```\n\n## Session Management\n\n```bash\n/session: Opens the session management menu.\n/session [name]: Switches directly to the specified session.\n```\n\n## Model Selection\n\n```bash\n/model: Opens the model selection menu.\n/model [name]: Switches directly to the specified model.\n```\n\nAvailable models:\n\n* gpt-3.5-turbo\n* gpt-4-turbo-preview\n* gpt-4o\n* claude-3-opus-20240229\n* claude-3-sonnet-20240229\n* claude-3-haiku-20240307\n\n## Prompt Customization\n\n```bash\n/prompt: Opens the prompt customization menu.\n/prompt [template_name]: Uses the specified prompt template.\n/prompt [text]: Sets a custom system prompt.\n```\n\nDefault templates:\n\n* default: General assistant\n* concise: Brief, factual responses\n* detailed: In-depth analysis\n* coding: Code-focused assistance\n\n## Keyboard Shortcuts\n\nTab: Autocomplete commands and arguments\n↑/↓: Navigate command history\nexit: Exits the application\n\n# Examples\n\n## Creating a new session\n\n```bash\n/session\n# Select \"n\" to create a new session\n# Enter \"product-research\"\n# Now you're in a new conversation session\n```\n\n## Switching models\n```bash\n/model\n# View available models and select one\n# Or use direct command: /model gpt-4o\n```\n\n## Customizing prompts\n```bash\n/prompt\n# Create a custom prompt or use a template\n# Or use direct command: /prompt coding\n```\n\n# Advanced Usage\n\n## Autocomplete\nPress Tab to complete commands and arguments:\n\n```bash\n/m[Tab]       # Completes to \"/model\"\n/model g[Tab]  # Shows available models starting with \"g\"\n/session p[Tab] # Completes to existing sessions starting with \"p\"\n```\n\n## Multi-line Prompts\nWhen creating custom prompts, you can enter multiple lines:\n\n```bash\n/prompt\n# Select \"c\" to create custom prompt\n# Enter your prompt, press Enter twice when done\n```\n\n## Adding Custom Models\n\nYou can add custom models through the model menu:\n```bash\n/model\n# Select \"a\" to add a custom model\n# Enter the model identifier\n```\n\n## Geegle vs Perplexity?\n\nGeegle offers several advantages over web-based search tools like Perplexity:\n\n* **Command-Line Efficiency**: Works directly in your terminal without having to switch to a browser\n* **Local-First Architecture**: Stores all conversation data in a local SQLite database, giving you complete data ownership\n* **Comprehensive Session Management**: Create, switch between, and manage multiple conversation sessions seamlessly\n* **Academic Research Integration**: Connects with Exa API specifically for academic research papers and scholarly content\n* **Model Flexibility**: Supports multiple AI models from both OpenAI and Anthropic, giving you freedom of choice\n* **Privacy-Focused Design**: Uses secure system keychain storage for API keys rather than plain text configuration\n* **Open-Source Flexibility**: Apache 2.0 licensed, allowing modification and customization to meet specific requirements\n* **Advanced Caching**: Intelligently caches previous search results and web content for reduced API usage and offline access\n* **Customizable Prompts**: Create and manage custom system prompts with different templates for various use cases\n* **Seamless Web Content Analysis**: Can scrape and analyze specific URLs for deeper insights beyond search snippets\n* **Command Autocompletion**: Tab completion for commands and arguments makes the tool efficient and intuitive\n\n# Contributing\nSee CONTRIBUTING.md for details on how to contribute to this project.\n\n# License\nThis project is licensed under the Apache License 2.0 - see the License file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduriantaco%2Fgeegle-py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fduriantaco%2Fgeegle-py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduriantaco%2Fgeegle-py/lists"}