Releases
Khiip ships as three independently-versioned pieces. This page is the single place to check what’s current, how to update, and what changed across all of them. Each piece keeps its own authoritative changelog (linked below); this page aggregates them.
Current versions
| Surface | Current | Update with | Notes |
|---|---|---|---|
Base — khiip (daemon · CLI · MCP · REST) | 0.2.4 | uv tool upgrade khiip | AGPL-3.0, on PyPI. Manual upgrade — Khiip never phones home. Restart the daemon after upgrading. |
Khiip Plus — khiip_ee (styled renders + deeper capture) | 0.2.2 | Re-download from the /dl link in your key email, then reinstall | ELv2 add-on. Requires base khiip >=0.2.0,<0.3. |
| Obsidian plugin | 0.2.5 | In-app update check, BRAT (auto-tracks releases), or manual | Free, tier-agnostic; mirrors whatever tier your daemon runs. |
Compatibility
- Khiip Plus requires a compatible base. The Plus wheel pins
khiip >=0.2.0,<0.3, so keep the base daemon and the Plus add-on on the same0.2.xline.khiipd versionprints the base version and whether Plus is active. - The Obsidian plugin follows the daemon. Plus lives on the daemon, not the plugin — the same plugin renders base or Plus output depending on the tier your daemon runs. There is no separate “Plus plugin.”
- Your license key is version-independent. It’s verified offline against a key baked into the build; any valid key activates any Plus wheel. Upgrading the wheel doesn’t invalidate it.
What’s new
Base — khiip
Full notes: CHANGELOG.md.
- 0.2.4 — the correctness + trust release.
khiipd validatelearns--fixto re-point index rows at notes you renamed or moved in your vault (preview first;--applywrites), plus a newjob_capture_missingcheck; hand-edit protection — if you edit a captured note by hand and then refetch or re-render, the daemon refuses rather than clobbering your edit (pass--forceto override and discard it); a re-downloaded binary whose bytes changed now keeps the old copy under a timestamped name instead of overwriting it; Wikipedia captures made with 0.2.4 keep their rich body (references, infobox) when you re-extract offline — no network needed (captures made before 0.2.4 still fall back to plaintext offline); recall andGET /capturesgain a token-leanview=leanshape for LLM agents (the full shape stays the default); and captures can now run in the background —POST /captures?mode=asyncreturns a job you poll while it works. See the new public contracts below. - 0.2.3 — correctness + registry-readiness. Refetching a note you’ve renamed in your
vault no longer overwrites the new capture with stale content (the data-loss fix); Wikipedia
articles render clean rich text (links, bold, real headings — no more
��-mangled section markers); the CLI andkhiipd servenow honor[daemon] host/portin config.toml (if you set these in the past, your daemon moves on upgrade — a non-loopback host additionally needs[daemon] allow_non_loopback = true); recall gains an optional--min-scorefloor;khiipd validatelearnsvault_path_stale+vault_id_duplicate; daemon-down errors link the new Autostart page; the MCP server reports the real package version. - 0.2.2 — the khipu brand mark at the top of each capture now carries an intrinsic size, so it no longer renders oversized in contexts without the plugin’s CSS (Obsidian without the plugin, Obsidian mobile, editor previews). No change in styled contexts.
- 0.2.1 — bare tweets now title as
@handle: first line(mirrors X; makes a captured tweet identifiable in the vault). Long-form X posts keep their own article title. - 0.2.0 — the public launch: on PyPI (
uv tool install khiip), open-core packaging (the free AGPL core ships askhiip; Plus is a separate distribution), and tag-driven release automation with PyPI Trusted Publishing.
Khiip Plus — khiip_ee
The styled per-source renders and deeper capture depth. This is the Plus add-on’s public changelog home; see Activate Khiip Plus to install or update it.
- 0.2.2 — Reddit post flair now renders a pill even when the flair carries no color (a default grey pill), so flaired posts read consistently.
- 0.2.1 — the X card carries the Khiip brand mark, matching the other per-source renders.
- 0.2.0 — launch: platform-styled renders for X, Reddit, YouTube, Wikipedia, and web, plus deeper social- and comment-tree capture depth.
Obsidian plugin
Full notes: GitHub Releases.
- 0.2.5 — captures show live staged progress: a per-stage card pinned at the sidebar’s
bottom edge plus one updating notice, with per-item media download counts. A new
“Khiip: re-capture this note” command re-captures the note you’re reading. Recall
results get a two-line excerpt showing why each hit matched and relevance-tiered score
chips; X rows show an
@handlechip and byline-less web rows fall back to the site’s hostname; a results header with ✕ (or Esc) clears back to the home view. Also fixes the Khiip mark rendering outside its slot in the view tab and sidebar header. - 0.2.4 — the recall sidebar shows a
u/prefix on Reddit authors (matches the card render). - 0.2.3 — sidebar recents show
source · author · time, so you can see who wrote each capture. - 0.2.2 — Obsidian community-review fixes (async view handling, minimum-app-version bump).
- 0.2.1 — khipu-fan glyph on the ribbon and tab; restored-note callout-icon fix.
- 0.2.0 — first release: capture command + recall sidebar over the plain-Markdown vault.
Public contracts
A few surfaces carry append-only value sets — like the CLI exit codes, they are declared here, and Khiip promises: existing values are never renamed or removed; new values may be added in later releases. Write clients to match values they know and ignore any they don’t.
Capture-job stages and statuses (new in 0.2.4)
POST /api/v1/captures?mode=async accepts a capture and returns a job (202, with a Location header pointing at GET /api/v1/jobs/{id} to poll) — unless the URL was already captured, in which case you get that existing capture straight back (200, no job). The sync default is unchanged (201 + the capture). A job records eight pipeline stages and its own status.
- Stage names (match by name — the order they run in is not part of the contract):
extract,enrich,media,preserve,wayback,render,write,embed. - Per-stage status:
pending,running,succeeded,degraded,skipped,failed.degradedmeans a best-effort step failed but the capture still landed (the job still succeeds);skippedmeans the stage didn’t apply (e.g.enrichis skipped on the base tier). Only afailedfail-hard stage fails the whole job. - Job status:
queued,running,succeeded,failed. - On a failed job,
erroris{stage, message}wherestageis one of the stage names above; themessagetext is human-facing and not contractual (don’t parse it).
Lean recall / list rows (new in 0.2.4)
Recall and the capture list can return a flat, token-lean row for LLM agents via ?view=lean (the full shape stays the default). A lean row has these fields: id, url, source, title, author, recorded_at, vault_path, description, excerpt, excerpt_from, payload_chars. A lean recall hit adds score (cosine similarity, −1.0 to 1.0). excerpt is the head of the capture’s primary text, capped at 500 characters with a single … appended only when it was truncated; excerpt_from names which field it came from; payload_chars is the size of the full drill-down body, so an agent can budget before fetching GET /api/v1/captures/{id}.
POST /api/v1/captures/{id}/relink (new in 0.2.4)
Re-points a capture’s index row at its vault note after you’ve renamed or moved the file (this is what khiipd validate --fix --apply calls). It never creates or moves files — only the index changes. Responses: 200 with the capture (re-pointed, or a no-op if the row was already correct); 404 if the capture id is unknown; 409 if it can’t be re-linked — the detail says why (no note with that id exists, more than one note carries that id, or the id-carrying note’s frontmatter no longer matches the shape Khiip writes).
Updating, in one place
- Base:
uv tool upgrade khiip(orpipx upgrade khiip/pip install -U khiip), thenkhiipd validateto sanity-check the vault ↔ index. - Khiip Plus: download the newer
khiip_ee-<version>-py3-none-any.whlfrom the link in your latest key email and reinstall it into the same environment as the base — see Activate Khiip Plus → Updating Plus. - Obsidian plugin: BRAT updates it when a new release is tagged; for a manual install,
re-download
main.js/manifest.json/styles.cssfrom the latest release — see the Obsidian plugin page.