Skip to main content

LePika — a cat in a speech bubble with a terminal prompt

LePika

One command → local AI chat in your browser.
(luh-PEE-ka)

CI PyPI License: MIT

lepika: detect the machine, pick a model, chat UI ready

Your gaming GPU is already an AI machine. LePika self-hosts LLMs on the hardware you already own — Mac (Metal), Linux and Windows (NVIDIA) — with zero configuration. No Docker, no API keys, no monthly bill, and nothing you type ever leaves the box.

Named after Pika, the cat who supervises this project. Like any cat, Pika has everything worth having at home and no use for the cloud. Same idea, for your AI.

Install

Mac / Linux

curl -fsSL https://raw.githubusercontent.com/MikaelSabuhi/lepika/main/install.sh | sh

Windows (PowerShell)

irm https://raw.githubusercontent.com/MikaelSabuhi/lepika/main/install.ps1 | iex

Already have uv?

uv tool install lepika

Then run lepika. It detects your OS, GPU, and RAM, offers the models that actually fit your machine, installs Ollama + OpenWebUI, pulls your pick, and opens the chat UI at http://localhost:3000.

LePika installs into ~/.local/bin — if a new terminal can't find the lepika command, add that directory to your PATH or restart your shell.

Prefer to read the source first, or hack on it? git clone https://github.com/MikaelSabuhi/lepika && cd lepika && uv run lepika — git and uv are the only prerequisites; uv fetches its own Python.

What it does

  • Native GPU, no containers — Apple Metal on macOS, CUDA on Linux/Windows. Ollama arrives via Homebrew, the official install script, or winget; OpenWebUI via uv tool. CPU-only machines work too (LePika warns you they'll be slow).
  • Models that fit — a curated list filtered to your RAM, so there's no guessing whether a 27B fits in 16 GB.
  • Any model, one field — Ollama tags, Hugging Face GGUF builds, or full-weight safetensors repos. Model guide →
  • Private by default — Express listens on 127.0.0.1, full stop. Sharing the stack with your network is a Server-mode feature (lepika expose).
  • Two modes — ⚡ Express (default): everything native, no Docker. 🐳 Server: the same thing as one readable docker compose stack, for the box under the desk. Server guide →

LePika reuses an Ollama you already have instead of installing a second copy.

Everyday commands

Command What it does
lepika The setup wizard: detect → pick a model → install → chat
lepika up / lepika down Start / stop the local AI stack
lepika status Mode, engine, UI, and default model at a glance
lepika doctor Diagnose the setup; every ✗ has a one-line fix
lepika logs Tail LePika's logs (--lines, default 50)
lepika update Upgrade the engine and OpenWebUI — chats kept
lepika model add [ref] Download a model and make it the default (no ref → browse)
lepika model import <dir> Import safetensors weights already on disk (--quant picks the format)
lepika model list / lepika model rm List / remove downloaded models
lepika expose Share engine + UI on your network behind a generated key (Server mode)
lepika connect <url> Use an engine on another machine (--local to go back)

Global flags: --version, --mode express|server (the wizard's, not a per-command switch), --dry-run, and --help on every command.

All state lives in one place: ~/.lepika — config, logs, and (in Express mode) OpenWebUI's own chats and uploads. That is what makes lepika update keep your chats. Point LEPIKA_HOME somewhere else if you prefer.

Why not just use Ollama directly?

You absolutely can. LePika drives Ollama and OpenWebUI; it doesn't replace them. What it saves you:

By hand With LePika
First run Install Ollama, install Python, install open-webui, set OLLAMA_BASE_URL, start both, find the port One command
Choosing a model Guess, download 20 GB, find out it swaps A list filtered to the RAM you actually have
Wiring UI ↔ engine Environment variables, by hand, per shell Done for you
Something's broken Two sets of logs, two projects' issue trackers lepika doctor, one fix hint per failure
Staying current Update each piece separately, per platform lepika update

If you'd rather run the raw tools, their docs are excellent and LePika gets out of your way. Curious what it's doing on your behalf? It's a few files of plain Python in src/lepika/: three dependencies, no magic.

Requirements

  • Disk for the models: ~0.5 GB for a tiny one, ~5 GB for a good all-rounder, 40 GB+ for the flagships.
  • 8 GB RAM recommended. Less works: LePika steers you to smaller models.
  • A GPU is optional. CPU-only machines run everything, slowly, and LePika says so up front.
  • macOS: Homebrew (without it, LePika points you at the Ollama.app download). Windows: winget, which ships with Windows 10/11. Full-weight imports have their own fine print — see the model guide.

Documentation

  • Model guide — every model-ref shape, full-weight imports, gated repos
  • Server mode — the compose stack, using a GPU box remotely, security
  • Architecture — design rules and how it's built
  • Changelog — what changed in each release

Contributing

Issues and pull requests are welcome — including an issue for what you'd want next. CONTRIBUTING.md has the short version of how a change gets in. Found a security problem? SECURITY.md says how to report it privately.

uv sync --dev && uv run pre-commit install && uv run pytest -q

License

MIT © Mikael Sabuhi

Metadata

Release files for lepika 0.1.2

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

Source distribution (sdist)

Source distribution for lepika 0.1.2
File Size Uploaded
lepika-0.1.2.tar.gz 1.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for lepika 0.1.2
File Interpreter ABI Platform
lepika-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 1.3 MB

Release files / lepika-0.1.2.tar.gz

Download URL lepika-0.1.2.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
2980f8a8018610e929e4be6644bdb4c55a490e7a7e8ed5f99e7d8a01c38fcec4
BLAKE2b-256 checksum
How to use checksums
3e0da7ad500b48ba6f6576809f9693488acc571a268e46bd0e792fda6a0453b7
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 Aug 31, 2026.

Transparency log

Release files / lepika-0.1.2-py3-none-any.whl

Download URL lepika-0.1.2-py3-none-any.whl
Size 70.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f2ac3b8646ad085c8fb6352d8fe3777629c97bd0e6f789037a478608e7a10a73
BLAKE2b-256 checksum
How to use checksums
e176dbbac84eaa55665e7c91065dbb8b9af2bfae6a504478be3b476c025372bc
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 Aug 31, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

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