Skip to content

MLeidel/DeskChat

Repository files navigation

DeskChat

a GUI desktop AI client

Converse with cloud and local based LLMs

Openai Google anthropic Ollama Groq Deepseek
  • Temporary local Chat Mode
  • Supports a variety of OpenAI models and web-search
  • Supports web-search for some models
  • Convert responses to HTML or VOICE
  • Maintains a log of reponses
  • Simple GUI
  • Renders HTML from Markdown
  • Choose from many themes and colors
  • Pop-up Prompt Manager and Options Manager
  • RAG for .pdf .md .txt .csv .html documents

requires modules

    anthropic
    openai
    google-genai
    ollama
    Markdown
    ttkbootstrap==1.14.2
    groq

Uses Python and tkinter

python3
python3-tk
Ollama (see website to download)

aditional requirements:

    text editor (of your choice)
    
    VNC media player
    
    Internet and Internet browser (of your choice)

Tested on Windows and Linux


Instalation

Use pip or pip3 to install any missing python modules needed for API access. Consult the vendor for the correct pip... syntax.

Also you will need API keys from each vendor.
The vendors offer both free and paid tiers.
Here are the vendors, websites, and key labels to use in your environment:

Vendor Website ENVariable
OpenAI https://platform.openai.com GPTKEY
Anthropic https://claude.ai/settings CLDKEY
Google https://aistudio.google.com GGLKEY
Ollama https://ollama.com/settings OMAKEY
groq https://console.groq.com/keys GRQKEY
Deepseek https://platform.deepseek.com DSKKEY

Windows and Linux have their own ways to set these variables.

Local Models

Local models are installed using Ollama.
Visit the Ollama website for instructions on installing Ollama and downloading local models.

Ollama website


Voice

If you plan to use Voice reading of responses, you will need to install VLC media player.

Use Ctrl-Shift-S to play back the reponses.

Each play-back is saved in a separate file in the application directory.


Models File models.dat

    gemma4:e2b-local
    gemma4:e4b-local
    groq/compound
    gpt-5.4-mini
    gpt-5.4-nano
    gpt-5-mini
    gpt-5-nano
    gemini-3.1-flash-lite-preview
    gemini-2.5-flash-lite
    gemini-2.5-flash
    gemini-2.5-pro
    rag_gemini-2.5.flash-lite
    claude-haiku-4-5
    claude-sonnet-4-6
    claude-opus-4-6
    gpt-4.1-mini
    gpt-4.1-nano
    gpt-4o-mini
    gpt-5
    gpt-5.4
    qwen3-coder:480b-cloud
    qwen3.5:397b-cloud
    deepseek-chat
    deepseek-reasoner

Note:
for local models obtained from Ollama append the model name with -local
for cloud models obtained from Ollama append the model name with -cloud
the rag- prefix is used to mark the Gemini model used for RAG processing


RAG

Only Google Gemini models are supported for RAG at this time. Enter the model you want for RAG and pre-pend rag- to the model name. When the 1st prompt is submitted, file will be uploaded and then processed. When "New" is used (new conversation) the RAG files and objects are removed from the cloud. Memory for RAG is not preserved across app sessions (except in the log).


Options

The options.ini file contains all of the options settings.

There is a GUI that handles options but can use a text editor also.


DeskChat

Buttons

  • New

Begins a new conversation

To change the system instructions message for the current session,
type instruct You are a .......... assistant
into the Prompt Area first, and then click "New".

  • View

Displays the log file you named in Options.

  • Text

Opens the current response or selection in your text editor
Set up the name of your text editor in options.

  • Html

Converts the current response or selection to HTML and opens it in your default browser.

  • Options

launches the Options editing program

  • Submit Query

Submits prompt to the current AI Model

Ctrl-G and Ctrl-Enter do that too.

  • Web

Toggle the "web-search" tool

NOTE: works with most OpenAI models,
Claude Sonnet, Claude Opus, and groq/compound

  • Select temporary Model

Select from models listed in models.dat text file
Selecting a different model forces a new conversation

On startup the "default" model is always selected
The default model is set in options (options.ini)

  • Close

Exit the program. Ctrl-q exits the program without confirmation.


Context menu

Right-Click in the prompt or response area to get a bunch of useful choices.


Setting options from the app

alttext

Operation

At startup, if a previous conversation is detected the user is prompted to either continue or start a new conversation. So closing the app does not terminate a conversation. To start a new conversatioin while the app is running use the 'New' button. Multiple conversations are not preserved anywhere, but will remain in the log until it is purged.

Hot Keys

key action
Ctrl-H This HotKey help
Ctrl-Q Close Program No Prompt
Ctrl-Shift-D Delete Log File
Ctrl-Shift-S Speak the Currrent Text
Ctrl-G Submit Query (Button)
Ctrl-Enter Submit Query (Button)
Ctrl-F Find text
Ctrl-N Find next text
Ctrl-J Open Selected URL
Ctrl-R Clear Prompt Area
Alt-P Open Prompt Manager (or right-click)

The prompts directory is for storing prompt manager json files.

In addition, a Prompts Manager can create, update, delete and edit prompts. Access the viewer with Alt-P or with the Right-Click drop-down.

alttext


END

About

GUI desktop client for conversing with cloud and local LLMs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages