Gå til hovedinnhold

Kapi Desktop

kapi holds the context for one project. Kapi Desktop is where a person reads and edits it.

That context is what the project goes by: the voice profile in force, the terms that apply, the checks that must pass, and where each of those holds. The kapi CLI and the MCP server are how scripts and assistants ask about it. The desktop is how the person who governs the project asks the same questions, and makes the decisions that answer them.

The three are peers. A CLI verb, an MCP tool and a desktop panel resolve through one host layer, so they answer the same question with the same data, and a conformance suite holds them to it.

What the app opens to

The desktop is project-first: it opens to your projects and reopens the ones you had last time. A project's home says where it stands, on two axes:

  • Content. What has been read into the project, what has changed on disk since, and what is missing.
  • Governance. The voice profile in force, the terms store bound, when the project last converged, and whether it is in sync with the venue it declares.

Below that, a point map gives one row per point the recipe declares, with the collections that sit there and the voice bound to them. Most projects are one point, and show one row.

Bring up to date is the action beneath. It runs the project's default flow until every gated scope ships or parks, and Plan… beside it shows the pending work, the leverage available from content memory, and a token estimate before anything runs.

Context

The Context hub is where the graph is legible:

  • Explorer answers by location and by content. Ask what applies at a file, or search for a word and see the terms, the prior wording, and where each is used.
  • Voice renders the profile that actually governs a point: tone, style rules, vocabulary with severities, examples, and the overrides that apply. Where a binding was skipped because its window had closed, the page says so rather than quietly resolving past it. Editing writes the same YAML in your working tree that you would edit in git.
  • Terms is the concept store: the words the project has decided on, their status, and their translations.
  • Content Memory is the record of prior wording, searchable with its provenance intact.

Collections and formats

A project's content is grouped into named collections. Each collection is a set of patterns, and the desktop shows the real files they match beside the format kapi detected for each.

Opening a file previews it the way the engine reads it: the rendered document, the blocks it parsed, and, where a format carries them, the structure (roles and reading order) and the layout (page-scaled bounding boxes). Media files render as themselves, an image with its recognized text boxed, or an audio or video player with the recognized cues as a synced track. Formats that need an engine plugin offer to install it on first use. The format reference lists what kapi reads.

Checks

Checks are the tests for prose. A finding names the rule that fired and the point it is scoped to, and clicking it lands on Context there, with the rule in view. Fixing what a check found is the loop the app is built around: see the rule, see the wording it governs, change one or the other.

And in every language

A project that declares target languages gets the multilingual half. Per-language coverage appears on the collections it applies to, the Review queue takes whatever the loop could not carry to the ship gate, and inspection puts source and target side by side with their findings, to approve, reject, or sign off.

A project that declares none is complete as it is.

Install

On macOS, the cask installs the app and bundles the kapi CLI:

brew install --cask neokapi/tap/kapi

See Installation for the release channels.

For the Windows installer and the macOS DMG / Linux tarball builds, see Installation.

The project file

Everything you configure is written to a portable kapi.yaml recipe. Commit it to git to share with your team, reopen it in Kapi Desktop, or run it from the command line:

kapi up -p kapi.yaml

Next steps