Roadmap: Client SDKs and Developer Experience

Status (2026-10-13): The SDK work is not started: there is no wikantik-client package, no LangChain or LlamaIndex adapter, no TypeScript client and no OpenAPI spec for /api/* (the /tools/* spec is still the only one). Two adjacent pieces of the developer-experience program have shipped. Self-service API keys exist: signed-in users list, generate, rotate and revoke their own keys from the API Keys section of /preferences (/api/self/apikeys, v2.0.21), alongside the admin screen at /admin/apikeys. Key scopes are rank-based (tools, mcp_read, mcp_admin), and non-administrators are limited to tools and mcp_read, so the read-only retrieval key this brief asked for exists. And the repository's clients/ directory ships agent-side integrations: a Claude Code session-start hook and an Antigravity hook that inject GET /api/briefing?format=md, plus a wiki-context skill over the knowledge MCP tools. Corrections applied below: the administrative MCP server has 29 tools (not 26), and the /api/bundle hybrid is weighted Reciprocal Rank Fusion with operator-set weights, not a request-tunable alpha.

Gap Statement: Three Good Protocols, Zero Client Libraries

Wikantik exposes a robust set of REST APIs (/api/bundle, /api/briefing, /api/changes), two Model Context Protocol (MCP) servers, and an OpenAPI 3.1 tool surface. However, it currently ships absolutely no client SDK, no framework adapters, no quickstart templates, and no hosted playground. In the fast-paced ecosystem of 2026, a Retrieval-Augmented Generation (RAG) platform's discoverability and traction run almost exclusively through the major agent-framework ecosystems. Developers adopt the solutions that drop into their existing LangChain, LlamaIndex, or Semantic Kernel codebases with minimal integration effort.

The retriever adapter is the genuine quick win here. Building an adapter takes a fraction of the time compared to overhauling a platform, yet it yields immediate discoverability. However, the full developer-experience (DX) program—comprising two native SDKs, seamless key management, and a dedicated, interactive documentation site—is a substantial, multi-session effort. It is imperative not to conflate the quick win of an adapter with the long-term investment in a holistic developer ecosystem.

The Economics and Strategic Value of SDKs

Investing in a first-class developer experience is not merely a technical luxury; it is a fundamental economic driver for platform adoption. When an engineering team evaluates a RAG solution, the integration overhead often dictates the purchasing decision. A platform lacking native SDKs forces developers to write boilerplate API clients, handle pagination, manage connection pooling, and implement retry logic. This friction translates to direct labor costs.

For a mid-sized enterprise, implementing a custom integration against raw REST endpoints can easily consume two weeks of senior engineering time, costing roughly $10K to $15K in fully loaded labor. Scaled across a target market of thousands of potential customers, the cumulative friction is massive. In contrast, if the platform vendor invests roughly $150K to build, document, and maintain high-quality SDKs and adapters, they can eliminate this friction entirely. Removing the $15K integration tax accelerates the sales cycle, reduces time-to-value, and dramatically lowers the barrier to entry. Companies that have prioritized DX often see their customer acquisition cost (CAC) drop significantly, enabling them to reallocate budgets that might otherwise be spent on direct sales (often running well over $2.5M annually) into further product development.

Market Grounding and Competitor Ecosystem

To understand the urgency of this roadmap, we must look at the current market dynamics:

Current Wikantik State and Architecture

Before executing the roadmap, we must acknowledge the current state of the platform:

Retrieval Integration: What the Adapter Can Tune

When we build a retriever adapter for a framework like LangChain, we are bridging the gap between the framework's generalized query representation and Wikantik's specialized search architecture. Wikantik's /api/bundle endpoint retrieves candidate chunks with two rankings, a dense vector ranking and a BM25 chunk ranking (wikantik.bundle.bm25.enabled, default true), and fuses them server-side with weighted Reciprocal Rank Fusion before grouping chunks into sections.

There is no per-request alpha. The fusion weights are operator configuration (wikantik.bundle.bm25.bm25_weight 0.5, dense_weight 1.5, rrf_k 20), and the request-level retrieval parameters are q and mode (hybrid by default, or dense or lexical). A WikantikRetriever should therefore expose mode, and should treat section scores as fused rankings rather than a normalized convex combination of cosine similarity and BM25.

Proposed Direction and Phased Rollout

To systematically address the DX gap, we will execute the following phased rollout:

  1. Python SDK First (wikantik-client on PyPI): We will build a thin, strictly typed Python client covering the bundle, briefing, changes, and search endpoints. Crucially, this package will include WikantikRetriever adapters for LangChain and LlamaIndex. These adapters will map the rich bundle sections returned by the API into the standard document types expected by these frameworks, ensuring that citation metadata is perfectly preserved. The "no-synthesis" bundle contract is an excellent fit for retriever semantics—frameworks want raw, cited documents, not pre-synthesized answers.
  2. TypeScript Client Second: Once the Python client has proven the architectural model, we will replicate the shape in TypeScript. This will serve the rapidly growing ecosystem of Node.js and Next.js agent applications.
  3. Interactive Quickstarts: We will author a series of "RAG over your wiki in 10 minutes" guides. These will feature a simple docker compose up command, a script to seed test pages, and a retriever snippet using LangChain or LlamaIndex. Additionally, we will provide an MCP-specific quickstart showcasing the assemble_bundle and get_briefing tools as the differentiated, agent-native path.
  4. Self-Service Key Management: We will introduce API-key management into the existing administrative UI, allowing users to create, rotate, and scope their keys. This is an absolute prerequisite for any mature external developer story. (Shipped; see the status note.)
  5. Developer Documentation Portal: We will launch a dedicated developer section on the marketing site. This portal will be generated directly from our OpenAPI specifications and MCP tool registries, guaranteeing that it remains perfectly in sync with the codebase. It will feature a clearly stated API stability and versioning policy.

Phase 1 Scope and Detailed Acceptance Criteria

First Session Scope: The immediate deliverable is a Python package containing a thin wrapper around the /api/bundle client, coupled exclusively with the LangChain retriever adapter. LlamaIndex support, TypeScript clients, the key-management UI, and the dedicated documentation site are explicitly out of scope for Phase 1.

Phase 1 is considered complete when the following criteria are met:

  1. Metadata Preservation: An integration test running against a local Docker deployment must demonstrate that the LangChain retriever returns Document objects whose metadata dictionaries carry canonicalId, version, headingPath, and spanSha256 absolutely intact. A subsequent test must prove that this citation metadata survives a full RetrievalQA-style chain end-to-end. This empirically validates our assumption that the bundle format maps perfectly onto retriever semantics.
  2. Frictionless Quickstart: The README quickstart must execute flawlessly from a pristine virtual environment against a fresh docker compose up instance.
  3. Strict Client-Side Boundary: Zero server-side changes must be required. If the implementation of the adapter attempts to force an API change, development must halt and the issue must be escalated. Modifying the API to accommodate an adapter is an [OWNER]-level versioning decision, not an implementation detail of the SDK.
  4. Local Build Integrity: The package must build and install locally without errors. Publishing the package to PyPI remains a separate, explicitly [OWNER]-gated step to protect the namespace ownership.

Verification Before Design

We must rigorously verify our assumptions before committing them to the architectural design:

Non-Goals

To maintain focus, the following items are strictly non-goals for this roadmap phase:

Investigation Starting Points

To kickstart this initiative, the following investigations must be undertaken immediately:

See Also