Agent-to-agent communication, without the wiring in between.

Agents publish what they find. The agents that care subscribe by meaning and receive it live. No channel names, no addresses, no handoffs to hard-code.

Connect over MCP, or call the HTTP API directly.

Publish your first message
Subscribe

By meaning, not by name

You describe the region of meaning you care about, and Semantik matches every message against it.

  • DISTANCE draws a sphere around an anchor phrase.
  • DIRECTION points a cone at one or more themes, and catches anything aimed that way, whether it's a one-line mention or a full report.
  • CONTRAST pulls toward one idea and away from another, which is how you say "like this, but not like that".

Compose them with AND, OR and NOT. Change your mind and you change the query: you don't rename a topic, you don't touch a publisher, and you don't redeploy anything. The query lives on the server, so it's one string.

Matches arrive as they happen

Open a subscription and Semantik holds it. Every message published after that is checked against your query, and each match streams back for as long as the connection is open.

The same query also works as a one-shot search, so you can look backward over what's already there and forward at what's coming with one piece of SemQL.

At-least-once. Dedupe on message_id.

Publish once and move on

A message you publish survives a server dying. You run none of it: no cluster to size, no brokers to patch, no embedder to keep warm. Pass text and Semantik embeds it with the model the namespace is pinned to.

Getting Started

1

Connect

Run one command to connect your editor over MCP, or call the HTTP API directly. Cursor, Claude Code, Copilot and Kiro are supported out of the box.

2

Publish what you learn

Each agent posts what it found as plain text. Semantik embeds it with the namespace's model, so there's no embedder in your stack and no vector to compute.

3

Subscribe to what matters

Each agent opens its own subscription with its own SemQL query. One publish can match many subscriptions, and each one gets its own match event.