Skip to main content

A GTK graphical interface for chatting with large language models (LLMs)

Project description

GTK LLM Chat

A GTK graphical interface for chatting with Large Language Models (LLMs).

screenshot

Key Features

  • Simple and easy-to-use graphical interface built with GTK
  • Support for multiple conversations in independent windows
  • Integration with python-llm for chatting with various LLM models
  • Modern interface using libadwaita
  • Support for real-time streaming responses
  • Message history with automatic scrolling
  • Markdown rendering of the responses
  • Keyboard shortcuts (Enter to send, Shift+Enter for new line)
  • Support for fragments: Include external content (files, URLs, or text snippets) in your prompts.
  • Conversation Management: Rename and delete conversations.
  • Applet Mode: Run a system tray applet for quick access to recent conversations.
  • Model Selection: Choose from different LLM models.
  • System Prompt: Set a custom system prompt for each conversation.
  • Error Handling: Clear error messages displayed in the chat.
  • Dynamic Input: The input area dynamically adjusts its height.
  • Keyboard Shortcuts:
    • Enter: Send message.
    • Shift+Enter: New line in the input.
    • Ctrl+W: Delete the current conversation.

Installation

pipx install llm               # required by gtk-llm-chat
llm install gtk-chat

System Requirements

  • llm
  • Python 3.8 or higher
  • GTK 4.0
  • libadwaita
  • libayatana-appindicator

Usage

Run the application:

llm gtk-applet

or for an individual chat:

llm gtk-chat

With optional arguments:

llm gtk-chat --cid CONVERSATION_ID  # Continue a specific conversation
llm gtk-chat -s "System prompt"  # Set system prompt
llm gtk-chat -m model_name  # Select specific model
llm gtk-chat -c  # Continue last conversation

Development

To set up the development environment:

git clone https://github.com/icarito/gtk-llm-chat.git
cd gtk-llm-chat
python -m venv venv
source venv/bin/activate
pip install -e ".[dev]"

License

GPLv3 License - See LICENSE file for more details.

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

gtk_llm_chat-2.1.0.tar.gz (325.3 kB view details)

Uploaded Source

Built Distribution

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

gtk_llm_chat-2.1.0-py3-none-any.whl (45.1 kB view details)

Uploaded Python 3

File details

Details for the file gtk_llm_chat-2.1.0.tar.gz.

File metadata

  • Download URL: gtk_llm_chat-2.1.0.tar.gz
  • Upload date:
  • Size: 325.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.2

File hashes

Hashes for gtk_llm_chat-2.1.0.tar.gz
Algorithm Hash digest
SHA256 e0a7b5ed480f9b8358d13ca80d65f5523fc062b698e69221e71bea04df700086
MD5 dfe35df38197ecc8978d87cdc6b8f191
BLAKE2b-256 653f977e6cc991b852a0cdabdcdafb1eadc3946cb64bdde3aa4d897d104fbb62

See more details on using hashes here.

File details

Details for the file gtk_llm_chat-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: gtk_llm_chat-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 45.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.2

File hashes

Hashes for gtk_llm_chat-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 19b07b43b07c8a1f12693cda3b678dd534a4f247d5cb50b27681a1a701af98e0
MD5 3524a8dd51e921830978d3be1b290c02
BLAKE2b-256 eab707b86a5dc04124b45adc61995f3ae8395c5b5cc74ba826cf8094e105027f

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