Skip to main content

An interactive terminal tool using GPT, with web search capabilities.

Project description

tux-gpt

tux-gpt is an interactive command-line tool that leverages GPT-based language models to provide intelligent, conversational assistance directly within your terminal. It enables on-the-fly code generation, debugging help, technical explanations, and more—all without leaving the command-line environment.

Designed for developers and tech enthusiasts, tux-gpt streamlines workflows by integrating AI assistance seamlessly into terminal sessions, making complex tasks easier and faster to accomplish via intuitive, context-aware command-line interactions.


Prerequisites

  • Python 3.7+
  • Pip (Python package manager)
  • An OpenAI API key (see next section)

Setup and Configuration

  1. Install: From PyPI:

    pip install tux-gpt
    

    From source:

    git clone https://github.com/fberbert/tux-gpt.git
    cd tux-gpt
    pip install -r requirements.txt
    pip install .
    
  2. Get your OpenAI API key:

  3. Configure your environment variable:

    • Linux/macOS (bash/zsh):
      echo 'export OPENAI_API_KEY="<your_api_key>"' >> ~/.bashrc
      source ~/.bashrc
      
    • Windows (PowerShell):
      [Environment]::SetEnvironmentVariable('OPENAI_API_KEY', '<your_api_key>', 'User')
      

Note: On first run, tux-gpt will create the directory ~/.config/tux-gpt/ (or %APPDATA%\tux-gpt\ on Windows) containing:

  • config.json: CLI configuration (e.g., default model);
  • history.json: persistence of the last 20 messages (user + assistant);
  • input_history: command history for navigation with ↑/↓ arrow keys.

Usage

Start the interactive session:

tux-gpt

Press Ctrl+J to send your message (Enter only inserts a new line).

Demonstração de uso

Example commands

  • Search the web for current news:

    > Find the latest headlines about OpenAI
    
  • Look up technical documentation:

    > What is the syntax for Python's list comprehensions?
    
  • Fetch real-time data (e.g., stock price):

    > What's the current stock price of AAPL?
    
  • Summarize a web article:

    > Summarize the top result for "machine learning trends 2025"
    
  • Run a single prompt from the shell:

    tux-gpt -q "What's the weather forecast for Rio das Ostras today?"
    
  • Request JSON output for scripting:

    tux-gpt --json -q "Summarize the latest news about OpenAI"
    

    The response is a JSON object in the form:

    {
      "answer": "Short summary text...",
      "sources": ["https://example.com/article", "..."]
    }
    

Memory & Command History

tux-gpt now persists your conversation and command history locally in the ~/.config/tux-gpt/ directory (or %APPDATA%\tux-gpt\ on Windows). The files created are:

  • config.json: CLI configuration, such as the default model.
  • history.json: stores the last 20 messages (user + assistant) to maintain context between sessions and limit token usage.
  • input_history: command history used by readline for navigation with ↑/↓ arrow keys.

Features:

  • On startup, the conversation history is automatically reloaded from history.json, limited to the last 20 messages to prevent token overload.
  • You can navigate previous commands using the ↑ and ↓ arrow keys at the prompt.
  • To reset the conversation or command history, simply remove the corresponding files in that directory (~/.config/tux-gpt/ or %APPDATA%\tux-gpt\).

Customization

You can configure the default model or terminal spinner settings by editing the configuration file at ~/.tux-gpt/config.json. Example:

{
  "model": "gpt-4o-mini"
}

Troubleshooting

  • "OPENAI_API_KEY not set": Ensure you exported the variable correctly and restarted your shell.
  • Slow responses: Check your internet connection or change to a faster model in the config.

License

MIT © 2025 tux-gpt contributors


Configuration File (~/.tux-gpt/config.json)

In the first run, tux-gpt will create a configuration file at ~/.tux-gpt/config.json. This file contains settings for the default model. You can customize the behavior of tux-gpt by editing the configuration file located at ~/.tux-gpt/config.json. This file allows you to set the default model and other preferences.

Example config file to set the model:

{
  "model": "gpt-5-mini"
}

The default model is gpt-5-mini.

Model Compatibility

Important: The model you choose must support web search capability. Currently, only the following models support the web search tool:

  • gpt-5-mini
  • gpt-4.1
  • gpt-4.1-mini

For more details, see the official OpenAI documentation on web search tools and limitations:

https://platform.openai.com/docs/guides/tools-web-search?api-mode=responses#limitations


Author

Fábio Berbert de Paula

Official Repository

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tux_gpt-0.2.2.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tux_gpt-0.2.2-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file tux_gpt-0.2.2.tar.gz.

File metadata

  • Download URL: tux_gpt-0.2.2.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for tux_gpt-0.2.2.tar.gz
Algorithm Hash digest
SHA256 a84925bd47bcc0d69426523d5e71078ab31b2663a350b82756c7047ffc401a35
MD5 d4e918a86b4d99ab2bbe4157ca23cd16
BLAKE2b-256 c3d542c4ab13eb48e296cefe33c46072cc948957ca70c9957e9585b02d78e6b2

See more details on using hashes here.

File details

Details for the file tux_gpt-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: tux_gpt-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for tux_gpt-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4315305a5b31c4b111db24da9bd9cac12aaf70f08a9648b622b1ba06534b56cf
MD5 5498cdac0ab1ee4d68db861b6218e486
BLAKE2b-256 eb5912984a3c0d5159a5f432e4e551ffe59e037af91a349246b13664de7647d4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page