Name | parllama JSON |
Version |
0.4.0
JSON |
| download |
home_page | None |
Summary | Terminal UI for Ollama and other LLM providers |
upload_time | 2025-09-03 01:33:37 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.11 |
license | MIT License
Copyright (c) 2025 Paul Robello
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. |
keywords |
ai
anthropic
groq
llamacpp
llm
ollama
openai
openrouter
terminal
tui
vision
xai
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# PAR LLAMA
## Table of Contents
* [About](#about)
* [Features](#features)
* [Core Capabilities](#core-capabilities)
* [Advanced Features](#advanced-features)
* [Technical Excellence](#technical-excellence)
* [Screenshots](#screenshots)
* [Prerequisites for running](#prerequisites-for-running)
* [Prerequisites for dev](#prerequisites-for-dev)
* [Prerequisites for huggingface model quantization](#prerequisites-for-huggingface-model-quantization)
* [Installing using pipx](#pipx)
* [Installing using uv](#using-uv)
* [Installing for dev mode](#installing-for-dev-mode)
* [Command line arguments](#command-line-arguments)
* [Environment Variables](#environment-variables)
* [Running PAR_LLAMA](#running-par_llama)
* [with pipx installation](#with-pipx-installation)
* [with pip installation](#with-pip-installation)
* [Running against a remote instance](#running-against-a-remote-instance)
* [Running under Windows WSL](#running-under-windows-wsl)
* [Dev mode](#dev-mode)
* [Quick start Ollama chat workflow](#Quick-start-Ollama-chat-workflow)
* [Quick start image chat workflow](#Quick-start-image-chat-workflow)
* [Quick start OpenAI provider chat workflow](#Quick-start-OpenAI-provider-chat-workflow)
* [Custom Prompts](#Custom-Prompts)
* [Themes](#themes)
* [Screen Help](https://github.com/paulrobello/parllama/blob/main/src/parllama/help.md)
* [Contributing](#contributing)
* [FAQ](#faq)
* [Roadmap](#roadmap)
* [Where we are](#where-we-are)Ï
* [Where we're going](#where-were-going)
* [What's new](#whats-new)
* [v0.4.0](#v040)
* [v0.3.28](#v0328)
* [v0.3.27](#v0327)
* [v0.3.26](#v0326)
* [v0.3.25](#v0325)
* [older...](#v0324)
[](https://pypi.org/project/parllama/)
[](https://pypi.org/project/parllama/)




## About
PAR LLAMA is a TUI (Text UI) application designed for easy management and use of Ollama based LLMs. (It also works with most major cloud provided LLMs)
The application was built with [Textual](https://textual.textualize.io/) and [Rich](https://github.com/Textualize/rich?tab=readme-ov-file) and my [PAR AI Core](https://github.com/paulrobello/par_ai_core).
It runs on all major OS's including but not limited to Windows, Windows WSL, Mac, and Linux.
[](https://buymeacoffee.com/probello3)
## Features
### Core Capabilities
- **Multi-Provider Support**: Seamlessly work with Ollama, OpenAI, Anthropic, Groq, XAI, OpenRouter, Deepseek, and LiteLLM
- **Vision Model Support**: Chat with images using vision-capable models like LLaVA and GPT-4 Vision
- **Session Management**: Save, load, organize, and export chat sessions with full conversation history
- **Custom Prompts**: Create, import, and manage a library of custom system prompts and templates
- **Fabric Integration**: Import and use Fabric patterns as reusable prompts
- **Model Management**: Pull, delete, copy, create, and quantize models with native Ollama support
### Advanced Features
- **Smart Model Caching**: Intelligent per-provider model caching with configurable durations
- **Provider Management**: Enable/disable providers, manage API keys, and configure endpoints
- **Theme System**: Dark/light modes with custom theme support via JSON configuration
- **Auto-naming**: Automatically name chat sessions using LLM-generated titles
- **Slash Commands**: Extensive command system for quick actions and navigation
- **Export Options**: Export conversations as Markdown files for documentation
- **Security**: Comprehensive file validation and secure operations for all data handling
### Technical Excellence
- **Async Architecture**: Non-blocking operations for smooth, responsive UI performance
- **Type Safety**: Fully typed Python codebase with comprehensive type checking
- **Extensible Design**: Easy to add new providers, features, and customizations
- **Cross-Platform**: Native support for Windows, macOS, Linux, and WSL
- **Hot Reload**: Development mode with automatic UI updates on code changes
## Screenshots
Supports Dark and Light mode as well as custom themes.









## Videos
[V0.3.5 demo](https://www.youtube.com/watch?v=Genv46SKA5o)
## Prerequisites for running
* Install and run [Ollama](https://ollama.com/download)
* Install Python 3.11 or newer
* [https://www.python.org/downloads/](https://www.python.org/downloads/) has installers for all versions of Python for all os's
* On Windows the [Scoop](https://scoop.sh/) tool makes it easy to install and manage things like python
* Install Scoop then do `scoop install python`
## Prerequisites for dev
* Install uv
* See the [Using uv](#Using-uv) section
* Install GNU Compatible Make command
* On windows if you have scoop installed you can install make with `scoop install make`
## Model Quantization
### Native Ollama Quantization
Ollama now supports native model quantization through the create model interface. When creating a new model, you can specify a quantization level (e.g., q4_K_M, q5_K_M) to reduce model size and memory requirements.
**Important**: Native quantization only works with F16 or F32 base models. If you try to quantize an already-quantized model (like llama3.2:1b which is already Q4_0), you'll receive an error.
### Prerequisites for HuggingFace model quantization
For quantizing custom models from HuggingFace that aren't available through Ollama:
1. Download [HuggingFaceModelDownloader](https://github.com/bodaay/HuggingFaceModelDownloader) from the releases area
2. Install [Docker Desktop](https://www.docker.com/products/docker-desktop/)
3. Pull the docker image:
```bash
docker pull ollama/quantize
```
## Using uv
### Installing uv
If you don't have uv installed you can run the following:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
### PyPi install
```shell
uv tool install parllama
```
To upgrade an existing uv installation use the -U --force flags:
```bash
uv tool install parllama -U --force
```
### Installing / running using uvx
```shell
uvx parllama
```
### Source install from GitHub
```bash
uv tool install git+https://github.com/paulrobello/parllama
```
To upgrade an existing installation use the --force flag:
```bash
uv tool install git+https://github.com/paulrobello/parllama -U --force
```
## pipx
### Installing
If you don't have pipx installed you can run the following:
```bash
pip install pipx
pipx ensurepath
```
### PyPi install
```shell
pipx install parllama
```
To upgrade an existing pipx installation use the --force flag:
```bash
pipx install parllama --force
```
### Source install from GitHub
```bash
pipx install git+https://github.com/paulrobello/parllama
```
To upgrade an existing installation use the --force flag:
```bash
pipx install git+https://github.com/paulrobello/parllama --force
```
## Installing for dev mode
Clone the repo and run the setup make target. Note `uv` is required for this.
```bash
git clone https://github.com/paulrobello/parllama
cd parllama
make setup
```
## Command line arguments
```
usage: parllama [-h] [-v] [-d DATA_DIR] [-u OLLAMA_URL] [-t THEME_NAME] [-m {dark,light}]
[-s {local,site,chat,prompts,tools,create,options,logs}] [--use-last-tab-on-startup {0,1}]
[--load-local-models-on-startup {0,1}] [-p PS_POLL] [-a {0,1}]
[--restore-defaults] [--purge-cache] [--purge-chats] [--purge-prompts] [--no-save] [--no-chat-save]
PAR LLAMA -- Ollama TUI.
options:
-h, --help show this help message and exit
-v, --version Show version information.
-d DATA_DIR, --data-dir DATA_DIR
Data Directory. Defaults to ~/.local/share/parllama
-u OLLAMA_URL, --ollama-url OLLAMA_URL
URL of your Ollama instance. Defaults to http://localhost:11434
-t THEME_NAME, --theme-name THEME_NAME
Theme name. Defaults to par
-m {dark,light}, --theme-mode {dark,light}
Dark / Light mode. Defaults to dark
-s {local,site,chat,prompts,tools,create,options,logs}, --starting-tab {local,site,chat,prompts,tools,create,options,logs}
Starting tab. Defaults to local
--use-last-tab-on-startup {0,1}
Use last tab on startup. Defaults to 1
--load-local-models-on-startup {0,1}
Load local models on startup. Defaults to 1
-p PS_POLL, --ps-poll PS_POLL
Interval in seconds to poll ollama ps command. 0 = disable. Defaults to 3
-a {0,1}, --auto-name-session {0,1}
Auto name session using LLM. Defaults to 0
--restore-defaults Restore default settings and theme
--purge-cache Purge cached data
--purge-chats Purge all chat history
--purge-prompts Purge all custom prompts
--no-save Prevent saving settings for this session
--no-chat-save Prevent saving chats for this session
```
Unless you specify "--no-save" most flags such as -u, -t, -m, -s are sticky and will be used next time you start PAR_LLAMA.
## Environment Variables
### Variables are loaded in the following order, last one to set a var wins
* HOST Environment
* PARLLAMA_DATA_DIR/.env
* ParLlama Options Screen
### Environment Variables for PAR LLAMA configuration
* PARLLAMA_DATA_DIR - Used to set --data-dir
* PARLLAMA_THEME_NAME - Used to set --theme-name
* PARLLAMA_THEME_MODE - Used to set --theme-mode
* OLLAMA_URL - Used to set --ollama-url
* PARLLAMA_AUTO_NAME_SESSION - Set to 0 or 1 to disable / enable session auto naming using LLM
## Running PAR_LLAMA
### with pipx or uv tool installation
From anywhere:
```bash
parllama
```
### with pip installation
From parent folder of venv
```bash
source venv/Scripts/activate
parllama
```
## Running against a remote Ollama instance
```bash
parllama -u "http://REMOTE_HOST:11434"
```
## Running under Windows WSL
Ollama by default only listens to localhost for connections, so you must set the environment variable OLLAMA_HOST=0.0.0.0:11434
to make it listen on all interfaces.
**Note: this will allow connections to your Ollama server from other devices on any network you are connected to.**
If you have Ollama installed via the native Windows installer you must set OLLAMA_HOST=0.0.0.0:11434 in the "System Variable" section
of the "Environment Variables" control panel.
If you installed Ollama under WSL, setting the var with ```export OLLAMA_HOST=0.0.0.0:11434``` before starting the Ollama server will have it listen on all interfaces.
If your Ollama server is already running, stop and start it to ensure it picks up the new environment variable.
You can validate what interfaces the Ollama server is listening on by looking at the server.log file in the Ollama config folder.
You should see as one of the first few lines "OLLAMA_HOST:http://0.0.0.0:11434"
Now that the server is listening on all interfaces you must instruct PAR_LLAMA to use a custom Ollama connection url with the "-u" flag.
The command will look something like this:
```bash
parllama -u "http://$(hostname).local:11434"
```
Depending on your DNS setup if the above does not work, try this:
```bash
parllama -u "http://$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):11434"
```
PAR_LLAMA will remember the -u flag so subsequent runs will not require that you specify it.
### Dev mode
From repo root:
```bash
make dev
```
## Quick start Ollama chat workflow
* Start parllama.
* Click the "Site" tab.
* Use ^R to fetch the latest models from Ollama.com.
* Use the "Filter Site models" text box and type "llama3".
* Find the entry with title of "llama3".
* Click the blue tag "8B" to update the search box to read "llama3:8b".
* Press ^P to pull the model from Ollama to your local machine. Depending on the size of the model and your internet connection this can take a few min.
* Click the "Local" tab to see models that have been locally downloaded.
* Select the "llama3:8b" entry and press ^C to jump to the "Chat" tab and auto select the model.
* Type a message to the model such as "Why is the sky blue?". It will take a few seconds for Ollama to load the model. After which the LLMs answer will stream in.
* Towards the very top of the app you will see what model is loaded and what percent of it is loaded into the GPU / CPU. If a model can't be loaded 100% on the GPU it will run slower.
* To export your conversation as a Markdown file type "/session.export" in the message input box. This will open a export dialog.
* Press ^N to add a new chat tab.
* Select a different model or change the temperature and ask the same questions.
* Jump between the tabs to compare responses by click the tabs or using slash commands `/tab.1` and `/tab.2`
* Press ^S to see all your past and current sessions. You can recall any past session by selecting it and pressing Enter or ^N if you want to load it into a new tab.
* Press ^P to see / change your sessions config options such as provider, model, temperature, etc.
* Type "/help" or "/?" to see what other slash commands are available.
## Quick start image chat workflow
* Start parllama.
* Click the "Site" tab.
* Use ^R to fetch the latest models from Ollama.com.
* Use the "Filter Site models" text box and type "llava-llama3".
* Find the entry with title of "llava-llama3".
* Click the blue tag "8B" to update the search box to read "llava-llama3:8b".
* Press ^P to pull the model from Ollama to your local machine. Depending on the size of the model and your internet connection this can take a few min.
* Click the "Local" tab to see models that have been locally downloaded. If the download is complete and it isn't showing up here you may need to refresh the list with ^R.
* Select the "llava-llama3" entry and press ^C to jump to the "Chat" tab and auto select the model.
* Use a slash command to add an image and a prompt "/add.image PATH_TO_IMAGE describe what's happening in this image". It will take a few seconds for Ollama to load the model. After which the LLMs answer will stream in.
* Towards the very top of the app you will see what model is loaded and what percent of it is loaded into the GPU / CPU. If a model can't be loaded 100% on the GPU it will run slower.
* Type "/help" or "/?" to see what other slash commands are available.
## Quick start OpenAI provider chat workflow
* Start parllama.
* Select the "Options" tab.
* Locate the AI provider you want to use the "Providers" section and enter your API key and base url if needed.
* You may need to restart parllama for some providers to fully take effect.
* Select the "Chat" tab
* If the "Session Config" panel on the right is not visible press `^p`
* Any providers that have don't need an API key or that do have an API key set should be selectable.
* Once a provider is selected available models should be loaded and selectable.
* Adjust any other session settings like Temperature.
* Click the message entry text box and converse with the LLM.
* Type "/help" or "/?" to see what slash commands are available.
## LlamaCPP support
Parllama supports LlamaCPP running OpenAI server mode. Parllama will use the default base_url of http://127.0.0.1:8080. This can be configured on the Options tab.
To start a LlamaCPP server run the following command in separate terminal:
```bash
llama-server -m PATH_TO_MODEL
```
or
```bash
llama-server -mu URL_TO_MODEL
```
## Custom Prompts
You can create a library of custom prompts for easy starting of new chats.
You can set up system prompts and user messages to prime conversations with the option of sending immediately to the LLM upon loading of the prompt.
Currently, importing prompts from the popular Fabric project is supported with more on the way.
## Themes
Themes are json files stored in the themes folder in the data directory which defaults to **~/.parllama/themes**
The default theme is "par" so can be located in **~/.parllama/themes/par.json**
Themes have a dark and light mode are in the following format:
```json
{
"dark": {
"primary": "#e49500",
"secondary": "#6e4800",
"warning": "#ffa62b",
"error": "#ba3c5b",
"success": "#4EBF71",
"accent": "#6e4800",
"panel": "#111",
"surface":"#1e1e1e",
"background":"#121212",
"dark": true
},
"light": {
"primary": "#004578",
"secondary": "#ffa62b",
"warning": "#ffa62b",
"error": "#ba3c5b",
"success": "#4EBF71",
"accent": "#0178D4",
"background":"#efefef",
"surface":"#f5f5f5",
"dark": false
}
}
```
You must specify at least one of light or dark for the theme to be usable.
Theme can be changed via command line with the ```--theme-name``` option.
## Contributing
Start by following the instructions in the section **Installing for dev mode**.
Please ensure that all pull requests are formatted with ruff, pass ruff lint and pyright.
You can run the make target **pre-commit** to ensure the pipeline will pass with your changes.
There is also a pre-commit config to that will assist with formatting and checks.
The easiest way to setup your environment to ensure smooth pull requests is:
With uv installed:
```bash
uv tool install pre-commit
```
With pipx installed:
```bash
pipx install pre-commit
```
From repo root run the following:
```bash
pre-commit install
pre-commit run --all-files
```
After running the above all future commits will auto run pre-commit. pre-commit will fix what it can and show what
if anything remains to be fixed before the commit is allowed.
## FAQ
* Q: Do I need Docker?
* A: Docker is only required if you want to Quantize models downloaded from Huggingface or similar llm repositories.
* Q: Does ParLlama require internet access?
* A: ParLlama by default does not require any network / internet access unless you enable checking for updates or want to import / use data from an online source.
* Q: Does ParLlama run on ARM?
* A: Short answer is yes. ParLlama should run any place python does. It has been tested on Windows 11 x64, Windows WSL x64, Mac OSX intel and silicon
* Q: Does ParLlama require Ollama be installed locally?
* A: No. ParLlama has options to connect to remote Ollama instances
* Q: Does ParLlama require Ollama?
* A: No. ParLlama can be used with most online AI providers
* Q: Does ParLlama support vision LLMs?
* A: Yes. If the selected provider / model supports vision you can add images to the chat via /slash commands
## Roadmap
### Where we are
* Initial release - Find, maintain and create new models
* Theme support
* Connect to remote Ollama instances
* Chat with history / conversation management
* Chat tabs allow chat with multiple models at same time
* Custom prompt library with import from Fabric
* Auto complete of slash commands, input history, multi line edit
* Ability to use cloud AI providers like OpenAI, Anthropic, Groq, Google, xAI, OpenRouter, LiteLLM
* Use images with vision capable LLMs
* Ability to copy code and other sub sections from chat
### Where we're going
* Better image support via file pickers
* RAG for local documents and web pages
* Expand ability to import custom prompts of other tools
* LLM tool use
## What's new
### v0.4.0
* Fixed type checking issue with ClickableLabel widget accessing incorrect property
* Changed from accessing `renderable` to `content` property to align with Textual API
### v0.3.28
* Fix some outdated dependencies
* Fixed delete chat tab on macOS sometimes not working
* Streamlined markdown fences
### v0.3.27
* Fixed Fabric import due to upstream library changes (PR https://github.com/paulrobello/parllama/pull/61)
* Added better Markdown streaming support thank to upstream library changes
* Fixed chat tab send bar layout issues
* Fixed thinking fence not showing correctly sometimes
### v0.3.26
* **Enhanced Fabric Import with Progress Tracking**
* **Increased File Size Limits for Better Usability**
* Enhanced URL validation to preserve case sensitivity for case-sensitive endpoints
* Improved security logging and error handling throughout secrets management
* Implemented comprehensive file validation and security system
* Added FileValidator class with security checks for:
- File size limits (configurable per file type: images, JSON, ZIP)
- Extension validation against allowed lists
- Path security to prevent directory traversal attacks
- Content validation for JSON, images, and ZIP files
- ZIP bomb protection with compression ratio checks
* Created SecureFileOperations utility
* Added new file validation configuration tools
* Enhanced security for all JSON operations
* All file operations now include comprehensive error handling and fallback mechanisms
* Improved error handling for model creation with better error messages
* Added validation for quantization levels with list of valid options
* Added specific error messages for quantization requirements (F16/F32 base models)
* Updated UI to clarify quantization requirements in model creation
* Fixed memory leaks using WeakSet for subscriptions and bounded job queue
* Updated quantization documentation to clarify native Ollama support vs Docker requirements
* Fixed critical threading race conditions in job processing system
* Enhanced exception handling across all job methods (pull, push, copy, create)
* Improved error logging and user notifications for all job operations
* Added state transition logging for debugging threading issues
* Fixed delete key on mac sometimes not working
* Implemented comprehensive configuration management system
- Added 24 configurable settings for timers, timeouts, and UI behavior
* Major code quality and type safety improvements
* Implemented centralized state management system
* Enhanced provider cache system with configurable per-provider durations
* Added comprehensive provider disable functionality with checkboxes for all AI providers
- Disabled providers are excluded from model refresh operations and UI dropdowns to prevent timeouts
* Added automatic local model list refresh after successful model downloads
### v0.3.25
* Fixed tab in input history causing a crash.
* Fixed create new model causing crash.
* Fix hard coded config loading.
### v0.3.24
* Sort local models by size then name
* Add support for http basic auth when setting base url for providers
### v0.3.23
* Fixed possible crash on local model details dialog
### v0.3.22
* Add option to import markdown files into session via slash command /session.import and hot key ctrl+i
* Added slash command /session.summarize to summarize and replace entire conversation into a single 1 paragraph message
* Tree-sitter package no longer installed by default
### v0.3.21
* Fix error caused by LLM response containing certain markup
* Added llm config options for OpenAI Reasoning Effort, and Anthropic's Reasoning Token Budget
* Better display in chat area for "thinking" portions of a LLM response
* Fixed issues caused by deleting a message from chat while its still being generated by the LLM
* data and cache locations now use proper XDG locations
### v0.3.20
* Fix unsupported format string error caused by missing temperature setting
### v0.3.19
* Fix missing package error caused by previous update
### v0.3.18
* Updated dependencies for some major performance improvements
### v0.3.17
* Fixed crash on startup if Ollama is not available
* Fixed markdown display issues around fences
* Added "thinking" fence for deepseek thought output
* Much better support for displaying max input context size
### v0.3.16
* Added providers xAI, OpenRouter, Deepseek and LiteLLM
### v0.3.15
* Added copy button to the fence blocks in chat markdown for easy code copy
### v0.3.14
* Fix crash caused some models having some missing fields in model file
### v0.3.13
* Handle clipboard errors
### v0.3.12
* Fixed bug where changing providers that have custom urls would break other providers
* Fixed bug where changing Ollama base url would cause connection timed out
### v0.3.11
* Added ability to set max context size for Ollama and other providers that support it
* Limited support for LLamaCpp running in OpenAI Mode.
* Added ability to cycle through fences in selected chat message and copy to clipboard with `ctrl+shift+c`
* Added theme selector
* Various bug fixes and performance improvements
* Updated core AI library and dependencies
* Fixed crash due to upstream library update
### v0.3.10
* Fixed crash issues on fresh installs
* Images are now stored in chat session json files
* Added API key checks for online providers
### v0.3.9
* Image support for models that support them using /add.image slash command. See the [Quick start image chat workflow](#quick-start-image-chat-workflow)
* Add history support for both single and multi line input modes
* Fixed crash on models that dont have a license
* Fixed last model used not get used with new sessions
### v0.3.8
* Major rework of core to support providers other than Ollama
* Added support for the following online providers: OpenAI, Anthropic, Groq, Google
* New session config panel docked to right side of chat tab (more settings coming soon)
* Better counting of tokens (still not always 100% accurate)
### v0.3.7
* Fix for possible crash when there is more than one model loaded into ollama
### v0.3.6
* Added option to save chat input history and set its length
* Fixed tab switch issue on startup
* Added cache for Fabric import to speed up subsequent imports
### v0.3.5
* Added first time launch welcome
* Added Options tab which exposes more options than are available via command line switches
* Added option to auto check for new versions
* Added ability to import custom prompts from [fabric](https://github.com/danielmiessler/fabric)
* Added toggle between single and multi line input (Note auto complete and command history features not available in multi line edit mode)
### v0.3.4
* Added custom prompt library support (Work in progress)
* Added cli option and environment var to enable auto naming of sessions using LLM (Work in progress)
* Added tokens per second stats to session info line on chat tab
* Fixed app crash when it can't contact ollama server for PS info
* Fixed slow startup when you have a lot of models available locally
* Fixed slow startup and reduced memory utilization when you have many / large chats
* Fixed session unique naming bug where it would always add a "1" to the session name
* Fixed app sometimes slowing down during LLM generation
* Major rework of internal message handling
* Issue where some footer items are not clickable has been resolved by a library PARLLAMA depends on
### v0.3.3
* Added ability to edit existing messages. select message in chat list and press "e" to edit, then "escape" to exit edit mode
* Add chat input history access via up / down arrow while chat message input has focus
* Added /session.system_prompt command to set system prompt in current chat tab
### v0.3.2
* Ollama ps stats bar now works with remote connections except for CPU / GPU %'s which ollama's api does not provide
* Chat tabs now have a session info bar with info like current / max context length
* Added conversation stop button to abort llm response
* Added ability to delete messages from session
* More model details displayed on model detail screen
* Better performance when changing session params on chat tab
### v0.3.1
* Add chat tabs to support multiple sessions
* Added cli option to prevent saving chat history to disk
* Renamed / namespaced chat slash commands for better consistency and grouping
* Fixed application crash when ollama binary not found
### v0.3.0
* Added chat history panel and management to chat page
### v0.2.51
* Fix missing dependency in package
### v0.2.5
* Added slash commands to chat input
* Added ability to export chat to markdown file
* ctrl+c on local model list will jump to chat tab and select currently selected local model
* ctrl+c on chat tab will copy selected chat message
Raw data
{
"_id": null,
"home_page": null,
"name": "parllama",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": "Paul Robello <probello@gmail.com>",
"keywords": "ai, anthropic, groq, llamacpp, llm, ollama, openai, openrouter, terminal, tui, vision, xai",
"author": null,
"author_email": "Paul Robello <probello@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/48/e9/f8ae1e581351524a27d78e3ab7b748ac263c4ac16805d977ea851003a668/parllama-0.4.0.tar.gz",
"platform": null,
"description": "# PAR LLAMA\n\n## Table of Contents\n\n* [About](#about)\n* [Features](#features)\n * [Core Capabilities](#core-capabilities)\n * [Advanced Features](#advanced-features)\n * [Technical Excellence](#technical-excellence)\n* [Screenshots](#screenshots)\n* [Prerequisites for running](#prerequisites-for-running)\n* [Prerequisites for dev](#prerequisites-for-dev)\n* [Prerequisites for huggingface model quantization](#prerequisites-for-huggingface-model-quantization)\n* [Installing using pipx](#pipx)\n* [Installing using uv](#using-uv)\n* [Installing for dev mode](#installing-for-dev-mode)\n* [Command line arguments](#command-line-arguments)\n* [Environment Variables](#environment-variables)\n* [Running PAR_LLAMA](#running-par_llama)\n * [with pipx installation](#with-pipx-installation)\n * [with pip installation](#with-pip-installation)\n* [Running against a remote instance](#running-against-a-remote-instance)\n* [Running under Windows WSL](#running-under-windows-wsl)\n * [Dev mode](#dev-mode)\n* [Quick start Ollama chat workflow](#Quick-start-Ollama-chat-workflow)\n* [Quick start image chat workflow](#Quick-start-image-chat-workflow)\n* [Quick start OpenAI provider chat workflow](#Quick-start-OpenAI-provider-chat-workflow)\n* [Custom Prompts](#Custom-Prompts)\n* [Themes](#themes)\n* [Screen Help](https://github.com/paulrobello/parllama/blob/main/src/parllama/help.md)\n* [Contributing](#contributing)\n* [FAQ](#faq)\n* [Roadmap](#roadmap)\n * [Where we are](#where-we-are)\u00cf\n * [Where we're going](#where-were-going)\n* [What's new](#whats-new)\n * [v0.4.0](#v040)\n * [v0.3.28](#v0328)\n * [v0.3.27](#v0327)\n * [v0.3.26](#v0326)\n * [v0.3.25](#v0325)\n * [older...](#v0324)\n\n[](https://pypi.org/project/parllama/)\n[](https://pypi.org/project/parllama/) \n\n\n\n\n\n\n\n## About\nPAR LLAMA is a TUI (Text UI) application designed for easy management and use of Ollama based LLMs. (It also works with most major cloud provided LLMs)\nThe application was built with [Textual](https://textual.textualize.io/) and [Rich](https://github.com/Textualize/rich?tab=readme-ov-file) and my [PAR AI Core](https://github.com/paulrobello/par_ai_core).\nIt runs on all major OS's including but not limited to Windows, Windows WSL, Mac, and Linux.\n\n[](https://buymeacoffee.com/probello3)\n\n## Features\n\n### Core Capabilities\n- **Multi-Provider Support**: Seamlessly work with Ollama, OpenAI, Anthropic, Groq, XAI, OpenRouter, Deepseek, and LiteLLM\n- **Vision Model Support**: Chat with images using vision-capable models like LLaVA and GPT-4 Vision\n- **Session Management**: Save, load, organize, and export chat sessions with full conversation history\n- **Custom Prompts**: Create, import, and manage a library of custom system prompts and templates\n- **Fabric Integration**: Import and use Fabric patterns as reusable prompts\n- **Model Management**: Pull, delete, copy, create, and quantize models with native Ollama support\n\n### Advanced Features\n- **Smart Model Caching**: Intelligent per-provider model caching with configurable durations\n- **Provider Management**: Enable/disable providers, manage API keys, and configure endpoints\n- **Theme System**: Dark/light modes with custom theme support via JSON configuration\n- **Auto-naming**: Automatically name chat sessions using LLM-generated titles\n- **Slash Commands**: Extensive command system for quick actions and navigation\n- **Export Options**: Export conversations as Markdown files for documentation\n- **Security**: Comprehensive file validation and secure operations for all data handling\n\n### Technical Excellence\n- **Async Architecture**: Non-blocking operations for smooth, responsive UI performance\n- **Type Safety**: Fully typed Python codebase with comprehensive type checking\n- **Extensible Design**: Easy to add new providers, features, and customizations\n- **Cross-Platform**: Native support for Windows, macOS, Linux, and WSL\n- **Hot Reload**: Development mode with automatic UI updates on code changes\n\n## Screenshots\nSupports Dark and Light mode as well as custom themes.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Videos\n[V0.3.5 demo](https://www.youtube.com/watch?v=Genv46SKA5o)\n\n## Prerequisites for running\n* Install and run [Ollama](https://ollama.com/download)\n* Install Python 3.11 or newer\n * [https://www.python.org/downloads/](https://www.python.org/downloads/) has installers for all versions of Python for all os's\n * On Windows the [Scoop](https://scoop.sh/) tool makes it easy to install and manage things like python\n * Install Scoop then do `scoop install python`\n\n## Prerequisites for dev\n* Install uv\n * See the [Using uv](#Using-uv) section\n* Install GNU Compatible Make command\n * On windows if you have scoop installed you can install make with `scoop install make`\n\n## Model Quantization\n\n### Native Ollama Quantization\nOllama now supports native model quantization through the create model interface. When creating a new model, you can specify a quantization level (e.g., q4_K_M, q5_K_M) to reduce model size and memory requirements.\n\n**Important**: Native quantization only works with F16 or F32 base models. If you try to quantize an already-quantized model (like llama3.2:1b which is already Q4_0), you'll receive an error.\n\n### Prerequisites for HuggingFace model quantization\nFor quantizing custom models from HuggingFace that aren't available through Ollama:\n\n1. Download [HuggingFaceModelDownloader](https://github.com/bodaay/HuggingFaceModelDownloader) from the releases area\n2. Install [Docker Desktop](https://www.docker.com/products/docker-desktop/)\n3. Pull the docker image:\n```bash\ndocker pull ollama/quantize\n```\n\n## Using uv\n\n### Installing uv\nIf you don't have uv installed you can run the following: \n```bash\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n```\n\n### PyPi install\n```shell\nuv tool install parllama\n```\n\nTo upgrade an existing uv installation use the -U --force flags:\n```bash\nuv tool install parllama -U --force\n```\n\n### Installing / running using uvx\n```shell\nuvx parllama\n```\n\n### Source install from GitHub\n```bash\nuv tool install git+https://github.com/paulrobello/parllama\n```\nTo upgrade an existing installation use the --force flag:\n```bash\nuv tool install git+https://github.com/paulrobello/parllama -U --force\n```\n\n## pipx\n### Installing\nIf you don't have pipx installed you can run the following: \n```bash\npip install pipx\npipx ensurepath\n```\n\n### PyPi install\n```shell\npipx install parllama\n```\n\nTo upgrade an existing pipx installation use the --force flag:\n```bash\npipx install parllama --force\n```\n\n### Source install from GitHub\n```bash\npipx install git+https://github.com/paulrobello/parllama\n```\n\nTo upgrade an existing installation use the --force flag:\n```bash\npipx install git+https://github.com/paulrobello/parllama --force\n```\n\n\n## Installing for dev mode\nClone the repo and run the setup make target. Note `uv` is required for this.\n```bash\ngit clone https://github.com/paulrobello/parllama\ncd parllama\nmake setup\n```\n\n\n## Command line arguments\n```\nusage: parllama [-h] [-v] [-d DATA_DIR] [-u OLLAMA_URL] [-t THEME_NAME] [-m {dark,light}]\n [-s {local,site,chat,prompts,tools,create,options,logs}] [--use-last-tab-on-startup {0,1}]\n [--load-local-models-on-startup {0,1}] [-p PS_POLL] [-a {0,1}]\n [--restore-defaults] [--purge-cache] [--purge-chats] [--purge-prompts] [--no-save] [--no-chat-save]\n\nPAR LLAMA -- Ollama TUI.\n\noptions:\n -h, --help show this help message and exit\n -v, --version Show version information.\n -d DATA_DIR, --data-dir DATA_DIR\n Data Directory. Defaults to ~/.local/share/parllama\n -u OLLAMA_URL, --ollama-url OLLAMA_URL\n URL of your Ollama instance. Defaults to http://localhost:11434\n -t THEME_NAME, --theme-name THEME_NAME\n Theme name. Defaults to par\n -m {dark,light}, --theme-mode {dark,light}\n Dark / Light mode. Defaults to dark\n -s {local,site,chat,prompts,tools,create,options,logs}, --starting-tab {local,site,chat,prompts,tools,create,options,logs}\n Starting tab. Defaults to local\n --use-last-tab-on-startup {0,1}\n Use last tab on startup. Defaults to 1\n --load-local-models-on-startup {0,1}\n Load local models on startup. Defaults to 1\n -p PS_POLL, --ps-poll PS_POLL\n Interval in seconds to poll ollama ps command. 0 = disable. Defaults to 3\n -a {0,1}, --auto-name-session {0,1}\n Auto name session using LLM. Defaults to 0\n --restore-defaults Restore default settings and theme\n --purge-cache Purge cached data\n --purge-chats Purge all chat history\n --purge-prompts Purge all custom prompts\n --no-save Prevent saving settings for this session\n --no-chat-save Prevent saving chats for this session\n```\n\nUnless you specify \"--no-save\" most flags such as -u, -t, -m, -s are sticky and will be used next time you start PAR_LLAMA.\n\n## Environment Variables\n### Variables are loaded in the following order, last one to set a var wins\n* HOST Environment\n* PARLLAMA_DATA_DIR/.env\n* ParLlama Options Screen\n\n### Environment Variables for PAR LLAMA configuration\n* PARLLAMA_DATA_DIR - Used to set --data-dir\n* PARLLAMA_THEME_NAME - Used to set --theme-name\n* PARLLAMA_THEME_MODE - Used to set --theme-mode\n* OLLAMA_URL - Used to set --ollama-url\n* PARLLAMA_AUTO_NAME_SESSION - Set to 0 or 1 to disable / enable session auto naming using LLM\n\n## Running PAR_LLAMA\n\n### with pipx or uv tool installation\nFrom anywhere:\n```bash\nparllama\n```\n\n### with pip installation\nFrom parent folder of venv\n```bash\nsource venv/Scripts/activate\nparllama\n```\n## Running against a remote Ollama instance\n```bash\nparllama -u \"http://REMOTE_HOST:11434\"\n```\n\n## Running under Windows WSL\nOllama by default only listens to localhost for connections, so you must set the environment variable OLLAMA_HOST=0.0.0.0:11434\nto make it listen on all interfaces. \n**Note: this will allow connections to your Ollama server from other devices on any network you are connected to.** \nIf you have Ollama installed via the native Windows installer you must set OLLAMA_HOST=0.0.0.0:11434 in the \"System Variable\" section\nof the \"Environment Variables\" control panel. \nIf you installed Ollama under WSL, setting the var with ```export OLLAMA_HOST=0.0.0.0:11434``` before starting the Ollama server will have it listen on all interfaces.\nIf your Ollama server is already running, stop and start it to ensure it picks up the new environment variable. \nYou can validate what interfaces the Ollama server is listening on by looking at the server.log file in the Ollama config folder. \nYou should see as one of the first few lines \"OLLAMA_HOST:http://0.0.0.0:11434\" \n\nNow that the server is listening on all interfaces you must instruct PAR_LLAMA to use a custom Ollama connection url with the \"-u\" flag. \nThe command will look something like this: \n```bash\nparllama -u \"http://$(hostname).local:11434\"\n```\nDepending on your DNS setup if the above does not work, try this: \n```bash\nparllama -u \"http://$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):11434\"\n```\n\nPAR_LLAMA will remember the -u flag so subsequent runs will not require that you specify it.\n\n### Dev mode\nFrom repo root:\n```bash\nmake dev\n```\n\n## Quick start Ollama chat workflow\n* Start parllama.\n* Click the \"Site\" tab.\n* Use ^R to fetch the latest models from Ollama.com.\n* Use the \"Filter Site models\" text box and type \"llama3\".\n* Find the entry with title of \"llama3\".\n* Click the blue tag \"8B\" to update the search box to read \"llama3:8b\".\n* Press ^P to pull the model from Ollama to your local machine. Depending on the size of the model and your internet connection this can take a few min.\n* Click the \"Local\" tab to see models that have been locally downloaded.\n* Select the \"llama3:8b\" entry and press ^C to jump to the \"Chat\" tab and auto select the model.\n* Type a message to the model such as \"Why is the sky blue?\". It will take a few seconds for Ollama to load the model. After which the LLMs answer will stream in.\n* Towards the very top of the app you will see what model is loaded and what percent of it is loaded into the GPU / CPU. If a model can't be loaded 100% on the GPU it will run slower.\n* To export your conversation as a Markdown file type \"/session.export\" in the message input box. This will open a export dialog.\n* Press ^N to add a new chat tab.\n* Select a different model or change the temperature and ask the same questions.\n* Jump between the tabs to compare responses by click the tabs or using slash commands `/tab.1` and `/tab.2`\n* Press ^S to see all your past and current sessions. You can recall any past session by selecting it and pressing Enter or ^N if you want to load it into a new tab.\n* Press ^P to see / change your sessions config options such as provider, model, temperature, etc.\n* Type \"/help\" or \"/?\" to see what other slash commands are available.\n\n## Quick start image chat workflow\n* Start parllama.\n* Click the \"Site\" tab.\n* Use ^R to fetch the latest models from Ollama.com.\n* Use the \"Filter Site models\" text box and type \"llava-llama3\".\n* Find the entry with title of \"llava-llama3\".\n* Click the blue tag \"8B\" to update the search box to read \"llava-llama3:8b\".\n* Press ^P to pull the model from Ollama to your local machine. Depending on the size of the model and your internet connection this can take a few min.\n* Click the \"Local\" tab to see models that have been locally downloaded. If the download is complete and it isn't showing up here you may need to refresh the list with ^R.\n* Select the \"llava-llama3\" entry and press ^C to jump to the \"Chat\" tab and auto select the model.\n* Use a slash command to add an image and a prompt \"/add.image PATH_TO_IMAGE describe what's happening in this image\". It will take a few seconds for Ollama to load the model. After which the LLMs answer will stream in.\n* Towards the very top of the app you will see what model is loaded and what percent of it is loaded into the GPU / CPU. If a model can't be loaded 100% on the GPU it will run slower.\n* Type \"/help\" or \"/?\" to see what other slash commands are available.\n\n## Quick start OpenAI provider chat workflow\n* Start parllama.\n* Select the \"Options\" tab.\n* Locate the AI provider you want to use the \"Providers\" section and enter your API key and base url if needed.\n* You may need to restart parllama for some providers to fully take effect.\n* Select the \"Chat\" tab\n* If the \"Session Config\" panel on the right is not visible press `^p`\n* Any providers that have don't need an API key or that do have an API key set should be selectable.\n* Once a provider is selected available models should be loaded and selectable.\n* Adjust any other session settings like Temperature.\n* Click the message entry text box and converse with the LLM.\n* Type \"/help\" or \"/?\" to see what slash commands are available.\n\n\n## LlamaCPP support\nParllama supports LlamaCPP running OpenAI server mode. Parllama will use the default base_url of http://127.0.0.1:8080. This can be configured on the Options tab. \nTo start a LlamaCPP server run the following command in separate terminal: \n```bash\nllama-server -m PATH_TO_MODEL\n```\nor\n```bash\nllama-server -mu URL_TO_MODEL\n```\n\n## Custom Prompts\nYou can create a library of custom prompts for easy starting of new chats. \nYou can set up system prompts and user messages to prime conversations with the option of sending immediately to the LLM upon loading of the prompt. \nCurrently, importing prompts from the popular Fabric project is supported with more on the way. \n\n\n## Themes\nThemes are json files stored in the themes folder in the data directory which defaults to **~/.parllama/themes** \n\nThe default theme is \"par\" so can be located in **~/.parllama/themes/par.json** \n\nThemes have a dark and light mode are in the following format: \n```json\n{\n \"dark\": {\n \"primary\": \"#e49500\",\n \"secondary\": \"#6e4800\",\n \"warning\": \"#ffa62b\",\n \"error\": \"#ba3c5b\",\n \"success\": \"#4EBF71\",\n \"accent\": \"#6e4800\",\n \"panel\": \"#111\",\n \"surface\":\"#1e1e1e\",\n \"background\":\"#121212\",\n \"dark\": true\n },\n \"light\": {\n \"primary\": \"#004578\",\n \"secondary\": \"#ffa62b\",\n \"warning\": \"#ffa62b\",\n \"error\": \"#ba3c5b\",\n \"success\": \"#4EBF71\",\n \"accent\": \"#0178D4\",\n \"background\":\"#efefef\",\n \"surface\":\"#f5f5f5\",\n \"dark\": false\n }\n}\n```\n\nYou must specify at least one of light or dark for the theme to be usable. \n\nTheme can be changed via command line with the ```--theme-name``` option.\n\n## Contributing\nStart by following the instructions in the section **Installing for dev mode**. \n\nPlease ensure that all pull requests are formatted with ruff, pass ruff lint and pyright. \nYou can run the make target **pre-commit** to ensure the pipeline will pass with your changes. \nThere is also a pre-commit config to that will assist with formatting and checks. \nThe easiest way to setup your environment to ensure smooth pull requests is: \n\nWith uv installed:\n```bash\nuv tool install pre-commit\n```\n\nWith pipx installed:\n```bash\npipx install pre-commit\n```\n\nFrom repo root run the following:\n```bash\npre-commit install\npre-commit run --all-files\n```\nAfter running the above all future commits will auto run pre-commit. pre-commit will fix what it can and show what\nif anything remains to be fixed before the commit is allowed.\n\n## FAQ\n* Q: Do I need Docker?\n * A: Docker is only required if you want to Quantize models downloaded from Huggingface or similar llm repositories.\n* Q: Does ParLlama require internet access?\n * A: ParLlama by default does not require any network / internet access unless you enable checking for updates or want to import / use data from an online source.\n* Q: Does ParLlama run on ARM?\n * A: Short answer is yes. ParLlama should run any place python does. It has been tested on Windows 11 x64, Windows WSL x64, Mac OSX intel and silicon\n* Q: Does ParLlama require Ollama be installed locally?\n * A: No. ParLlama has options to connect to remote Ollama instances\n* Q: Does ParLlama require Ollama?\n * A: No. ParLlama can be used with most online AI providers\n* Q: Does ParLlama support vision LLMs?\n * A: Yes. If the selected provider / model supports vision you can add images to the chat via /slash commands\n\n## Roadmap\n\n### Where we are\n* Initial release - Find, maintain and create new models\n* Theme support\n* Connect to remote Ollama instances\n* Chat with history / conversation management\n* Chat tabs allow chat with multiple models at same time\n* Custom prompt library with import from Fabric\n* Auto complete of slash commands, input history, multi line edit\n* Ability to use cloud AI providers like OpenAI, Anthropic, Groq, Google, xAI, OpenRouter, LiteLLM\n* Use images with vision capable LLMs\n* Ability to copy code and other sub sections from chat\n\n### Where we're going\n\n* Better image support via file pickers\n* RAG for local documents and web pages\n* Expand ability to import custom prompts of other tools\n* LLM tool use\n\n\n## What's new\n\n### v0.4.0\n\n* Fixed type checking issue with ClickableLabel widget accessing incorrect property\n* Changed from accessing `renderable` to `content` property to align with Textual API\n\n### v0.3.28\n\n* Fix some outdated dependencies\n* Fixed delete chat tab on macOS sometimes not working\n* Streamlined markdown fences\n\n### v0.3.27\n\n* Fixed Fabric import due to upstream library changes (PR https://github.com/paulrobello/parllama/pull/61)\n* Added better Markdown streaming support thank to upstream library changes\n* Fixed chat tab send bar layout issues\n* Fixed thinking fence not showing correctly sometimes\n\n### v0.3.26\n\n* **Enhanced Fabric Import with Progress Tracking**\n* **Increased File Size Limits for Better Usability**\n* Enhanced URL validation to preserve case sensitivity for case-sensitive endpoints\n* Improved security logging and error handling throughout secrets management\n* Implemented comprehensive file validation and security system\n* Added FileValidator class with security checks for:\n - File size limits (configurable per file type: images, JSON, ZIP)\n - Extension validation against allowed lists\n - Path security to prevent directory traversal attacks\n - Content validation for JSON, images, and ZIP files\n - ZIP bomb protection with compression ratio checks\n* Created SecureFileOperations utility\n* Added new file validation configuration tools\n* Enhanced security for all JSON operations\n* All file operations now include comprehensive error handling and fallback mechanisms\n* Improved error handling for model creation with better error messages\n* Added validation for quantization levels with list of valid options\n* Added specific error messages for quantization requirements (F16/F32 base models)\n* Updated UI to clarify quantization requirements in model creation\n* Fixed memory leaks using WeakSet for subscriptions and bounded job queue\n* Updated quantization documentation to clarify native Ollama support vs Docker requirements\n* Fixed critical threading race conditions in job processing system\n* Enhanced exception handling across all job methods (pull, push, copy, create)\n* Improved error logging and user notifications for all job operations\n* Added state transition logging for debugging threading issues\n* Fixed delete key on mac sometimes not working\n* Implemented comprehensive configuration management system\n - Added 24 configurable settings for timers, timeouts, and UI behavior\n* Major code quality and type safety improvements\n* Implemented centralized state management system\n* Enhanced provider cache system with configurable per-provider durations\n* Added comprehensive provider disable functionality with checkboxes for all AI providers\n - Disabled providers are excluded from model refresh operations and UI dropdowns to prevent timeouts\n* Added automatic local model list refresh after successful model downloads\n\n### v0.3.25\n\n* Fixed tab in input history causing a crash.\n* Fixed create new model causing crash.\n* Fix hard coded config loading.\n\n\n### v0.3.24\n\n* Sort local models by size then name\n* Add support for http basic auth when setting base url for providers\n\n### v0.3.23\n\n* Fixed possible crash on local model details dialog\n\n### v0.3.22\n\n* Add option to import markdown files into session via slash command /session.import and hot key ctrl+i\n* Added slash command /session.summarize to summarize and replace entire conversation into a single 1 paragraph message\n* Tree-sitter package no longer installed by default\n\n### v0.3.21\n\n* Fix error caused by LLM response containing certain markup\n* Added llm config options for OpenAI Reasoning Effort, and Anthropic's Reasoning Token Budget\n* Better display in chat area for \"thinking\" portions of a LLM response\n* Fixed issues caused by deleting a message from chat while its still being generated by the LLM\n* data and cache locations now use proper XDG locations\n\n### v0.3.20\n\n* Fix unsupported format string error caused by missing temperature setting\n\n### v0.3.19\n\n* Fix missing package error caused by previous update\n\n### v0.3.18\n\n* Updated dependencies for some major performance improvements\n\n### v0.3.17\n\n* Fixed crash on startup if Ollama is not available\n* Fixed markdown display issues around fences\n* Added \"thinking\" fence for deepseek thought output\n* Much better support for displaying max input context size\n\n### v0.3.16\n\n* Added providers xAI, OpenRouter, Deepseek and LiteLLM\n\n### v0.3.15\n\n* Added copy button to the fence blocks in chat markdown for easy code copy\n\n### v0.3.14\n\n* Fix crash caused some models having some missing fields in model file\n\n### v0.3.13\n\n* Handle clipboard errors\n\n### v0.3.12\n\n* Fixed bug where changing providers that have custom urls would break other providers\n* Fixed bug where changing Ollama base url would cause connection timed out\n\n### v0.3.11\n\n* Added ability to set max context size for Ollama and other providers that support it\n* Limited support for LLamaCpp running in OpenAI Mode.\n* Added ability to cycle through fences in selected chat message and copy to clipboard with `ctrl+shift+c`\n* Added theme selector\n* Various bug fixes and performance improvements\n* Updated core AI library and dependencies\n* Fixed crash due to upstream library update\n\n### v0.3.10\n* Fixed crash issues on fresh installs\n* Images are now stored in chat session json files\n* Added API key checks for online providers\n\n### v0.3.9\n* Image support for models that support them using /add.image slash command. See the [Quick start image chat workflow](#quick-start-image-chat-workflow)\n* Add history support for both single and multi line input modes\n* Fixed crash on models that dont have a license\n* Fixed last model used not get used with new sessions\n\n### v0.3.8\n* Major rework of core to support providers other than Ollama\n* Added support for the following online providers: OpenAI, Anthropic, Groq, Google\n* New session config panel docked to right side of chat tab (more settings coming soon)\n* Better counting of tokens (still not always 100% accurate)\n\n### v0.3.7\n* Fix for possible crash when there is more than one model loaded into ollama\n\n### v0.3.6\n* Added option to save chat input history and set its length\n* Fixed tab switch issue on startup\n* Added cache for Fabric import to speed up subsequent imports\n\n### v0.3.5\n* Added first time launch welcome\n* Added Options tab which exposes more options than are available via command line switches\n* Added option to auto check for new versions\n* Added ability to import custom prompts from [fabric](https://github.com/danielmiessler/fabric)\n* Added toggle between single and multi line input (Note auto complete and command history features not available in multi line edit mode)\n\n### v0.3.4\n* Added custom prompt library support (Work in progress)\n* Added cli option and environment var to enable auto naming of sessions using LLM (Work in progress)\n* Added tokens per second stats to session info line on chat tab\n* Fixed app crash when it can't contact ollama server for PS info\n* Fixed slow startup when you have a lot of models available locally\n* Fixed slow startup and reduced memory utilization when you have many / large chats\n* Fixed session unique naming bug where it would always add a \"1\" to the session name\n* Fixed app sometimes slowing down during LLM generation\n* Major rework of internal message handling\n* Issue where some footer items are not clickable has been resolved by a library PARLLAMA depends on\n\n### v0.3.3\n* Added ability to edit existing messages. select message in chat list and press \"e\" to edit, then \"escape\" to exit edit mode\n* Add chat input history access via up / down arrow while chat message input has focus\n* Added /session.system_prompt command to set system prompt in current chat tab\n\n### v0.3.2\n* Ollama ps stats bar now works with remote connections except for CPU / GPU %'s which ollama's api does not provide\n* Chat tabs now have a session info bar with info like current / max context length\n* Added conversation stop button to abort llm response\n* Added ability to delete messages from session\n* More model details displayed on model detail screen\n* Better performance when changing session params on chat tab\n\n### v0.3.1\n* Add chat tabs to support multiple sessions\n* Added cli option to prevent saving chat history to disk\n* Renamed / namespaced chat slash commands for better consistency and grouping\n* Fixed application crash when ollama binary not found\n\n### v0.3.0\n* Added chat history panel and management to chat page\n\n### v0.2.51\n* Fix missing dependency in package\n\n### v0.2.5\n* Added slash commands to chat input\n* Added ability to export chat to markdown file\n* ctrl+c on local model list will jump to chat tab and select currently selected local model\n* ctrl+c on chat tab will copy selected chat message\n",
"bugtrack_url": null,
"license": "MIT License\n \n Copyright (c) 2025 Paul Robello\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.",
"summary": "Terminal UI for Ollama and other LLM providers",
"version": "0.4.0",
"project_urls": {
"Discussions": "https://github.com/paulrobello/parllama/discussions",
"Documentation": "https://github.com/paulrobello/parllama/blob/main/README.md",
"Homepage": "https://github.com/paulrobello/parllama",
"Issues": "https://github.com/paulrobello/parllama/issues",
"Source": "https://github.com/paulrobello/parllama",
"Wiki": "https://github.com/paulrobello/parllama/wiki"
},
"split_keywords": [
"ai",
" anthropic",
" groq",
" llamacpp",
" llm",
" ollama",
" openai",
" openrouter",
" terminal",
" tui",
" vision",
" xai"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1fc53f06dbe6839487600aa55e4ce2cd602ed6c4e56081c847d754b44d77da42",
"md5": "44915a8f01bc4e76c9cde344ca59fb17",
"sha256": "3cc97a5b6c6dfb6869ca82cf7590d4967669139c7d220f6997d4eab9dbce8a1f"
},
"downloads": -1,
"filename": "parllama-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "44915a8f01bc4e76c9cde344ca59fb17",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 181352,
"upload_time": "2025-09-03T01:33:35",
"upload_time_iso_8601": "2025-09-03T01:33:35.044186Z",
"url": "https://files.pythonhosted.org/packages/1f/c5/3f06dbe6839487600aa55e4ce2cd602ed6c4e56081c847d754b44d77da42/parllama-0.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "48e9f8ae1e581351524a27d78e3ab7b748ac263c4ac16805d977ea851003a668",
"md5": "3b15e4d0d98771d3bbef4a33adf02cfb",
"sha256": "dfaa00bd37ef93f1b4cb022749607865d196dfc71840b7b95d5ad2e3db00a482"
},
"downloads": -1,
"filename": "parllama-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "3b15e4d0d98771d3bbef4a33adf02cfb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 140380,
"upload_time": "2025-09-03T01:33:37",
"upload_time_iso_8601": "2025-09-03T01:33:37.006273Z",
"url": "https://files.pythonhosted.org/packages/48/e9/f8ae1e581351524a27d78e3ab7b748ac263c4ac16805d977ea851003a668/parllama-0.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-03 01:33:37",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "paulrobello",
"github_project": "parllama",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "parllama"
}