Compile a person into AI-readable expert context. Local-first web runtime + MCP server.
Project description
kiwiMe web host
Run kiwiMe as a local web app — a background service on 127.0.0.1 plus a
browser UI — instead of the Tauri desktop shell. This is the primary
distribution for developers and technical users (no code signing, no native
installer): you start a service and open a browser.
It is local-first: the service binds to loopback only, and all data
(credentials, content, indexes) stays on your machine, exactly as in the
desktop app. The host runs every sidecar in-process — there are no child
processes and no stdio plumbing; see docs/release/webification-plan.md.
Run from a checkout (current)
Prerequisites:
- uv (Python package manager)
- Node ≥ 20 and pnpm — the easiest way to
get pnpm is
corepack enable(ships with Node), ornpm install -g pnpm. - Python ≥ 3.11 with SQLite loadable-extension support (standard CPython builds have it).
# 1. install the Python workspace (all sidecars + the host)
uv sync --all-packages -p 3.12
# 2. build the frontend once (served as static files by the host)
cd apps/desktop && pnpm install && pnpm build && cd -
# 3. start the host — opens http://127.0.0.1:8765 in your browser
uv run kiwime
If you skip step 2, the host still starts and serves the API, and shows a "UI not built" page with these instructions instead of the app.
Options:
kiwime [--host 127.0.0.1] [--port 8765] [--db PATH] [--no-browser]
--db PATH— use a specific store SQLite file (default: the platform app data dir, the same one the desktop app uses).--no-browser— don't auto-open a browser. The startup log prints an authenticated…/auth?token=…link — open that (or use the token as anAuthorization: Bearerheader for scripting).KIWIME_DIST=/path/to/dist— override where the built UI is served from.
Security
The API requires a per-session token even on loopback: the browser gets it
via the /auth?token=… link (exchanged for an HttpOnly cookie), other
clients pass Authorization: Bearer <token>. Requests with a non-localhost
Host header or a non-JSON body are rejected. A fresh token is minted on
every start.
Linux note
Connector credentials go to the OS keyring. On Linux this needs a Secret
Service provider (GNOME Keyring / KWallet via libsecret); on a headless
box or minimal WSL distro, install gnome-keyring (or configure another
keyring backend) before adding sources.
Local models
The host exposes the same one-click Ollama flow as the desktop app
(detect / download with progress). Install Ollama
and use the in-app model manager to pull Qwen3 / Gemma 3. The curated model
list lives in shared/model-catalog.json, shared with the desktop runtime.
Installing as a tool (future)
pipx install kiwime / uv tool install kiwime will be the one-line
install once the packages are published to PyPI and the built UI is bundled
into the wheel. Until then, use the checkout flow above.
How it relates to the desktop app
The React frontend and all Python sidecars are shared. Only the host differs:
the desktop app uses a Rust (Tauri) shell that spawns sidecars as processes;
this web host holds them in one Python process and serves the same UI over
HTTP + SSE. apps/desktop/src/api/tauri.ts picks the transport at runtime.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kiwime-0.1.0.tar.gz.
File metadata
- Download URL: kiwime-0.1.0.tar.gz
- Upload date:
- Size: 310.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
774bad0149f0857bb78b12379e8996f7e6dcc2eaeb9458d276b580741ce99955
|
|
| MD5 |
eb43ec1f16698a8fbf3b72c9760d5f1e
|
|
| BLAKE2b-256 |
2291847d97cabf80d8996625105bec3e339f9de6142d6710f9df552504bc5728
|
File details
Details for the file kiwime-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kiwime-0.1.0-py3-none-any.whl
- Upload date:
- Size: 313.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e6d361f771671caeaf730eb629d7f327f26d7cd7db254d5597552f7ae3f9e22
|
|
| MD5 |
6f1d3d70d995d4609643b8bddf6c662c
|
|
| BLAKE2b-256 |
886ff174d6d4db687b11ab424d426242e4fe58b2ff9277d33e7b032b9c26f9c4
|