slipstream.app
playable
classify → harvest → compose
human said

“make this better”

system inferred

Clarify the target surface, preserve current behavior, identify the smallest risky file set, then improve copy and interaction polish.

filled: intentfilled: scopefilled: risk

A before-and-after for prompts that arrive compressed and need context before an agent acts.

see enrichment →
Komatik Slipstream
context-engineeringsdkmodel-routing

Slipstream

2026-10-16 / projects/slipstream.mdx

Your users say vague things. Your AI gets it right anyway. A TypeScript SDK that quietly enriches messages with intent, context, and stated assumptions before the model sees them.

Slipstream is a context engineering layer for AI.

Every message a person sends to an AI is a lossy compression of what they actually mean. They have a rich mental model and express maybe 10% of it. The usual fixes are to ask people to write better prompts (they won't) or to ask twenty clarifying questions (they hate that). Slipstream takes a third path: quietly enrich the message with inferred intent, harvested context, and assumptions it states out loud.

It was called Undercurrent until May.

The SDK

import { Slipstream } from "@komatikai/slipstream";
import { ConversationAdapter, GitAdapter, FilesystemAdapter } from "@komatikai/slipstream/adapters";
import { DefaultStrategy } from "@komatikai/slipstream/strategies";

const slipstream = new Slipstream({
  adapters: [
    new ConversationAdapter(),
    new GitAdapter({ cwd: process.cwd() }),
    new FilesystemAdapter({ root: "./src" }),
  ],
  strategy: new DefaultStrategy(),
});

const result = await slipstream.enrich({ message: "fix the auth thing" });

Slipstream is the container, not the contents. You bring the context sources (adapters), the enrichment logic (strategies), and the integration (transports). It also ships an MCP server and a model router. For now it's distributed privately through GitHub Packages.

The Pipeline

  1. Preflight (optional) — safety and reliability checks before anything else runs.
  2. Classify — intent, specificity, scope, and emotional load.
  3. Harvest — adapters pull context in parallel: conversation history, git, the filesystem.
  4. Analyze — what can be filled in, what needs a stated assumption, and what truly needs a question.
  5. Compose — the enriched message, plus blocks marked stable, session, or volatile so prompt caching actually hits.

Depth scales automatically from none to light, standard, or deep. Composers target Cursor, Claude, ChatGPT, raw API calls, and MCP.

Since May

  • v2.0 — Context Reliability (May). Four presets, confidence gates, stale-context filtering, traces, and safety-first preflight. The Undercurrent name was retired.
  • Graceful degradation (May). A healthCheck(), per-message cost-tier recommendations, OpenTelemetry GenAI telemetry, and graded reactions.
  • A replay playground (Jun) with A/B regression diffs.
  • Cache-friendly composition (Jul). Stable context first, the user's message last. On a 20-message benchmark, prompt-prefix stability went from about 2% to about 73% — which is what prompt caching runs on.
  • A price-aware model router (Jul). Live model catalog, benchmark priors, awareness of retiring models, and cost blending. recommendModel() observes and suggests; it doesn't take over.
  • v2.15 (Jul). Scorer fixes and model-id affinity.

The Bar

If it feels like a questionnaire, it failed. If it feels like the software quietly understood what was between the lines, it worked.