Desktop reader: roadmap — a source crate exists; there is no packaged installer or file association.

MCP: stdio shipped — remote HTTP MCP not shipped (engine/k2f_mcp).

Project status

Shipped in v0.1

  • Package format — ZIP container, semantic tree, theme, embedded fonts, compiled lock
  • Verify & integrity — hash chain, banners (SIGNED, UNSIGNED, BROKEN_INTEGRITY, …)
  • Web viewer — paints lock only; no fillText body text
  • Registry packagespip install k2f (PyPI), npm i @openk2f/k2f (npm), cargo install k2f (crates.io); v0.1.0 on all three (npm uses scoped name @openk2f/k2f because unscoped k2f is blocked).
  • Agent layers — skills (repo instructions) → SDK (implementation) → MCP stdio adapter (engine/k2f_mcp)
  • Markdown bridgemarkdown_to_k2f / k2f_to_markdown (display $$...$$ nodes; inline $...$ modifiers)
  • Native math — display $$ nodes and inline $ modifiers compiled to glyphs + fraction rules (TeX subset including stretchy \left\right and matrix/align/cases; unknown commands fail).
  • Agent skills — one skill under skills/k2f/ with workflow references
  • MCP stdio server — local k2f_mcp; tool contract mcp_tools.json; run notes README. Remote HTTP MCP not shipped

In development

  • desktop/k2f_reader — native lock executor (same rules as the web viewer: opening does not recompile; pixels and PDF come from document.K2F.lock). Build from source with cargo run -p k2f_reader -- path/to/file.K2F. CI runs cargo test -p k2f_reader. Source crate only — not a packaged installer.

Roadmap (not shipped)

ItemNotes
Remote HTTP MCPOAuth, multi-tenant; stdio is shipped
Slide / infinite canvasProduct surface TBD
Desktop file association / installersOS registration and packaged binaries

Internal implementation tracks live outside this public repository. They are not part of the public contract.

Versioning

Format spec v0.1 tracks engine crate 0.1.0. See COMPATIBILITY.md for engine matching policy.