Monid - OpenRouter for agent tools. Join our community at https://discord.gg/rQzztcgJV8

★ 6,154⑂ 770👁 245⑃ 206● 28▤ 5◈ 0
TypeScriptMITCreated 2026-08-26monid.ai
6,154
stars
+-4
770
forks
245
watchers
206
prs
28
issues
5
releases
0
discussions

README

monid.ai  · 
  Docs  · 
  Tool catalog  · 
  Quickstart  · 
  Development guide



  
  


 Monid (OpenRouter for agent tools)

OpenRouter, but for agent tools. One base URL, one key, and an agent can
reach 2,000+ tools across 72+ providers: web search and scraping, people and
company enrichment, social platforms, reviews and market data, and video, image
and voice generation.

 Are you an AI agent? Fetch https://monid.ai/SKILL.md and save it to your
 skill directory. It does the rest.

This repo is the connector layer, the one generic framework every endpoint
above is described in: how it is called, what it accepts, what it returns, how
its usage is counted. A connector is declarative, so a coding agent can write
one. Point it at your API docs and at this repo, and adding your API to Monid
becomes a pull request.

 Why it exists

Usage is metered per call. Every connector declares its own usage model in
the definition: a flat charge per call, a charge per returned result, or a rate
per unit such as a thousand characters or a second of video. The engine settles
that model on the raw response envelope, before any output mapping, so what is
billed is what came back over the wire. A vendor error, an unmatched company, an
unresolved person: each of those completes as data and settles at zero.

The endpoint is chosen per call. discover ranks the whole catalog by what
the job is, across every provider at once, and returns each candidate with its
price, its live health and its observed p50 and p95 latency, plus hints naming a
cheaper or better-fitting endpoint. The API is picked at call time against
everything available, not pinned in code months earlier to the one vendor that
happened to get integrated.

 How an agent uses it

Three verbs, and the first two are free.

!discover and inspect are free, run is billed per use

 Writing a connector

A connector describes one provider and its endpoints. Adding one is a pull
request, and once it merges those endpoints are in discover for every agent on
the platform.

 The shape

A provider declares identity, auth, and how usage is counted:

ts
// connectors/tinyfish/provider.ts
export default defineProvider({
    name: "tinyfish",
    meta: {
        displayName: "TinyFish",
        summary: "Zero-cost live-web search and clean multi-URL fetch.",
        homepageUrl: "https://tinyfish.ai",
        categories: ["web-search"],
    },
    auth: { inject: presets.auth.header("X-API-Key") },
    usage: { model: { kind: UsageModelKind.FREE } },
});


An endpoint declares the request and the input schema:

ts
// connectors/tinyfish/endpoints/search/endpoint.ts
export default defineEndpoint({
    meta: {
        displayName: "TinyFish Web Search",
        summary: "Search the live web, news, or research papers.",
        description: "Browser-rendered search over the live web. Results are " +
            "never cached, so pricing pages and breaking ne

Top issues

Latest release

catalog-v0.0.5 catalog-v0.0.5 2026-11-03
catalog publish

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON