Skip to main content

Chat with AI from your terminal!

Project description

Intelliterm

Chat with AI from your terminal!

Note
This is a side project I occasionally work on in my free time, report any bugs and/or desired features. Contributions are welcome!

Features

  • 🧠 GPT-4 — Chat with any of OpenAI's language models!
  • 👾 Code Execution — Copy and run code [^1]
  • ⚙️ Configurations — Quickly switch between models (mid-chat!) and manage multiple configurations
  • 📂 File Input — Dump files into prompts!
  • 💬 Chat Manager — Create, save [^2] and load chats!
  • ! Command Palette — Do useful things with a variety of built-in commands!
  • ✍️ Auto-completion — Auto-complete commands with tab (and navigate history with / )

Install

pip install intelliterm

How to use

Note
Make sure you've set your OPENAI_API_KEY environment variable in ~/.zshrc or ~/.bashrc:

export OPENAI_API_KEY='YOUR-API-KEY'

Basic usage:

ai

# or with a prompt
ai write a python program that prints a random chess position using emojis

Input a file:

ai -f file.py # -f or --file

# or via pipes
cat file.py | ai
git diff | ai

Note
Piping a git diff is a special case for which Intelliterm one-shot generates a commit message in conventional format, summarizing the diff (for better UX).

Options

Short Long Description
-f --file Pass a file as prompt
-m --mini
--oneshot
Complete prompt without entering the Intelliterm CLI ("one-shot" usage)
-c --copy Auto-copy entire response to clipboard
-cc --copy-code Auto-copy code block to clipboard
-h --help Show help message (this one)
-v --version Show Intelliterm version

! Command Palette

Note You must be in a chat to use Command Palette (start a chat via ai or ai <prompt>)

Intelliterm comes with a set of handy commands, triggered by entering ! followed by:

Command Aliases Command Options Command Description
General !help !h Show available commands
!quit !q
or Ctrl + c
Quit Intelliterm
!shell !os Run basic shell commands within Intelliterm
usage: !shell <command>
example: > !shell ls
Configuration !cfg !use !config !switch edit reset Manage Intelliterm configurations
!cfg — Show active config
!cfg edit — Edit configs file
!use <name> — Switch to a config (case-insensitive)
example: !use gpt4
!cfg reset — Reset configs file to defaults (GPT3 and GPT4, defaulting to GPT3)
Chat !new !n Start new chat / clear context
!file !f Input a file as prompt
usage: !file <path> <prompt>
example: > !file file.py optimize this code
!info !i Show information about current chat
!save !s Save chat (to: <DOCUMENTS_DIR>/intelliterm/chats
!load !l Load chat
Response !copy !c code Copy last response to clipboard
!copy / !c — Copy all content
!copy code / !c code — Copy code from content
Note: to auto-copy every new response:
  1. Quit Intelliterm (!quit / !q / Ctrl + c)
  2. Relaunch with:
    • ai <prompt> --copy or
    • ai <prompt> --copy code
    • Tip: -c (short alias)
!run !r Run code block in last response
Note: currently supports:
  • Python
  • JavaScript
  • TypeScript

Contributing

Pull requests, suggestions and issue reports are very welcome 👽

[^1]: Running generated code currently supported for Python, JavaScript and TypeScript code snippets. [^2]: Intelliterm uses platformdirs to determine the file paths where configurations and chats are saved to and loaded from. CONFIG_DIR and DOCUMENTS_DIR directory locations will thus vary based on your OS (Intelliterm displays them when saving/loading things).

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

intelliterm-0.5.0.tar.gz (25.3 kB view hashes)

Uploaded Source

Built Distribution

intelliterm-0.5.0-py3-none-any.whl (30.1 kB view hashes)

Uploaded Python 3

Supported by

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