Skip to main content

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), or npm 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 an Authorization: Bearer header 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


Download files

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

Source Distribution

kiwime-0.1.0.tar.gz (310.1 kB view details)

Uploaded Source

Built Distribution

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

kiwime-0.1.0-py3-none-any.whl (313.4 kB view details)

Uploaded Python 3

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

Hashes for kiwime-0.1.0.tar.gz
Algorithm Hash digest
SHA256 774bad0149f0857bb78b12379e8996f7e6dcc2eaeb9458d276b580741ce99955
MD5 eb43ec1f16698a8fbf3b72c9760d5f1e
BLAKE2b-256 2291847d97cabf80d8996625105bec3e339f9de6142d6710f9df552504bc5728

See more details on using hashes here.

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

Hashes for kiwime-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6e6d361f771671caeaf730eb629d7f327f26d7cd7db254d5597552f7ae3f9e22
MD5 6f1d3d70d995d4609643b8bddf6c662c
BLAKE2b-256 886ff174d6d4db687b11ab424d426242e4fe58b2ff9277d33e7b032b9c26f9c4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page