Skip to main content

tAI is a tool that helps you to find the right command.

Project description

tAI (terminal-AI) 🤖

tAI is a minimal integration of AI inside CLI. No it's neither a chatting application and nor a clone of claude code or gemini cli. The goal is to have a minimal AI assistant for quick reference of terminal commands. The project was inspired from the cursor AI popup inside the terminal. I wanted to build something similar but outside of cursor where based on natural language it'll generate the command and paste it inside the terminal. No need for fancy wrap or other CLI tools. This tool will only generate command based on the natural language and paste it inside the terminal without sharing anything from the terminal.

Special Thanks

  • Textual: For the amazing TUI framework.
  • Litellm: For the amazing API wrapper for multiple LLMs.

Features

  • 🎯 Inline TUI Popup: Small popup overlay that doesn't take over the entire terminal
  • 🖥️ Fullscreen Mode: A fullscreen mode for those who want to use it in full screen
  • 🤖 Powered by 21 LLMs: Use upto 21 LLMs including gemini flash 2.5 and others
  • 🤗 Free usage: 8 free models available to test it out without giving any API keys
  • Auto-Paste: Automatically pastes generated commands to your terminal
  • 🪓 Auto-execution: Automatically execute the generated commands (use it with caution)
  • 🎨 Minimal Styling: Minimalistic design
  • ⌨️ Simple Controls: ESC to exit, Enter to generate commands
  • 🔧 Settings from TUI: A settings page to change all settings (api key, default model, etc)
  • 📝 Custom Prompt Config: Customize prompt for personal usage.
  • 🔐 Security: Do not share anything from the terminal while calling the API.

Demo

Inline Mode

Fullscreen mode

Working demo

Installation

Prerequisites

  • Python 3.12 or higher

There are multiple ways to install tAI. Choose the one that best suits your needs.

1. Using pipx (Recommended)

This method installs tAI in an isolated environment, making it available globally without interfering with other Python packages.

pipx install tai-textual

After installation, you can run the application directly:

tai

Note: If you don't have pipx installed, you can install it using your system's package manager (e.g., sudo apt install pipx on Debian/Ubuntu) or with pip:

python3 -m pip install --user pipx
python3 -m pipx ensurepath

2. Using pip in a Virtual Environment

This method is ideal for keeping dependencies for different projects separate.

  1. Create and activate a virtual environment:

    python3 -m venv venv
    source tai-venv/bin/activate
    
  2. Install the package:

    pip install tai-textual
    
  3. Run the application:

    tai
    

3. From Source

If you want to have the latest development version, you can install it directly from the source code.

  1. Clone the repository:

    git clone https://github.com/KillerShoaib/tAI.git
    cd tAI
    
  2. Create and activate a virtual environment:

    python3 -m venv venv
    source venv/bin/activate
    
  3. Install dependencies:

    pip install -r requirements.txt
    
  4. Run as a module:

    python -m tAI
    

Usage

Basic Usage

Simply run the application using this command

tai

Command Line Arguments

Argument Type Description Example Usage
--google string Set the Google Gemini API key --google YOUR_GOOGLE_API_KEY
--openai string Set the OpenAI API key --openai YOUR_OPENAI_API_KEY
--anthropic string Set the Anthropic API key --anthropic YOUR_ANTHROPIC_API_KEY
--openrouter string Set the OpenRouter API key --openrouter YOUR_OPENROUTER_API_KEY
--default-model string Set the default model for the application (must match an available model identifier) --default-model openai/gpt-4o
--models flag List all available models and their identifiers --models
--fullscreen string Set fullscreen mode (true or false) --fullscreen true or --fullscreen false

Notes:

  • You can combine arguments as needed. For example, to set an API key and the default model in one command.
  • Use tai --models to see all available model names and identifiers.

Settings from TUI

Default Model

Change the default model from the application itself.

Setup API Keys

Set the API keys for the models you want to use. Currently supports 4 provider APIs:

  • Google (Gemini)
  • OpenAI (GPT)
  • Anthropic (Claude)
  • OpenRouter (All models)

Custom Prompt

Customize the prompt for your personal usage.

Other Settings

  • Fullscreen Mode: Set the fullscreen mode from the Others section.

  • Openrouter For All models: Set the openrouter for all models. So you can pass only the openrouter API key and it'll be used for all models. But free openrouter API key then won't work (even for the free model).

Note: If Set openrouter for all models is true, then the free OpenRouter API key won't work (even for the free model).

Free OpenRouter API Key

  • Access to free models: You have access to free models from OpenRouter API via free openrouter API key which I intentionally exposed in the .env. The reason was to give you a test of the application instantly without worring about setting up the key (Don't worry, it's a free API key so I won't be getting broke).
  • Limited Usage: Since this is a free API key therefore it's usage is going to be very very limited because of the rate limits and single API key for every user (variable based on the model) and the performance is going to be very slow.

Free API Keys (alternative)

  • Google (Gemini): If you want more usage, you can get a free API key from Google AI Studio. Just copy the API key and paste it in the API Keys section.

Controls

  • Enter: Generate command from your query
  • ESC: Exit the popup or fullscreen mode
  • Ctrl+c: Exit the popup or fullscreen mode
  • Ctrl+e: Toggle between paste and execute mode.

Keybindings in terminal

If you want to replicate the similar behavior of cursor where you can press Ctrl+k to open the AI popup, you can do that by adding the following to your .bashrc file:

# === tAI Keybinding ===
ai_helper() {
    tai

    printf "\r\033[K"
}

# Bind Ctrl+K to launch the ai_helper function.
bind -x '"\C-k": ai_helper'

Add the above code to your .bashrc file and then run source ~/.bashrc to apply the changes.

Changelog

Version 1.0.1

  • Fixed: Updated the model name for devstral from openrouter/mistralai/devstral-small:free to openrouter/mistralai/devstral-small-2505:free to align with OpenRouter's changes.

Version 1.0.0

  • Initial release of tAI.

TODO List

  • Multi model support
  • Settings from TUI
  • Custom prompt configuration
  • Fullscreen mode
  • Command line arguments
  • Bash integration with keybinding
  • Free openrouter API key
  • PyPI package installatio
  • CICD pipelinen
  • Support for Windows, MacOS and other Linux distributions
  • Integration of Context (current path, previous commands, previous response)
  • Docker image (or container)

Contributing

Feel free to submit issues and enhancement requests!

License

MIT License - feel free to use and modify as needed.

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

tai_textual-1.0.1.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

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

tai_textual-1.0.1-py3-none-any.whl (21.9 kB view details)

Uploaded Python 3

File details

Details for the file tai_textual-1.0.1.tar.gz.

File metadata

  • Download URL: tai_textual-1.0.1.tar.gz
  • Upload date:
  • Size: 22.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for tai_textual-1.0.1.tar.gz
Algorithm Hash digest
SHA256 cc9797a658f0ab61ed24837388190fc7571343aff52820049248209fac46ac25
MD5 6f3a4783abac99a80d13f6b785529ad5
BLAKE2b-256 1415bc3e67ef3a5f81805b7b4c6e4e654002a4c67cf59fc8b2fb151b6d880a69

See more details on using hashes here.

File details

Details for the file tai_textual-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: tai_textual-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 21.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for tai_textual-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d5f921bc9739ab212ee6f3aeba7b91cba5b95a9e4085f20a654ecc25c698532d
MD5 4e24e27050ded9571b88c1f961d8a92a
BLAKE2b-256 9ecf9a689d2b3d1809f7b626001ac8f0a87acb742fe8c3710501fb9e51cac4a4

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