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 — everything listens on 127.0.0.1 until you explicitly run 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
lepika model list / lepika model rm List / remove downloaded models
lepika expose Share engine + UI on your network behind a generated key
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

Roadmap

Both modes are v0.1 and work today. Next up: a published package, so installing is a plain name instead of a repo URL. Star the repo to follow along, or open an issue with what you'd want next.

Contributing

Issues and pull requests are welcome; 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lepika-0.1.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

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

lepika-0.1.0-py3-none-any.whl (65.3 kB view details)

Uploaded Python 3

File details

Details for the file lepika-0.1.0.tar.gz.

File metadata

  • Download URL: lepika-0.1.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for lepika-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dc848626896d2ec7b5d498d83dc549102ad91446c762b96df02b20497a7efe12
MD5 b8f45aae23efd9c0fcebff57647e5f22
BLAKE2b-256 4b354fcc1bb910777ee784ef6784401886395194e5d753dd662233c052c6bfc8

See more details on using hashes here.

Provenance

The following attestation bundles were made for lepika-0.1.0.tar.gz:

Publisher: release.yml on MikaelSabuhi/lepika

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lepika-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: lepika-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 65.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for lepika-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7b373e8d309baa7d7d2382a0af3f6c2055505d56806950af1328afe60f207504
MD5 0c55c950f8dd1b9403a868e2ceecec31
BLAKE2b-256 a498384ffa6a50eef14c642b4e91ac1bfccc4154d7353813b63cc785c792f7af

See more details on using hashes here.

Provenance

The following attestation bundles were made for lepika-0.1.0-py3-none-any.whl:

Publisher: release.yml on MikaelSabuhi/lepika

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.2

2 files

0.1.1

2 files

This release

0.1.0 This release

2 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