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