Skip to content

ykrx/Intelliterm

Repository files navigation

Intelliterm

Chat with LLMs from your terminal!

Note

This is a side project I built mostly for my own productivity, but no longer maintain.

Contributions are welcome!

Features

  • 🧠 Anthropic + OpenAI Models — Chat with Opus, GPT4 and any every other Anthropic or OpenAI 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

Tip

Make sure you've set your ANTHROPIC_API_KEY and OPENAI_API_KEY environment variables in ~/.zshrc or ~/.bashrc:

export ANTHROPIC_API_KEY='YOUR-ANTHROPIC-KEY'
export OPENAI_API_KEY='YOUR-OPENAI-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

Important

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 👽

Footnotes

  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).