Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

LemonPie

LemonPie — A lightweight Ollama client for terminal users

Python Version from PEP 621 TOML PyPI Version GitHub License

LemonPie is a compact CLI for interacting with an Ollama server. It manages chat sessions and persists history locally, designed to be tiny and portable — ideal for lightweight systems and terminal users, but usable anywhere with Python and network access.


✨ Features

  • Start and manage chat sessions with Ollama models
  • Persist session history in your OS's standard user data directory
  • Configure host, default model, and aliases via a config file in your OS's standard user config directory
  • Add, remove, and list models with aliases (lmConfig)
  • Switch models mid‑session with confirmation
  • Atomic writes for safety (tmp + replace)
  • Streaming responses from Ollama for real‑time output
  • Graceful handling of Ctrl‑C interrupts

📂 Project Structure

LemonPie/
├── src/
│   └── lemonpie/            # Core package namespace
│       ├── main.py          # CLI session manager (entrypoints: lm, lemonpie)
│       ├── config.py        # Configuration logic & I/O
│       ├── paths.py         # OS-appropriate config/data directory resolution
│       ├── time_utils.py    # Timestamp helpers
│       ├── cli/
│       │   ├── parser.py    # Argument parsing (lm)
│       │   ├── ui.py        # Terminal helpers & confirmation
│       │   └── config_cmd.py # Config manager (entrypoint: lmConfig)
│       ├── engine/
│       │   ├── models.py    # Model finding & resolution
│       │   └── ollama.py    # Ollama client interaction
│       └── sessions/
│           └── storage.py   # Session persistence
├── tests/                   # pytest suite
├── docs/
│   ├── config.example.json  # Configuration template
│   └── design/               # Design docs (state-machine.md, etc.)
├── .github/workflows/       # CI & release pipelines
├── pyproject.toml           # Package & build configuration
├── README.md                # Project overview
├── LICENSE                  # GPLv3 license
└── .gitignore

⚙️ Configuration

LemonPie keeps its config file and session history in your OS's standard user directories (via platformdirs) — not in the project folder:

Linux macOS Windows
Config ~/.config/lemonpie/ ~/Library/Application Support/lemonpie/ %LOCALAPPDATA%\lemonpie\
Sessions ~/.local/share/lemonpie/sessions/ ~/Library/Application Support/lemonpie/sessions/ %LOCALAPPDATA%\lemonpie\sessions\

Both are overridable via environment variables — LEMONPIE_CONFIG_DIR and LEMONPIE_SESSIONS_DIR — useful for testing or running in a container.

docs/config.example.json is a template. lmConfig will create your real config file on first use if one doesn't exist yet.

Example structure:

{
  "server": "http://127.0.0.1:11434",
  "default": "qwen2.5-coder:3b",
  "models": [
    { "alias": "qwen", "name": "qwen2.5-coder:3b" },
    { "alias": null,   "name": "qwen2.5-coder:1.5b-base" }
  ]
}

server: Ollama host URL
default: canonical model name (full identifier)
models: list of objects with alias (nullable) and name


🚀 Usage

lm / lemonpie

  • Start a new session
    lm -n "Hello"

  • Start with a specific model
    lm -n -m qwen "Hello"

  • Send a prompt to the current session
    lm "Tell me about git add"

  • List sessions
    lm -l

  • Print current session history
    lm -p

  • Switch model in current session
    lm -m qwen2.5-coder:3b

lmConfig

  • Manage models with lmConfig
    lmConfig --add-model qwen qwen2.5-coder:3b
    lmConfig --list-models
    lmConfig --remove-model qwen

🗺 Roadmap

Planned features and improvements:

  • lmConfig --init
    Interactive setup command that:

    • Prompts for Ollama server IP:port
    • Verifies server reachability
    • Lists available models if server responds
    • Allows user to select models to add
    • Handles cases where no models are found (with guidance to Ollama docs)
    • Supports --force to override verification or alias conflicts
  • Model verification state machine
    Planned logic for lmConfig --add-model:

    • Check server reachability
    • Verify if model is installed
    • Offer to pull missing models
    • Handle pull success/failure and user choice
    • Respect --force for overriding conflicts or skipping checks
      (See docs/design/state-machine.md for full diagram once published)
  • Enhanced error handling and user feedback

    • Graceful handling of server errors (HTTP codes, non‑JSON responses)
  • Packaging for Debian (.deb via apt)

  • Future schema validation for config/session files


📜 License

This project is licensed under the GNU General Public License v3.0 (GPLv3).You may redistribute and/or modify it under the terms of the GPL as published by the Free Software Foundation.See the license file for details.


Metadata

Release files for lemonpie-cli 0.2.0rc1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lemonpie-cli 0.2.0rc1
File Size Uploaded
lemonpie_cli-0.2.0rc1.tar.gz 45.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lemonpie-cli 0.2.0rc1
File Interpreter ABI Platform
lemonpie_cli-0.2.0rc1-py3-none-any.whl Python 3 none any Details

Total release size: 74.6 kB

Release files / lemonpie_cli-0.2.0rc1.tar.gz

Download URL lemonpie_cli-0.2.0rc1.tar.gz
Size 45.8 kB
Tags Source
SHA-256 checksum
How to use checksums
57cba65d3328804b77a963b6fabc6f53619ee2d89698022104b8dcf5b107d1f1
BLAKE2b-256 checksum
How to use checksums
a3ead2ddea41370eecb9bfc1d4750b195de145dd50c11e6dd5e6ba58a0d9b88d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.

Transparency log

Release files / lemonpie_cli-0.2.0rc1-py3-none-any.whl

Download URL lemonpie_cli-0.2.0rc1-py3-none-any.whl
Size 28.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1ce56c078001d730651fa42d46cab126ea5a945faf412d30b7f4ff0fb78bb7d3
BLAKE2b-256 checksum
How to use checksums
9e161e255f6659b17c01e5b7b9a1d5e719d2dd80354773cd721ea52723039b20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page